మైక్రో సర్వీసెస్ ట్యుటోరియల్: ఏమిటి, ఆర్కిటెక్చర్ మరియు ఉదాహరణ

మైక్రో సర్వీసెస్ అంటే ఏమిటి?

మైక్రో సర్వీసెస్ అనేది సర్వీస్-ఓరియెంటెడ్ ఆర్కిటెక్చర్ నమూనా, ఇందులో అప్లికేషన్స్ వివిధ చిన్న స్వతంత్ర సేవా యూనిట్ల సమాహారంగా నిర్మించబడ్డాయి. ఇది ఒక సాఫ్ట్‌వేర్ ఇంజనీరింగ్ బాగా నిర్వచించబడిన ఇంటర్‌ఫేస్‌లతో సింగిల్-ఫంక్షన్ మాడ్యూల్‌లలో అప్లికేషన్‌ను కుళ్ళిపోవడంపై దృష్టి సారించే విధానం. ఈ మాడ్యూల్స్ సర్వీసు యొక్క మొత్తం జీవితచక్రం స్వంతం చేసుకున్న చిన్న బృందాల ద్వారా స్వతంత్రంగా అమలు చేయబడతాయి మరియు నిర్వహించబడతాయి.

'మైక్రో' అనే పదం అనేది మైక్రో సర్వీసు యొక్క పరిమాణాన్ని సూచిస్తుంది, దీనిని ఒకే అభివృద్ధి బృందం (5 నుండి 10 డెవలపర్లు) నిర్వహించాలి. ఈ పద్దతిలో, పెద్ద అప్లికేషన్లు చిన్న స్వతంత్ర యూనిట్లుగా విభజించబడ్డాయి.

ఈ ప్రారంభ మైక్రోసర్వీస్ ట్యుటోరియల్‌లో, మీరు నేర్చుకుంటారు-

ఏకశిలా నిర్మాణం అంటే ఏమిటి?

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

ఒక ఏకశిలా నిర్మాణ సందర్భంలో కామర్స్ స్టోర్ యొక్క ఉదాహరణ గురించి చర్చిద్దాం.

కామర్స్ అప్లికేషన్ యొక్క ఏకశిలా నిర్మాణం

ఏదైనా ఇ-కామర్స్ అప్లికేషన్‌లో, సెర్చ్, రివ్యూ & రేటింగ్‌లు మరియు చెల్లింపులు వంటి కొన్ని ప్రామాణిక ఫీచర్లు ఉన్నాయి. ఈ ఫీచర్‌లు వారి బ్రౌజర్ లేదా యాప్‌లను ఉపయోగించి కస్టమర్‌లకు అందుబాటులో ఉంటాయి. కామర్స్ సైట్ డెవలపర్ అప్లికేషన్‌ను అమలు చేసినప్పుడు, ఇది ఒకే ఏకశిలా యూనిట్. శోధన, సమీక్ష & రేటింగ్‌లు మరియు చెల్లింపులు వంటి విభిన్న ఫీచర్‌ల కోడ్ ఒకే సర్వర్‌లో ఉన్నాయి. అప్లికేషన్ స్కేల్ చేయడానికి, మీరు ఈ అప్లికేషన్‌ల యొక్క బహుళ సందర్భాలను (సర్వర్‌లు) అమలు చేయాలి.

మైక్రోసర్వీస్ ఆర్కిటెక్చర్ అంటే ఏమిటి?

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

మైక్రో సర్వీస్ ఆర్కిటెక్చర్‌తో అభివృద్ధి చేసిన ఇ-కామర్స్ అప్లికేషన్ యొక్క ఉదాహరణను తీసుకుందాం. ఈ మైక్రో సర్వీసెస్ ఆర్కిటెక్చర్ ఉదాహరణలో, ప్రతి మైక్రో సర్వీసు ఒకే వ్యాపార సామర్ధ్యం మీద దృష్టి పెట్టింది. శోధన, రేటింగ్ & రివ్యూ మరియు చెల్లింపు ప్రతి ఒక్కరికీ ఒక ఉదాహరణ (సర్వర్) ఉంటుంది మరియు ఒకరితో ఒకరు కమ్యూనికేట్ చేసుకోండి.

మైక్రో సర్వీసెస్ ఆర్కిటెక్చర్

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

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

మైక్రోసర్వీస్ వర్సెస్ మోనోలిథిక్ ఆర్కిటెక్చర్

