నిర్మాణ శైలి ఎంపిక (పార్ట్ 3)

హలో, హబ్ర్. ఈ రోజు నేను కోర్సు యొక్క కొత్త స్ట్రీమ్ ప్రారంభం కోసం ప్రత్యేకంగా వ్రాసిన ప్రచురణల శ్రేణిని కొనసాగిస్తున్నాను. "సాఫ్ట్‌వేర్ ఆర్కిటెక్ట్".

పరిచయం

సమాచార వ్యవస్థను నిర్మించేటప్పుడు నిర్మాణ శైలి యొక్క ఎంపిక ప్రాథమిక సాంకేతిక నిర్ణయాలలో ఒకటి. ఈ కథనాల శ్రేణిలో, అప్లికేషన్‌లను రూపొందించడానికి అత్యంత ప్రాచుర్యం పొందిన నిర్మాణ శైలులను విశ్లేషించాలని నేను ప్రతిపాదిస్తున్నాను మరియు ఏ నిర్మాణ శైలి అత్యంత ప్రాధాన్యతనిస్తుంది అనే ప్రశ్నకు సమాధానం ఇవ్వండి. ప్రదర్శన ప్రక్రియలో, నేను ఏకశిలాల నుండి మైక్రోసర్వీస్‌ల వరకు నిర్మాణ శైలుల అభివృద్ధిని వివరించే తార్కిక గొలుసును గీయడానికి ప్రయత్నిస్తాను.

చివరిసారి మేము వివిధ రకాల మోనోలిత్‌ల గురించి మరియు వాటిని నిర్మించడానికి భాగాలను ఉపయోగించడం గురించి మాట్లాడాము, బిల్డ్ కాంపోనెంట్‌లు మరియు డిప్లాయ్‌మెంట్ కాంపోనెంట్‌లు. మేము సేవా ఆధారిత నిర్మాణాన్ని అర్థం చేసుకున్నాము.

ఇప్పుడు మేము చివరకు మైక్రోసర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రధాన లక్షణాలను నిర్వచిస్తాము.

ఆర్కిటెక్చర్ల సంబంధం

మునుపటి కథనాలలో ఇచ్చిన నిర్వచనాల ఆధారంగా, ఏదైనా సేవ ఒక భాగం అని అర్థం చేసుకోవడం అవసరం, కానీ ప్రతి సేవ మైక్రోసర్వీస్ కాదు.

మైక్రోసర్వీస్ ఆర్కిటెక్చర్ యొక్క లక్షణాలు

మైక్రోసర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రధాన లక్షణాలు:

  • వ్యాపార సామర్థ్యాల చుట్టూ నిర్వహించబడింది
  • ఉత్పత్తులు ప్రాజెక్ట్‌లు కాదు
  • స్మార్ట్ ఎండ్ పాయింట్లు మరియు మూగ పైపులు
  • వికేంద్రీకృత పాలన
  • వికేంద్రీకృత డేటా నిర్వహణ
  • ఇన్‌ఫ్రాస్ట్రక్చర్ ఆటోమేషన్
  • వైఫల్యం కోసం డిజైన్
  • ఆర్కిటెక్చర్ విత్ ఎవల్యూషనరీ డెవలప్‌మెంట్ (ఎవల్యూషనరీ డిజైన్)

1వ పాయింట్ సర్వీస్-ఓరియెంటెడ్ ఆర్కిటెక్చర్ నుండి వచ్చింది ఎందుకంటే మైక్రోసర్వీస్ అనేది సేవల యొక్క ప్రత్యేక సందర్భం. ఇతర పాయింట్లు ప్రత్యేక పరిశీలనకు అర్హమైనవి.

వ్యాపార సామర్థ్యాల చుట్టూ నిర్వహించబడింది

