అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

Banki.ru పోర్టల్ యొక్క ఆపరేషన్స్ డైరెక్టర్ ఆండ్రీ నికోల్స్కీ గత సంవత్సరం సమావేశంలో మాట్లాడారు DevOpsDays మాస్కో అనాథ సేవల గురించి: అవస్థాపనలో అనాథను ఎలా గుర్తించాలి, అనాథ సేవలు ఎందుకు చెడ్డవి, వారితో ఏమి చేయాలి మరియు ఏమీ సహాయం చేయకపోతే ఏమి చేయాలి.

కట్ క్రింద నివేదిక యొక్క టెక్స్ట్ వెర్షన్ ఉంది.


హలో సహోద్యోగులారా! నా పేరు ఆండ్రీ, నేను Banki.ruలో కార్యకలాపాలు నిర్వహిస్తున్నాను.

మాకు పెద్ద సేవలు ఉన్నాయి, ఇవి అలాంటి ఏకశిలా సేవలు, మరింత శాస్త్రీయ కోణంలో సేవలు ఉన్నాయి మరియు చాలా చిన్నవి ఉన్నాయి. నా శ్రామిక-రైతు పరిభాషలో, సేవ సరళమైనది మరియు చిన్నది అయితే, అది సూక్ష్మమైనది మరియు అది చాలా సులభం మరియు చిన్నది కాకపోతే, అది కేవలం సేవ మాత్రమే అని నేను చెప్తాను.

సేవల యొక్క అనుకూలతలు

నేను సేవల ప్రయోజనాలను త్వరగా పరిశీలిస్తాను.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మొదటిది స్కేలింగ్. మీరు త్వరగా సేవలో ఏదైనా చేయవచ్చు మరియు ఉత్పత్తిని ప్రారంభించవచ్చు. మీరు ట్రాఫిక్‌ని స్వీకరించారు, మీరు సేవను క్లోన్ చేసారు. మీకు ఎక్కువ ట్రాఫిక్ ఉంది, మీరు దానిని క్లోన్ చేసారు మరియు దానితో జీవించారు. ఇది మంచి బోనస్, మరియు, సూత్రప్రాయంగా, మేము ప్రారంభించినప్పుడు, ఇది మాకు చాలా ముఖ్యమైన విషయంగా పరిగణించబడింది, మేము ఇవన్నీ ఎందుకు చేస్తున్నాము.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

చిత్రాన్ని చూడండి: ఇది మంచి డెవలపర్, అతనికి పెద్ద చేతులు ఉన్నాయి, అతను చాలా చేయగలడు. ఈ చేతులు ఎక్కడి నుంచి వచ్చాయన్నది ప్రధాన సమస్య.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

ఉదాహరణకు, మీకు 20 సేవలు ఉన్నాయి మరియు మీరు చేతితో అమర్చాలి, మీకు 20 కన్సోల్‌లు ఉన్నాయి మరియు మీరు ఏకకాలంలో నింజా లాగా "ఎంటర్" నొక్కండి. ఇది చాలా మంచిది కాదు.

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

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మేము విస్తరణను ఆటోమేట్ చేయడానికి Ansible, కన్వర్జెన్స్ కోసం పప్పెట్, డిప్లాయ్‌మెంట్‌ని ఆటోమేట్ చేయడానికి వెదురు మరియు వాటన్నింటిని ఎలాగైనా వివరించడానికి Confluenceని ఉపయోగిస్తాము.

నేను దీని గురించి వివరంగా చెప్పను, ఎందుకంటే నివేదిక ఇంటరాక్షన్ ప్రాక్టీస్‌ల గురించి ఎక్కువగా ఉంటుంది మరియు సాంకేతిక అమలు గురించి కాదు.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

ఉదాహరణకు, సర్వర్‌లోని పప్పెట్ రూబీ 2తో పనిచేసే చోట మాకు సమస్యలు ఉన్నాయి, అయితే కొన్ని అప్లికేషన్ రూబీ 1.8 కోసం వ్రాయబడింది మరియు అవి కలిసి పనిచేయవు. అక్కడ ఏదో తప్పు జరుగుతుంది. మరియు మీరు ఒక మెషీన్‌లో రూబీ యొక్క బహుళ వెర్షన్‌లను అమలు చేయవలసి వచ్చినప్పుడు, మీరు సాధారణంగా సమస్యలను ఎదుర్కొంటారు.