మైక్రో సర్వీసెస్ఏకశిలా నిర్మాణం
మొత్తం అప్లికేషన్‌లోని ప్రతి యూనిట్ చిన్నదిగా ఉండాలి మరియు అది ఒక నిర్దిష్ట వ్యాపార లక్ష్యాన్ని అందించగలగాలి.అన్ని వ్యాపార లక్ష్యాల కోసం ఒకే కోడ్ బేస్
సర్వీస్ స్టార్టప్ సాపేక్షంగా వేగంగా ఉంటుందిసేవ ప్రారంభానికి ఎక్కువ సమయం పడుతుంది
తప్పు ఒంటరితనం సులభం. ఒక సేవ తగ్గిపోయినప్పటికీ, మరొకటి పనిచేయడం కొనసాగించవచ్చు.తప్పు ఒంటరితనం కష్టం. ఏదైనా నిర్దిష్ట ఫీచర్ పని చేయకపోతే, పూర్తి సిస్టమ్ డౌన్ అవుతుంది. ఈ సమస్యను నిర్వహించడానికి, అప్లికేషన్ తిరిగి నిర్మించబడాలి, మళ్లీ పరీక్షించబడాలి మరియు మళ్లీ అమలు చేయాలి.
ఒకదానిలో చేసిన మార్పులు మరొకదానిపై ప్రభావం చూపకుండా అన్ని మైక్రో సర్వీసులను వదులుగా కలపాలి.ఏకశిలా నిర్మాణాన్ని గట్టిగా కలుపుతారు. కోడ్ యొక్క ఒక మాడ్యూల్‌లోని మార్పులు మరొకదానిపై ప్రభావం చూపుతాయి
వ్యాపారాలు అధిక ROI ని ఉత్పత్తి చేస్తున్న సేవలకు మరిన్ని వనరులను విస్తరించగలవుసేవలు వేరుచేయబడనందున, వ్యక్తిగత వనరుల కేటాయింపు సాధ్యం కాదు
తరచుగా ఉపయోగించే సేవకు మరిన్ని హార్డ్‌వేర్ వనరులను కేటాయించవచ్చు. పై ఇ-కామర్స్ ఉదాహరణలో, చెల్లింపులతో పోలిస్తే ఎక్కువ మంది వినియోగదారులు ఉత్పత్తి జాబితాను మరియు శోధనను తనిఖీ చేస్తారు. కాబట్టి, శోధన మరియు ఉత్పత్తి జాబితా మైక్రోసర్వీస్‌కి మరిన్ని వనరులు కేటాయించబడవచ్చు.అప్లికేషన్ స్కేలింగ్ సవాలుతో పాటు వ్యర్థమైనది.
మైక్రో సర్వీసులు ఎల్లప్పుడూ స్థిరంగా మరియు నిరంతరం అందుబాటులో ఉంటాయి.మొదటి నుండి ప్రక్రియను ప్రారంభించాల్సిన అవసరం ఉన్నందున డెవలప్‌మెంట్ టూల్స్‌పై అధిక భారం పడుతుంది.
డేటా సమాఖ్య చేయబడింది. ఇది వ్యక్తిగత మైక్రోసర్వీస్ దాని అవసరాలకు ఉత్తమంగా సరిపోయే డేటా మోడల్‌ను స్వీకరించడానికి అనుమతిస్తుంది.డేటా కేంద్రీకృతమై ఉంది.
చిన్న దృష్టి కేంద్రీకరించిన జట్లు. సమాంతర మరియు వేగవంతమైన అభివృద్ధిపెద్ద బృందం మరియు గణనీయమైన జట్టు నిర్వహణ ప్రయత్నం అవసరం
ఒక మైక్రో సర్వీసు యొక్క డేటా మోడల్‌లో మార్పు ఇతర మైక్రో సర్వీసులను ప్రభావితం చేయదు.డేటా మోడల్‌లో మార్పు మొత్తం డేటాబేస్‌ని ప్రభావితం చేస్తుంది
బాగా నిర్వచించిన ఇంటర్‌ఫేస్‌లను ఉపయోగించడం ద్వారా ఇతర మైక్రో సర్వీసులతో సంకర్షణ చెందుతుందివర్తించదు

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

మైక్రో సర్వీసు సవాళ్లు

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

SOA వర్సెస్ మైక్రో సర్వీసెస్

డైరెక్టరీ లిస్టింగ్‌గా పనిచేసే రిజిస్ట్రీ ద్వారా సంస్థలో SOA సేవలు నిర్వహించబడతాయి. దరఖాస్తులు రిజిస్ట్రీలో సేవలను చూడాలి మరియు సేవను ఆహ్వానించాలి.

మరొక ప్రపంచంలో, SOA సంగీత కళాకారుడు అందరికీ సూచనలు ఇస్తున్నప్పుడు ప్రతి కళాకారుడు తన వాయిద్యంతో ప్రదర్శించే ఆర్కెస్ట్రా లాగా ఉంటుంది.

మరొక వైపు, మైక్రో సర్వీసెస్ అనేది సర్వీస్-ఓరియెంటెడ్ ఆర్కిటెక్చర్ స్టైల్ యొక్క ఒక రూపం, దీనిలో అప్లికేషన్‌లు ఒక సాఫ్ట్‌వేర్ లేదా అప్లికేషన్‌కు బదులుగా విభిన్న చిన్న సేవల సేకరణగా నిర్మించబడతాయి.

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

SOA మరియు మైక్రో సర్వీసెస్ మధ్య వివరణాత్మక పోలిక ఇక్కడ ఉంది

పరామితిSOAమైక్రో సర్వీసెస్
డిజైన్ రకంSOA లో, సేవల రూపంలో ఉపయోగం కోసం సాఫ్ట్‌వేర్ భాగాలు బాహ్య ప్రపంచానికి బహిర్గతమవుతాయి.మైక్రో సర్వీస్ అనేది SOA లో ఒక భాగం. ఇది SOA అమలు.
ఆధారపడటంవ్యాపార యూనిట్లు ఆధారపడి ఉంటాయి.వారు ఒకరికొకరు స్వతంత్రులు.
సాఫ్ట్‌వేర్ పరిమాణంసాంప్రదాయ సాఫ్ట్‌వేర్ కంటే సాఫ్ట్‌వేర్ పరిమాణం పెద్దదిమైక్రో సర్వీసులలో సాఫ్ట్‌వేర్ పరిమాణం ఎల్లప్పుడూ చిన్నదిగా ఉంటుంది
టెక్నాలజీ స్టాక్మైక్రోసర్వీస్‌తో పోలిస్తే టెక్నాలజీ స్టాక్ తక్కువ.మైక్రోసర్వీస్ టెక్నాలజీ స్టాక్ చాలా పెద్దది కావచ్చు
అప్లికేషన్ యొక్క స్వభావంఏకశిలా స్వభావంప్రకృతిలో పూర్తి స్టాక్
స్వతంత్ర మరియు దృష్టిబహుళ వ్యాపార పనులను నిర్వహించడానికి SOA అప్లికేషన్లు నిర్మించబడ్డాయి.ఒకే వ్యాపార పనిని నిర్వహించడానికి అవి నిర్మించబడ్డాయి.
విస్తరణవిస్తరణ ప్రక్రియ సమయం తీసుకుంటుంది.విస్తరణ సూటిగా ఉంటుంది మరియు తక్కువ సమయం తీసుకుంటుంది.
ఖర్చు - ప్రభావంమరింత ఖర్చుతో కూడుకున్నది.తక్కువ ఖర్చుతో కూడుకున్నది.
స్కేలబిలిటీమైక్రో సర్వీసులతో పోలిస్తే తక్కువ.అత్యంత స్కేలబుల్.
వ్యాపార లాజిక్వ్యాపార లాజిక్ భాగాలు సింగిల్ సర్వీస్ డొమైన్ సింపుల్ వైర్ ప్రోటోకాల్స్ లోపల నిల్వ చేయబడతాయి (XML JSON తో HTTP)
API SDK లు/క్లయింట్‌లతో నడపబడుతుంది
బిజినెస్ లాజిక్ డొమైన్స్ ఎంటర్‌ప్రైజ్ సర్వీస్ బస్ సర్వీసెస్ మిడిల్‌వేర్ మధ్య పొరలు లాగా ఉంటుంది

మైక్రో సర్వీసెస్ టూల్స్

1) వైర్‌మాక్: మైక్రో సర్వీసులను పరీక్షిస్తోంది

WireMock అనేది వెబ్ సేవలను మొద్దుబారడం మరియు ఎగతాళి చేయడానికి అనువైన లైబ్రరీ. ఇది నిర్దిష్ట అభ్యర్థనను స్వీకరించినప్పుడు HTTP API ద్వారా వచ్చిన ప్రతిస్పందనను కాన్ఫిగర్ చేయవచ్చు. ఇది మైక్రో సర్వీసెస్ పరీక్షించడానికి కూడా ఉపయోగించబడుతుంది.

డౌన్లోడ్ లింక్: http://wiremock.org/

2) డాకర్

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

డౌన్లోడ్ లింక్: https://www.docker.com/

3) హిస్ట్రిక్స్