ఇప్పుడు కాన్వే యొక్క చట్టాన్ని గుర్తుంచుకోవలసిన అవసరం ఉంది: వ్యవస్థలను సృష్టించే సంస్థలు దాని నిర్మాణాన్ని నిర్వహిస్తాయి, ఈ సంస్థలలో పరస్పర చర్య యొక్క నిర్మాణాన్ని కాపీ చేస్తాయి. ఉదాహరణగా, కంపైలర్‌ను సృష్టించే సందర్భాన్ని మనం గుర్తుచేసుకోవచ్చు: ఏడుగురు వ్యక్తుల బృందం ఏడు-పాస్ కంపైలర్‌ను అభివృద్ధి చేసింది మరియు ఐదుగురు బృందం ఐదు-పాస్ కంపైలర్‌ను అభివృద్ధి చేసింది.

మేము మోనోలిత్‌లు మరియు మైక్రోసర్వీస్‌ల గురించి మాట్లాడుతుంటే, ఫంక్షనల్ విభాగాలు (బ్యాకెండ్, ఫ్రంటెండ్, డేటాబేస్ అడ్మినిస్ట్రేటర్‌లు) ద్వారా అభివృద్ధి నిర్వహించబడితే, మేము క్లాసిక్ మోనోలిత్‌ను పొందుతాము.

మైక్రోసర్వీస్‌లను పొందేందుకు, వ్యాపార సామర్థ్యం (ఆర్డర్‌లు, షిప్‌మెంట్‌లు, కేటలాగ్ టీమ్) ద్వారా బృందాలు తప్పనిసరిగా నిర్వహించబడాలి. అప్లికేషన్ యొక్క నిర్దిష్ట భాగాలను రూపొందించడంపై దృష్టి పెట్టడానికి ఈ సంస్థ బృందాలను అనుమతిస్తుంది.

ఉత్పత్తులు ప్రాజెక్ట్‌లు కాదు

ఒక బృందం అభివృద్ధి చెందిన కార్యాచరణను ఇతర బృందాలకు బదిలీ చేసే ప్రాజెక్ట్ విధానం మైక్రోసర్వీస్ ఆర్కిటెక్చర్ విషయంలో పూర్తిగా తగదు. బృందం దాని జీవిత చక్రంలో సిస్టమ్‌కు మద్దతు ఇవ్వాలి. మైక్రోసర్వీస్‌ల అమలులో అగ్రగామిగా ఉన్న అమెజాన్ ఇలా పేర్కొంది: "మీరు నిర్మించండి, మీరు దీన్ని నడుపుతారు." ఉత్పత్తి విధానం బృందం వ్యాపార అవసరాలను అనుభూతి చెందడానికి అనుమతిస్తుంది.

స్మార్ట్ ఎండ్ పాయింట్లు మరియు మూగ పైపులు

SOA ఆర్కిటెక్చర్ కమ్యూనికేషన్ ఛానెల్‌లకు, ప్రత్యేకించి ఎంటర్‌ప్రైజ్ సర్వీస్ బస్‌పై చాలా శ్రద్ధ చూపింది. ఇది తరచుగా లోపభూయిష్ట స్పఘెట్టి పెట్టెకు దారి తీస్తుంది, అంటే, ఏకశిలా యొక్క సంక్లిష్టత సేవల మధ్య కనెక్షన్ల సంక్లిష్టతగా మారుతుంది. మైక్రోసర్వీస్ ఆర్కిటెక్చర్ సాధారణ కమ్యూనికేషన్ పద్ధతులను మాత్రమే ఉపయోగిస్తుంది.

వికేంద్రీకృత పాలన

మైక్రోసర్వీస్‌ల గురించి కీలక నిర్ణయాలు మైక్రోసర్వీస్‌ను అభివృద్ధి చేసే వ్యక్తులచే తీసుకోవాలి. ఇక్కడ, కీలక నిర్ణయాలు అంటే ఎంపికలు
ప్రోగ్రామింగ్ భాషలు, విస్తరణ పద్దతి, పబ్లిక్ ఇంటర్‌ఫేస్ ఒప్పందాలు మొదలైనవి.

వికేంద్రీకృత డేటా నిర్వహణ

అప్లికేషన్ ఒకే డేటాబేస్పై ఆధారపడే ప్రామాణిక విధానం, ప్రతి నిర్దిష్ట సేవ యొక్క ప్రత్యేకతలను పరిగణనలోకి తీసుకోదు. MSA వివిధ సాంకేతికతలను ఉపయోగించడంతో సహా వికేంద్రీకృత డేటా నిర్వహణను కలిగి ఉంటుంది.