ఉదాహరణకు, మేము ప్రతి డెవలపర్‌కు ఒక ప్లాట్‌ఫారమ్‌ను అందిస్తాము, దానిలో మన దగ్గర ఉన్న ప్రతిదీ, అభివృద్ధి చేయగల అన్ని సేవలను అందిస్తాము, తద్వారా అతనికి వివిక్త వాతావరణం ఉంటుంది, అతను దానిని విచ్ఛిన్నం చేయవచ్చు మరియు అతను కోరుకున్నట్లు నిర్మించవచ్చు.

మీకు అక్కడ ఏదైనా మద్దతుతో ప్రత్యేకంగా కంపైల్ చేయబడిన ప్యాకేజీ అవసరం. ఇది చాలా కఠినమైనది. నేను డాకర్ చిత్రం 45 GB బరువున్న నివేదికను విన్నాను. లైనక్స్‌లో, ఇది చాలా సులభం, అక్కడ ప్రతిదీ చిన్నది, కానీ ఇప్పటికీ, తగినంత స్థలం ఉండదు.

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మాకు PHP 5.6లో సైట్‌లు మరియు సేవలు ఉన్నాయి, వాటి గురించి మేము సిగ్గుపడుతున్నాము, అయితే మనం ఏమి చేయగలం? ఇది మా ఒక్క సైట్. PHP 7లో సైట్‌లు మరియు సేవలు ఉన్నాయి, వాటిలో ఎక్కువ ఉన్నాయి, వాటి గురించి మేము సిగ్గుపడము. మరియు ప్రతి డెవలపర్ తన స్వంత స్థావరాన్ని కలిగి ఉంటాడు, అక్కడ అతను సంతోషంగా చూసాడు.

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

అందువల్ల, మేము ప్రోగ్రామింగ్ లాంగ్వేజ్ యొక్క ప్రయోజనాలను వేర్వేరు ఫ్రేమ్‌వర్క్‌ల ఉపయోగంతో భర్తీ చేసాము, ఎందుకంటే PHP ఫ్రేమ్‌వర్క్‌లు చాలా భిన్నంగా ఉంటాయి, వాటికి విభిన్న సామర్థ్యాలు, విభిన్న సంఘాలు మరియు విభిన్న మద్దతు ఉన్నాయి. మరియు మీరు ఒక సేవను వ్రాయవచ్చు, తద్వారా మీరు దాని కోసం ఇప్పటికే ఏదైనా సిద్ధంగా ఉన్నారు.

ప్రతి సేవకు దాని స్వంత బృందం ఉంటుంది

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మా ప్రధాన ప్రయోజనం, అనేక సంవత్సరాలుగా స్ఫటికీకరించబడింది, ప్రతి సేవకు దాని స్వంత బృందం ఉంటుంది. ఇది పెద్ద ప్రాజెక్ట్ కోసం సౌకర్యవంతంగా ఉంటుంది, మీరు డాక్యుమెంటేషన్లో సమయాన్ని ఆదా చేయవచ్చు, నిర్వాహకులు వారి ప్రాజెక్ట్ను బాగా తెలుసు.

మీరు మద్దతు నుండి టాస్క్‌లను సులభంగా సమర్పించవచ్చు. ఉదాహరణకు, భీమా సేవ విచ్ఛిన్నమైంది. మరియు వెంటనే బీమాతో వ్యవహరించే బృందం దాన్ని పరిష్కరించడానికి వెళుతుంది.

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

మరియు మీరు మీ సేవను విచ్ఛిన్నం చేసినప్పుడు మరియు ఇది అనివార్యంగా జరిగినప్పుడు, మీరు ఇతరుల సేవలను ప్రభావితం చేయలేదు మరియు ఇతర బృందాల నుండి డెవలపర్‌లు బిట్‌లతో మీ వద్దకు వచ్చి ఇలా చెప్పరు: "అయ్యో, అలా చేయవద్దు."

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

ఎప్పటిలాగే, సూక్ష్మ నైపుణ్యాలు ఉన్నాయి. మాకు స్థిరమైన జట్లు ఉన్నాయి, నిర్వాహకులు జట్టుకు వ్రేలాడదీయబడ్డారు. స్పష్టమైన పత్రాలు ఉన్నాయి, నిర్వాహకులు ప్రతిదీ నిశితంగా పర్యవేక్షిస్తారు. మేనేజర్‌తో ఉన్న ప్రతి బృందం అనేక సేవలను కలిగి ఉంటుంది మరియు యోగ్యత యొక్క నిర్దిష్ట పాయింట్ ఉంది.

జట్లు తేలుతున్నట్లయితే (మేము కూడా కొన్నిసార్లు దీనిని ఉపయోగిస్తాము), "స్టార్ మ్యాప్" అనే మంచి పద్ధతి ఉంది.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథ సేవలు ఎలా కనిపిస్తాయి?

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మొదటి సమస్య, మీ ఇన్‌ఫ్రాస్ట్రక్చర్‌లో అనాథ సేవను పొందడానికి మొదటి మార్గం వ్యక్తులను తొలగించడం. టాస్క్‌లను అంచనా వేయడానికి ముందు ఎవరైనా వ్యాపార సమావేశ గడువులను ఎప్పుడైనా కలిగి ఉన్నారా? కొన్నిసార్లు గడువులు కఠినంగా ఉంటాయి మరియు డాక్యుమెంటేషన్ కోసం తగినంత సమయం ఉండదు. "మేము సేవను ఉత్పత్తికి అప్పగించాలి, ఆపై మేము దానిని జోడిస్తాము."

జట్టు చిన్నది అయితే, ప్రతిదీ వ్రాసే ఒక డెవలపర్ ఉన్నాడు, మిగిలినవి రెక్కలలో ఉన్నాయి. "నేను ప్రాథమిక నిర్మాణాన్ని వ్రాసాను, ఇంటర్‌ఫేస్‌లను జోడిద్దాం." అప్పుడు ఏదో ఒక సమయంలో మేనేజర్, ఉదాహరణకు, వెళ్లిపోతాడు. మరియు ఈ కాలంలో, మేనేజర్ నిష్క్రమించినప్పుడు మరియు కొత్త వ్యక్తిని ఇంకా నియమించనప్పుడు, సేవ ఎక్కడికి వెళుతుందో మరియు అక్కడ ఏమి జరుగుతుందో డెవలపర్లు స్వయంగా నిర్ణయిస్తారు. మరియు మనకు తెలిసినట్లుగా (కొన్ని స్లయిడ్‌లు వెనక్కి వెళ్దాం), కొన్ని జట్లలో స్నోఫ్లేక్ వ్యక్తులు, కొన్నిసార్లు స్నోఫ్లేక్ టీమ్ లీడర్ కూడా ఉంటారు. అప్పుడు అతను నిష్క్రమించాడు మరియు మేము అనాథ సేవను పొందుతాము.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథను ఎలా గుర్తించాలి?

ఈ జాబితా పరిస్థితిని చక్కగా వివరిస్తుంది. వారి మౌలిక సదుపాయాల గురించి ఎవరు నేర్చుకున్నారు?

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

డాక్యుమెంట్ చేయబడిన వర్క్-అరౌండ్స్ గురించి: ఒక సేవ ఉంది మరియు సాధారణంగా, ఇది పని చేస్తుంది, దానితో ఎలా పని చేయాలనే దానిపై రెండు పేజీల మాన్యువల్ ఉంది, కానీ అది లోపల ఎలా పని చేస్తుందో ఎవరికీ తెలియదు.

లేదా, ఉదాహరణకు, ఒక రకమైన లింక్ షార్ట్నర్ ఉంది. ఉదాహరణకు, మేము ప్రస్తుతం వేర్వేరు సేవల్లో వేర్వేరు ప్రయోజనాల కోసం మూడు లింక్ షార్ట్‌నర్‌లను ఉపయోగిస్తున్నాము. ఇవి కేవలం పరిణామాలు మాత్రమే.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

ఉదాహరణకు, మేము ఊహించని ప్రదేశాలలో సింహికను కలిగి ఉన్న సేవను కలిగి ఉన్నాము. నేను ఏమి చేయాలో తరువాత చెబుతాను.

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

కెప్టెన్‌గా కొనసాగుతాను. అవుట్‌సోర్స్ సేవను అంగీకరించడం తప్పనిసరి ప్రక్రియ. ఎవరైనా ఎప్పుడైనా అవుట్‌సోర్సింగ్ సేవ వచ్చి ఎక్కడా అంగీకరించబడలేదా? ఇది అనాధ సేవ వలె ప్రజాదరణ పొందలేదు, కానీ ఇప్పటికీ.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

సేవను తనిఖీ చేయాలి, సేవను సమీక్షించాలి, పాస్‌వర్డ్‌లను మార్చాలి. వారు మాకు సేవను అందించినప్పుడు మాకు ఒక సందర్భం ఉంది, "లాగిన్ చేస్తే == 'అడ్మిన్' && పాస్‌వర్డ్ == 'అడ్మిన్'..." నిర్వాహక పానెల్ ఉంది, అది కోడ్‌లోనే వ్రాయబడింది. మేము కూర్చుని ఆలోచిస్తాము మరియు ప్రజలు దీనిని 2018లో వ్రాస్తారా?

నిల్వ సామర్థ్యాన్ని పరీక్షించడం కూడా అవసరం. మీరు ఈ సేవను ఎక్కడా ఉత్పత్తిలో ఉంచడానికి ముందే, వంద వేల రికార్డులలో ఏమి జరుగుతుందో మీరు చూడాలి.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

అభివృద్ధి కోసం సేవను పంపడంలో సిగ్గుపడకూడదు. మీరు ఇలా చెప్పినప్పుడు: “మేము ఈ సేవను అంగీకరించము, మాకు 20 పనులు ఉన్నాయి, వాటిని చేయండి, అప్పుడు మేము అంగీకరిస్తాము,” ఇది సాధారణం. మీరు మేనేజర్‌ని ఏర్పాటు చేసుకుంటున్నారని లేదా వ్యాపారం డబ్బును వృధా చేస్తున్నందున మీ మనస్సాక్షిని గాయపరచకూడదు. వ్యాపారం అప్పుడు ఎక్కువ ఖర్చు అవుతుంది.

మేము పైలట్ ప్రాజెక్ట్‌ను అవుట్‌సోర్స్ చేయాలని నిర్ణయించుకున్నప్పుడు మాకు ఒక సందర్భం ఉంది.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

అనాథల సమస్య ఏమిటి?

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

ఎవరికి తెలియదు, ఇది స్వీడన్‌లో పెరిగిన వాసా యుద్ధనౌక, ఇది ప్రయోగించిన 5 నిమిషాల తర్వాత మునిగిపోయింది. మరియు స్వీడన్ రాజు, దీని కోసం ఎవరినీ ఉరితీయలేదు. అటువంటి నౌకలను ఎలా నిర్మించాలో తెలియని రెండు తరాల ఇంజనీర్లు దీనిని నిర్మించారు. సహజ ప్రభావం.

ఓడ చాలా ఘోరంగా మునిగిపోయి ఉండవచ్చు, ఉదాహరణకు, రాజు అప్పటికే తుఫానులో ఎక్కడో దానిపై స్వారీ చేస్తున్నప్పుడు. అందువల్ల, అతను వెంటనే మునిగిపోయాడు, ఎజైల్ ప్రకారం, ముందుగానే విఫలమవడం మంచిది.

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

అనాథ సేవలు ఎందుకు ప్రమాదకరమైనవి:

  • సేవ అకస్మాత్తుగా విరిగిపోవచ్చు.
  • సేవ మరమ్మత్తు చేయడానికి చాలా సమయం పడుతుంది లేదా మరమ్మత్తు చేయబడదు.
  • భద్రతా సమస్యలు.
  • మెరుగుదలలు మరియు నవీకరణలతో సమస్యలు.
  • ఒక ముఖ్యమైన సేవ విచ్ఛిన్నమైతే, కంపెనీ ప్రతిష్ట దెబ్బతింటుంది.

అనాథ సేవలతో ఏమి చేయాలి?

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

నేను మళ్ళీ ఏమి చేయాలో పునరావృతం చేస్తాను. మొదట, డాక్యుమెంటేషన్ ఉండాలి. Banki.ru వద్ద 7 సంవత్సరాలు టెస్టర్‌లు డెవలపర్‌ల మాటను తీసుకోకూడదని మరియు కార్యకలాపాలు ప్రతి ఒక్కరి మాటను తీసుకోకూడదని నాకు నేర్పించారు. మేము తనిఖీ చేయాలి.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

రెండవది, ఇంటరాక్షన్ రేఖాచిత్రాలను వ్రాయడం అవసరం, ఎందుకంటే బాగా స్వీకరించబడని సేవలు ఎవరూ చెప్పని డిపెండెన్సీలను కలిగి ఉంటాయి. ఉదాహరణకు, డెవలపర్‌లు కొన్ని Yandex.Maps లేదా Dadataకి వారి కీలో సేవను ఇన్‌స్టాల్ చేసారు. మీ ఉచిత పరిమితి అయిపోయింది, ప్రతిదీ విరిగిపోయింది మరియు ఏమి జరిగిందో మీకు తెలియదు. అటువంటి రేక్‌లన్నింటినీ తప్పనిసరిగా వివరించాలి: సేవ డాడేటా, SMS, మరేదైనా ఉపయోగిస్తుంది.

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మూడవదిగా, సాంకేతిక రుణంతో పని చేయడం. మీరు కొన్ని రకాల ఊతకర్రలు చేసినప్పుడు లేదా సేవను అంగీకరించి, ఏదైనా చేయవలసి ఉందని చెప్పినప్పుడు, అది పూర్తయిందని మీరు నిర్ధారించుకోవాలి. ఎందుకంటే అప్పుడు చిన్న రంధ్రం అంత చిన్నది కాదని తేలిపోవచ్చు మరియు మీరు దాని గుండా పడిపోతారు.

నిర్మాణ పనులతో, మేము సింహిక గురించి ఒక కథను కలిగి ఉన్నాము. సేవలలో ఒకటి జాబితాలను నమోదు చేయడానికి సింహికను ఉపయోగించింది. పేజీల జాబితా మాత్రమే, కానీ ఇది ప్రతి రాత్రి మళ్లీ ఇండెక్స్ చేయబడింది. ఇది రెండు సూచికల నుండి సమీకరించబడింది: ప్రతి రాత్రి ఒక పెద్దది ఇండెక్స్ చేయబడింది మరియు దానికి స్క్రూ చేయబడిన ఒక చిన్న సూచిక కూడా ఉంది. ప్రతిరోజూ, 50% సంభావ్యతతో బాంబు దాడి జరగడం లేదా జరగకపోవడం, గణన సమయంలో సూచిక క్రాష్ అవుతుంది మరియు మా వార్తలు ప్రధాన పేజీలో అప్‌డేట్ చేయడం ఆగిపోయింది. ఇండెక్స్‌ని రీ-ఇండెక్స్ చేయడానికి మొదట 5 నిమిషాలు పట్టింది, ఆ తర్వాత ఇండెక్స్ పెరిగింది మరియు ఏదో ఒక సమయంలో అది 40 నిమిషాలకు రీ-ఇండెక్స్ చేయడం ప్రారంభించింది. మేము దీన్ని కత్తిరించినప్పుడు, మేము ఉపశమనంతో ఊపిరి పీల్చుకున్నాము, ఎందుకంటే మరికొంత సమయం గడిచిపోతుంది మరియు మా సూచిక పూర్తి సమయం తిరిగి సూచిక చేయబడుతుంది. ఇది మా పోర్టల్‌కు విఫలమవుతుంది, ఎనిమిది గంటల వరకు వార్తలు లేవు - అంతే, వ్యాపారం ఆగిపోయింది.

అనాథ సేవతో పని చేయడానికి ప్లాన్ చేయండి

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

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

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

అనాథ సేవలు: (మైక్రో) సర్వీస్ ఆర్కిటెక్చర్ యొక్క ప్రతికూలత

మేము Yii 1లో సేవను తీసుకున్నప్పుడు మరియు మేము దానిని మరింత అభివృద్ధి చేయలేమని గ్రహించినప్పుడు మేము పరిస్థితిని ఎదుర్కొన్నాము, ఎందుకంటే Yii 1లో బాగా వ్రాయగల డెవలపర్‌లు మాకు లేకుండా పోయారు. డెవలపర్‌లందరూ Symfony XNUMXలో బాగా వ్రాస్తారు. ఏం చేయాలి? మేము సమయాన్ని కేటాయించాము, బృందాన్ని కేటాయించాము, మేనేజర్‌ని కేటాయించాము, ప్రాజెక్ట్‌ను తిరిగి వ్రాసాము మరియు దానికి ట్రాఫిక్‌ను సజావుగా మార్చాము.

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

నేను మాట్లాడాలనుకున్నది ఇదే, నేను చర్చించడానికి సిద్ధంగా ఉన్నాను, టాపిక్ హోలివర్, చాలా మంది ఇందులో ఈదుకున్నారు.

మీరు భాషలను ఏకీకృతం చేశారని స్లైడ్‌లు చెబుతున్నాయి. చిత్రాల పరిమాణాన్ని మార్చడం ఒక ఉదాహరణ. దీన్ని ఒక భాషకు ఖచ్చితంగా పరిమితం చేయడం నిజంగా అవసరమా? ఎందుకంటే PHPలో ఇమేజ్ రీసైజింగ్ నిజానికి గోలాంగ్‌లో చేయవచ్చు.

వాస్తవానికి, ఇది అన్ని అభ్యాసాల వలె ఐచ్ఛికం. బహుశా, కొన్ని సందర్భాల్లో, ఇది కూడా అవాంఛనీయమైనది. అయితే 50 మంది ఉన్న కంపెనీలో టెక్నికల్ డిపార్ట్‌మెంట్ ఉంటే వారిలో 45 మంది PHP స్పెషలిస్ట్‌లు, మరో 3 మంది పైథాన్, అన్సిబుల్, పప్పెట్ లాంటివి తెలిసిన డెవొప్‌లు, వారిలో ఒకరు మాత్రమే కొన్నింటిలో రాస్తారని మీరు అర్థం చేసుకోవాలి. ఒక రకమైన భాష. కొన్ని గో ఇమేజ్ రీసైజింగ్ సేవ, ఆపై అది నిష్క్రమించినప్పుడు, దానితో పాటు నైపుణ్యం ఉంటుంది. మరియు అదే సమయంలో, మీరు ఈ భాష తెలిసిన మార్కెట్-నిర్దిష్ట డెవలపర్ కోసం వెతకాలి, ప్రత్యేకించి ఇది అరుదుగా ఉంటే. అంటే, సంస్థాగత దృక్కోణం నుండి, ఇది సమస్యాత్మకమైనది. devops దృక్కోణం నుండి, మీరు సేవలను అమలు చేయడానికి ఉపయోగించే కొన్ని రెడీమేడ్ ప్లేబుక్‌లను క్లోన్ చేయవలసిన అవసరం లేదు, కానీ మీరు వాటిని మళ్లీ మళ్లీ వ్రాయవలసి ఉంటుంది.

మేము ప్రస్తుతం Node.jsలో సేవను రూపొందిస్తున్నాము మరియు ఇది ప్రతి డెవలపర్‌కు ప్రత్యేక భాషతో సమీపంలోని ప్లాట్‌ఫారమ్ మాత్రమే. కానీ మేము కూర్చొని ఆట కొవ్వొత్తి విలువ అని అనుకున్నాము. అంటే మీరు కూర్చుని ఆలోచించాల్సిన ప్రశ్న ఇది.

మీరు మీ సేవలను ఎలా పర్యవేక్షిస్తారు? మీరు లాగ్‌లను ఎలా సేకరించి పర్యవేక్షిస్తారు?

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

ఒకే వాతావరణంలో పప్పెట్ మరియు అన్సిబుల్‌తో ఎలా జీవించాలి?

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

మీరు అనుకూలతను ఎలా కాపాడుకుంటారు? మీకు అన్సిబుల్ మరియు పప్పెట్ రెండింటిలోనూ కాన్ఫిగర్‌లు ఉన్నాయా?

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

ప్రదర్శన రూబీ యొక్క విభిన్న సంస్కరణల గురించి. ఏం పరిష్కారం?

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

ఈ సంవత్సరం సదస్సు DevOpsDays మాస్కో డిసెంబర్ 7న టెక్నోపోలిస్‌లో జరగనుంది. మేము నవంబర్ 11 వరకు నివేదికల కోసం దరఖాస్తులను స్వీకరిస్తున్నాము. వ్రాయడానికి మీరు మాట్లాడాలనుకుంటే మాకు.

పాల్గొనేవారి కోసం నమోదు తెరిచి ఉంది, మాతో చేరండి!

మూలం: www.habr.com

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