హిస్ట్రిక్స్ ఒక తప్పు సహనం జావా లైబ్రరీ. మైక్రోసర్వీస్ వంటి పంపిణీ చేయబడిన వాతావరణంలో రిమోట్ సర్వీసెస్, సిస్టమ్‌లు మరియు 3 వ పార్టీ లైబ్రరీలకు యాక్సెస్ పాయింట్‌లను వేరు చేయడానికి ఈ సాధనం రూపొందించబడింది. విఫలమైన సేవలను వేరుచేయడం మరియు వైఫల్యాల క్యాస్కేడింగ్ ప్రభావాన్ని నిరోధించడం ద్వారా ఇది మొత్తం వ్యవస్థను మెరుగుపరుస్తుంది.

డౌన్లోడ్ లింక్: https://github.com/Netflix/Hystrix

మైక్రో సర్వీసెస్ ఆర్కిటెక్చర్ యొక్క ఉత్తమ అభ్యాసాలు

  • ప్రతి మైక్రో సర్వీసు కోసం ప్రత్యేక డేటా స్టోర్
  • అదే స్థాయి మెచ్యూరిటీ కోడ్‌ని ఉంచండి.
  • ప్రతి మైక్రో సర్వీస్ కోసం ప్రత్యేక బిల్డ్
  • ఎల్లప్పుడూ స్థితిలేనివారిగా వ్యవహరించండి.

సారాంశం

  • మైక్రో సర్వీసెస్ అనేది సర్వీస్-ఓరియెంటెడ్ ఆర్కిటెక్చర్ నమూనా, దీనిలో అప్లికేషన్‌లు వివిధ చిన్న స్వతంత్ర సేవా యూనిట్ల సేకరణగా నిర్మించబడ్డాయి.
  • మైక్రోసర్వీస్ ఆర్కిటెక్చర్ అనేది ఆర్కిటెక్చరల్ డెవలప్‌మెంట్ స్టైల్, ఇది వ్యాపార డొమైన్ కోసం అభివృద్ధి చేసిన స్వయంప్రతిపత్త సేవల సమాహారంగా అప్లికేషన్‌ను రూపొందించడానికి అనుమతిస్తుంది.
  • మోనోలిథిక్ ఆర్కిటెక్చర్ అనేది ఒక పెద్ద కంటైనర్ లాంటిది, దీనిలో అప్లికేషన్ యొక్క అన్ని సాఫ్ట్‌వేర్ భాగాలు ఒకే ప్యాకేజీగా క్లబ్ చేయబడతాయి
  • మైక్రో సర్వీసులో, మొత్తం అప్లికేషన్ యొక్క ప్రతి యూనిట్ చిన్నదిగా ఉండాలి మరియు అది ఒక నిర్దిష్ట వ్యాపార లక్ష్యాన్ని అందించగలదు
  • ఏకశిలా నిర్మాణంలో, పెద్ద కోడ్ బేస్ మొత్తం అభివృద్ధి ప్రక్రియను నెమ్మదిస్తుంది. కొత్త విడుదలలకు నెలలు పట్టవచ్చు. కోడ్ నిర్వహణ కష్టం
  • రెండు రకాల మైక్రో సర్వీసులు 1) స్టేట్‌లెస్ 2) స్టేట్‌ఫుల్
  • జావాలోని మైక్రో సర్వీసులు ఒకదానిపై ఒకటి ఆధారపడతాయి మరియు అవి ఒకదానితో ఒకటి కమ్యూనికేట్ చేసుకోవాలి. నిర్దిష్ట ఫీచర్ మరియు వ్యాపార అవసరాలపై దృష్టి పెట్టడానికి మీకు సహాయపడుతుంది
  • SOA అని పిలవబడే సర్వీస్-ఓరియెంటెడ్ ఆర్కిటెక్చర్ అనేది సమకాలీన మరియు అసమకాలిక అనువర్తనాల కోసం అభ్యర్థన లేదా ప్రత్యుత్తరం రూపకల్పన నమూనా ఆధారంగా పంపిణీ చేయబడిన కంప్యూటింగ్ యొక్క పరిణామం
  • SOA లో, సేవల రూపంలో ఉపయోగం కోసం సాఫ్ట్‌వేర్ భాగాలు బాహ్య ప్రపంచానికి బహిర్గతమవుతాయి, అయితే మైక్రో సర్వీస్ SOA లో భాగం. ఇది SOA అమలు
  • వైర్‌మాక్, డాకర్ మరియు హిస్ట్రిక్స్ కొన్ని ప్రముఖ మైక్రోసర్వీస్ టూల్స్