ఇన్‌ఫ్రాస్ట్రక్చర్ ఆటోమేషన్

MSA నిరంతర విస్తరణ మరియు డెలివరీ ప్రక్రియలకు మద్దతు ఇస్తుంది. ప్రక్రియలను ఆటోమేట్ చేయడం ద్వారా మాత్రమే ఇది సాధించబడుతుంది. అదే సమయంలో, పెద్ద సంఖ్యలో సేవలను అమలు చేయడం ఇకపై భయానకంగా కనిపించదు. విస్తరణ ప్రక్రియ బోరింగ్‌గా మారాలి. రెండవ అంశం ఉత్పత్తి వాతావరణంలో సేవా నిర్వహణకు సంబంధించినది. ఆటోమేషన్ లేకుండా, వివిధ ఆపరేటింగ్ పరిసరాలలో నడుస్తున్న ప్రక్రియలను నిర్వహించడం అసాధ్యం.

వైఫల్యం కోసం డిజైన్

అనేక MSA సేవలు విఫలమయ్యే అవకాశం ఉంది. అదే సమయంలో, పంపిణీ చేయబడిన సిస్టమ్‌లో లోపం నిర్వహణ ఒక చిన్న పని కాదు. అప్లికేషన్ ఆర్కిటెక్చర్ అటువంటి వైఫల్యాలను తట్టుకునేలా ఉండాలి. రెబెక్కా పార్సన్స్ మేము సేవల మధ్య ప్రాసెస్‌లో కమ్యూనికేషన్‌ని ఉపయోగించకుండా ఉండటం చాలా ముఖ్యం అని భావిస్తోంది; బదులుగా, మేము కమ్యూనికేషన్ కోసం HTTPని ఆశ్రయిస్తాము, ఇది దాదాపుగా నమ్మదగినది కాదు.

ఆర్కిటెక్చర్ విత్ ఎవల్యూషనరీ డెవలప్‌మెంట్ (ఎవల్యూషనరీ డిజైన్)

MSA వ్యవస్థ యొక్క నిర్మాణం పరిణామాత్మకంగా అభివృద్ధి చెందాలి. ఒకే సేవ యొక్క సరిహద్దులకు అవసరమైన మార్పులను పరిమితం చేయడం మంచిది. ఇతర సేవలపై ప్రభావం కూడా పరిగణనలోకి తీసుకోవాలి. సంస్కరణతో ఈ సమస్యను పరిష్కరించడానికి ప్రయత్నించడం సంప్రదాయ విధానం, అయితే MSA సంస్కరణను ఉపయోగించమని సూచించింది
చివరి ప్రయత్నంగా.

తీర్మానం

పైన పేర్కొన్న అన్ని తరువాత, మైక్రోసర్వీస్ అంటే ఏమిటో మేము రూపొందించవచ్చు. మైక్రోసర్వీస్ ఆర్కిటెక్చర్ అనేది చిన్న సేవల సమాహారంగా ఒకే అప్లికేషన్‌ను అభివృద్ధి చేసే విధానం, ప్రతి ఒక్కటి దాని స్వంత ప్రక్రియలో నడుస్తుంది మరియు తేలికపాటి మెకానిజమ్‌లు, తరచుగా HTTP రిసోర్స్ APIల ద్వారా పరస్పర చర్య చేస్తుంది. ఈ సేవలు వ్యాపార సామర్థ్యాలపై నిర్మించబడ్డాయి మరియు పూర్తిగా ఉపయోగించి స్వతంత్రంగా అమలు చేయబడతాయి
స్వయంచాలక విస్తరణ విధానం. ఈ సేవల యొక్క కనీస స్థాయి కేంద్రీకృత నిర్వహణ ఉంది, వీటిని వివిధ ప్రోగ్రామింగ్ భాషలలో వ్రాయవచ్చు మరియు విభిన్న డేటా నిల్వ సాంకేతికతలను ఉపయోగించవచ్చు.

నిర్మాణ శైలి ఎంపిక (పార్ట్ 3)

పార్ట్ 2 చదవండి

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి