DevOps అభ్యాసాలు పని చేస్తాయి. మేము విడుదల ఇన్స్టాలేషన్ సమయాన్ని 10 రెట్లు తగ్గించినప్పుడు ఈ విషయాన్ని మేమే ఒప్పించాము. మేము VTBలో ఉపయోగించే FIS ప్రొఫైల్ సిస్టమ్లో, ఇన్స్టాలేషన్ ఇప్పుడు 90 కంటే 10 నిమిషాలు పడుతుంది. విడుదల బిల్డ్ సమయం రెండు వారాల నుండి రెండు రోజులకు తగ్గింది. నిరంతర అమలు లోపాల సంఖ్య దాదాపు కనిష్ట స్థాయికి పడిపోయింది. "మాన్యువల్ లేబర్" నుండి దూరంగా ఉండటానికి మరియు విక్రేతపై ఆధారపడటాన్ని తొలగించడానికి, మేము క్రచెస్తో పని చేయాలి మరియు ఊహించని పరిష్కారాలను కనుగొనవలసి ఉంటుంది. కట్ క్రింద మేము పూర్తి స్థాయి అంతర్గత అభివృద్ధిని ఎలా నిర్మించాము అనే దాని గురించి వివరణాత్మక కథనం.
నాంది: DevOps అనేది ఒక తత్వశాస్త్రం
గత సంవత్సరంలో, VTBలో DevOps అభ్యాసాల అంతర్గత అభివృద్ధి మరియు అమలును నిర్వహించడానికి మేము చాలా పని చేసాము:
- మేము 12 వ్యవస్థల కోసం అంతర్గత అభివృద్ధి ప్రక్రియలను నిర్మించాము;
- మేము 15 పైప్లైన్లను ప్రారంభించాము, వాటిలో నాలుగు ఉత్పత్తికి తీసుకురాబడ్డాయి;
- ఆటోమేటెడ్ 1445 పరీక్షా దృశ్యాలు;
- మేము అంతర్గత బృందాలు సిద్ధం చేసిన అనేక విడుదలలను విజయవంతంగా అమలు చేసాము.
ఇన్హౌస్ డెవలప్మెంట్ మరియు DevSecOps ప్రాక్టీసుల అమలును నిర్వహించడం అత్యంత కష్టతరమైనది FIS ప్రొఫైల్ సిస్టమ్ - నాన్-రిలేషనల్ DBMSలో రిటైల్ ఉత్పత్తి ప్రాసెసర్. అయినప్పటికీ, మేము డెవలప్మెంట్ను నిర్మించగలిగాము, పైప్లైన్ను ప్రారంభించగలిగాము, ఉత్పత్తిపై వ్యక్తిగత నాన్-రిలీజ్ ప్యాకేజీలను ఇన్స్టాల్ చేయగలిగాము మరియు విడుదలలను ఎలా అసెంబుల్ చేయాలో నేర్చుకున్నాము. పని సులభం కాదు, కానీ ఆసక్తికరంగా మరియు అమలులో స్పష్టమైన పరిమితులు లేకుండా: ఇక్కడ వ్యవస్థ ఉంది - మీరు అంతర్గత అభివృద్ధిని నిర్మించాలి. ఉత్పాదక వాతావరణానికి ముందు CDని ఉపయోగించడం మాత్రమే షరతు.
మొదట, అమలు అల్గోరిథం సరళంగా మరియు స్పష్టంగా కనిపించింది:
- మేము ప్రాథమిక అభివృద్ధి నైపుణ్యాన్ని అభివృద్ధి చేస్తాము మరియు స్థూల లోపాలు లేకుండా కోడ్ బృందం నుండి ఆమోదయోగ్యమైన నాణ్యతను సాధిస్తాము;
- మేము ఇప్పటికే ఉన్న ప్రక్రియలలో సాధ్యమైనంతవరకు ఏకీకృతం చేస్తాము;
- స్పష్టమైన దశల మధ్య కోడ్ను బదిలీ చేయడానికి, మేము పైప్లైన్ను కత్తిరించాము మరియు దాని చివరలలో ఒకదానిని కొనసాగింపులోకి నెట్టాము.
ఈ సమయంలో, అవసరమైన పరిమాణంలో అభివృద్ధి బృందం తప్పనిసరిగా నైపుణ్యాలను అభివృద్ధి చేయాలి మరియు విడుదలలకు దాని సహకారం యొక్క వాటాను ఆమోదయోగ్యమైన స్థాయికి పెంచాలి. అంతే, పూర్తయిన పనిని మేము పరిగణించవచ్చు.
అవసరమైన ఫలితానికి ఇది పూర్తిగా శక్తి-సమర్థవంతమైన మార్గం అని అనిపించవచ్చు: ఇక్కడ DevOps ఉంది, ఇక్కడ బృందం పనితీరు కొలమానాలు ఉన్నాయి, ఇక్కడ సేకరించబడిన నైపుణ్యం ఉంది... కానీ ఆచరణలో, DevOps ఇప్పటికీ తత్వశాస్త్రం గురించిన మరొక నిర్ధారణను పొందాము , మరియు "గిట్లాబ్ ప్రాసెస్కి జతచేయబడలేదు, యాన్సిబుల్, నెక్సస్ మరియు ఇంకా దిగువ జాబితా."
కార్యాచరణ ప్రణాళికను మరోసారి విశ్లేషించిన తర్వాత, మనలో మనం ఒక రకమైన అవుట్సోర్స్ విక్రేతను నిర్మించుకుంటున్నామని మేము గ్రహించాము. అందువల్ల, ప్రాసెస్ రీఇంజనీరింగ్ పైన వివరించిన అల్గోరిథంకు జోడించబడింది, అలాగే ఈ ప్రక్రియలో ప్రముఖ పాత్రను సాధించడానికి మొత్తం అభివృద్ధి మార్గంలో నైపుణ్యం అభివృద్ధి చేయబడింది. సులభమైన ఎంపిక కాదు, కానీ ఇది సైద్ధాంతికంగా సరైన అభివృద్ధికి మార్గం.
అంతర్గత అభివృద్ధి ఎక్కడ ప్రారంభమవుతుంది?
ఇది పని చేయడానికి అత్యంత స్నేహపూర్వక వ్యవస్థ కాదు. నిర్మాణపరంగా, ఇది ఒక పెద్ద నాన్-రిలేషనల్ DBMS, అనేక ప్రత్యేక ఎక్జిక్యూటబుల్ ఆబ్జెక్ట్లను (స్క్రిప్ట్లు, ప్రొసీజర్లు, బ్యాచ్లు మొదలైనవి) కలిగి ఉంది, వీటిని అవసరమైన విధంగా పిలుస్తారు మరియు బ్లాక్ బాక్స్ సూత్రంపై పని చేసింది: ఇది అభ్యర్థన మరియు సమస్యలను అందుకుంటుంది. ఒక స్పందన. గమనించదగిన ఇతర ఇబ్బందులు:
- అన్యదేశ భాష (MUMPS);
- కన్సోల్ ఇంటర్ఫేస్;
- ప్రముఖ ఆటోమేషన్ సాధనాలు మరియు ఫ్రేమ్వర్క్లతో ఏకీకరణ లేకపోవడం;
- పదుల టెరాబైట్లలో డేటా వాల్యూమ్;
- గంటకు 2 మిలియన్లకు పైగా కార్యకలాపాల లోడ్;
- ప్రాముఖ్యత - వ్యాపారం-క్లిష్టమైనది.
అదే సమయంలో, మా వైపు సోర్స్ కోడ్ రిపోజిటరీ లేదు. అస్సలు. డాక్యుమెంటేషన్ ఉంది, కానీ అన్ని కీలక జ్ఞానం మరియు సామర్థ్యాలు బాహ్య సంస్థ వైపు ఉన్నాయి.
మేము దాని లక్షణాలను మరియు తక్కువ పంపిణీని పరిగణనలోకి తీసుకుని, దాదాపు మొదటి నుండి సిస్టమ్ యొక్క అభివృద్ధిని మాస్టరింగ్ చేయడం ప్రారంభించాము. అక్టోబర్ 2018లో ప్రారంభమైంది:
- కోడ్ ఉత్పత్తికి సంబంధించిన డాక్యుమెంటేషన్ మరియు బేసిక్స్ను అధ్యయనం చేసింది;
- మేము విక్రేత నుండి అందుకున్న అభివృద్ధిపై చిన్న కోర్సును అధ్యయనం చేసాము;
- ప్రావీణ్యం పొందిన ప్రారంభ అభివృద్ధి నైపుణ్యాలు;
- మేము కొత్త జట్టు సభ్యుల కోసం శిక్షణ మాన్యువల్ను సంకలనం చేసాము;
- మేము జట్టును "పోరాట" మోడ్లో చేర్చడానికి అంగీకరించాము;
- కోడ్ నాణ్యత నియంత్రణతో సమస్య పరిష్కరించబడింది;
- మేము అభివృద్ధి కోసం ఒక స్టాండ్ నిర్వహించాము.
మేము నైపుణ్యాన్ని పెంపొందించుకోవడానికి మరియు సిస్టమ్లో లీనమై మూడు నెలలు గడిపాము, మరియు 2019 ప్రారంభం నుండి, అంతర్గత అభివృద్ధి ఉజ్వల భవిష్యత్తు వైపు తన కదలికను ప్రారంభించింది, కొన్నిసార్లు కష్టంతో, కానీ నమ్మకంగా మరియు ఉద్దేశపూర్వకంగా.
రిపోజిటరీ మైగ్రేషన్ మరియు ఆటోటెస్ట్లు
మొదటి DevOps టాస్క్ రిపోజిటరీ. మేము ప్రాప్యతను అందించడానికి త్వరగా అంగీకరించాము, అయితే అనేక శాఖల నమూనాకు మరియు Git ఫ్లో అభివృద్ధితో ఒక ట్రంక్ బ్రాంచ్తో ప్రస్తుత SVN నుండి మా లక్ష్యమైన Gitకి మారడం అవసరం. మేము వారి స్వంత మౌలిక సదుపాయాలతో 2 బృందాలను కలిగి ఉన్నాము, అంతేకాకుండా విదేశాలలో ఉన్న విక్రేత బృందంలో కొంత భాగం కూడా ఉంది. నేను రెండు Gitsతో జీవించాల్సి వచ్చింది మరియు సమకాలీకరణను నిర్ధారించుకోవాలి. అటువంటి పరిస్థితిలో, ఇది రెండు చెడులలో తక్కువ.
రిపోజిటరీ యొక్క వలస పదేపదే వాయిదా వేయబడింది; ఇది ముందు వరుసలోని సహోద్యోగుల సహాయంతో ఏప్రిల్లో మాత్రమే పూర్తయింది. Git Flowతో, మేము ప్రారంభించడానికి విషయాలను సరళంగా ఉంచాలని నిర్ణయించుకున్నాము మరియు హాట్ఫిక్స్, అభివృద్ధి మరియు విడుదలతో క్లాసిక్ స్కీమ్లో స్థిరపడ్డాము. వారు మాస్టర్ (అకా ప్రోడ్ లాంటిది)ని విడిచిపెట్టాలని నిర్ణయించుకున్నారు. ఈ ఎంపిక మనకు ఎందుకు సరైనదని మేము క్రింద వివరిస్తాము. విక్రేతకు చెందిన ఒక బాహ్య రిపోజిటరీ, రెండు జట్లకు సాధారణం, కార్మికుడిగా ఉపయోగించబడింది. ఇది షెడ్యూల్ ప్రకారం అంతర్గత రిపోజిటరీతో సమకాలీకరించబడింది. ఇప్పుడు Git మరియు Gitlabతో ప్రక్రియలను ఆటోమేట్ చేయడం సాధ్యమైంది.
ఆటోటెస్ట్ల సమస్య ఆశ్చర్యకరంగా సులభంగా పరిష్కరించబడింది - మాకు రెడీమేడ్ ఫ్రేమ్వర్క్ అందించబడింది. సిస్టమ్ యొక్క విశేషాలను పరిగణనలోకి తీసుకుంటే, ఒక ప్రత్యేక ఆపరేషన్ను పిలవడం అనేది వ్యాపార ప్రక్రియలో అర్థమయ్యే భాగం మరియు అదే సమయంలో యూనిట్ పరీక్షగా పనిచేసింది. పరీక్ష డేటాను సిద్ధం చేయడం మరియు స్క్రిప్ట్లను కాల్ చేయడానికి మరియు ఫలితాలను మూల్యాంకనం చేయడానికి కావలసిన క్రమాన్ని సెట్ చేయడం మాత్రమే మిగిలి ఉంది. ఆపరేషన్ గణాంకాలు, ప్రక్రియల యొక్క క్లిష్టత మరియు ఇప్పటికే ఉన్న రిగ్రెషన్ మెథడాలజీ ఆధారంగా రూపొందించబడిన దృశ్యాల జాబితా, స్వయంచాలక పరీక్షలు కనిపించడం ప్రారంభించాయి. ఇప్పుడు మనం పైప్లైన్ నిర్మాణాన్ని ప్రారంభించవచ్చు.
ఇది ఎలా ఉంది: ఆటోమేషన్ ముందు మోడల్
అమలు ప్రక్రియ యొక్క ప్రస్తుత నమూనా ఒక ప్రత్యేక కథ. ప్రతి సవరణ ప్రత్యేక ఇంక్రిమెంటల్ ఇన్స్టాలేషన్ ప్యాకేజీగా మానవీయంగా బదిలీ చేయబడింది. తర్వాత జిరాలో మాన్యువల్ రిజిస్ట్రేషన్ మరియు పరిసరాలపై మాన్యువల్ ఇన్స్టాలేషన్ వచ్చింది. వ్యక్తిగత ప్యాకేజీల కోసం, ప్రతిదీ స్పష్టంగా కనిపించింది, కానీ విడుదల తయారీతో, విషయాలు మరింత క్లిష్టంగా ఉన్నాయి.
అసెంబ్లీ వ్యక్తిగత డెలివరీల స్థాయిలో నిర్వహించబడింది, అవి స్వతంత్ర వస్తువులు. ఏదైనా మార్పు కొత్త డెలివరీ. ఇతర విషయాలతోపాటు, ప్రధాన విడుదల కూర్పు యొక్క 60-70 ప్యాకేజీలకు 10-15 సాంకేతిక సంస్కరణలు జోడించబడ్డాయి - విడుదల నుండి ఏదైనా జోడించడం లేదా మినహాయించడం మరియు విడుదలల వెలుపల అమ్మకాలలో మార్పులను ప్రతిబింబించే సంస్కరణలు.
డెలివరీలలోని వస్తువులు ఒకదానితో ఒకటి అతివ్యాప్తి చెందుతాయి, ప్రత్యేకించి అమలు చేయగల కోడ్లో, ఇది సగం కంటే తక్కువగా ఉంటుంది. ఇప్పటికే ఇన్స్టాల్ చేయబడిన కోడ్పై మరియు ఇన్స్టాలేషన్ ఇప్పుడే ప్లాన్ చేసిన వాటిపై చాలా డిపెండెన్సీలు ఉన్నాయి.
కోడ్ యొక్క అవసరమైన సంస్కరణను పొందడానికి, ఇన్స్టాలేషన్ క్రమాన్ని ఖచ్చితంగా అనుసరించాల్సిన అవసరం ఉంది, ఈ సమయంలో వస్తువులు భౌతికంగా చాలాసార్లు, కొన్ని 10-12 సార్లు తిరిగి వ్రాయబడ్డాయి.
ప్యాకేజీల బ్యాచ్ని ఇన్స్టాల్ చేసిన తర్వాత, సెట్టింగ్లను ప్రారంభించేందుకు నేను సూచనలను మాన్యువల్గా అనుసరించాల్సి వచ్చింది. విడుదల అమ్మకందారుచే అసెంబుల్ చేయబడింది మరియు ఇన్స్టాల్ చేయబడింది. విడుదల యొక్క కూర్పు అమలు యొక్క క్షణానికి దాదాపుగా స్పష్టం చేయబడింది, ఇది "డికప్లింగ్" ప్యాకేజీల సృష్టిని కలిగి ఉంది. తత్ఫలితంగా, సరఫరాలో గణనీయమైన భాగం దాని స్వంత తోక "డికప్లింగ్స్"తో విడుదల నుండి విడుదలకు తరలించబడింది.
ఈ విధానంతో - ప్యాకేజీ స్థాయిలో విడుదల పజిల్ను సమీకరించడం - ఒకే మాస్టర్ బ్రాంచ్కు ఆచరణాత్మక అర్ధం లేదని ఇప్పుడు స్పష్టమైంది. ఉత్పత్తిపై సంస్థాపనకు ఒకటిన్నర నుండి రెండు గంటల మాన్యువల్ శ్రమ పట్టింది. కనీసం ఇన్స్టాలర్ స్థాయిలో ఆబ్జెక్ట్ ప్రాసెసింగ్ క్రమాన్ని పేర్కొనడం మంచిది: ఫీల్డ్లు మరియు నిర్మాణాలు వాటి కోసం డేటా మరియు విధానాలకు ముందు నమోదు చేయబడ్డాయి. అయితే, ఇది ప్రత్యేక ప్యాకేజీలో మాత్రమే పని చేస్తుంది.
ఈ విధానం యొక్క తార్కిక ఫలితం ఏమిటంటే, వస్తువుల యొక్క వంకర సంస్కరణలు, అనవసరమైన కోడ్, తప్పిపోయిన సూచనలు మరియు వస్తువుల యొక్క పరస్పర ప్రభావాలకు లెక్కించబడని రూపంలో తప్పనిసరి ఇన్స్టాలేషన్ లోపాలు, ఇవి విడుదలైన తర్వాత తీవ్రంగా తొలగించబడ్డాయి.
మొదటి అప్డేట్లు: కమిట్ అసెంబ్లీ మరియు డెలివరీ
ఈ మార్గంలో పైపు ద్వారా కోడ్ను ప్రసారం చేయడం ద్వారా ఆటోమేషన్ ప్రారంభమైంది:
- నిల్వ నుండి పూర్తయిన డెలివరీని తీయండి;
- ప్రత్యేక వాతావరణంలో దీన్ని ఇన్స్టాల్ చేయండి;
- ఆటోటెస్ట్లను అమలు చేయండి;
- సంస్థాపన ఫలితాన్ని అంచనా వేయండి;
- టెస్టింగ్ కమాండ్ వైపు కింది పైప్లైన్కు కాల్ చేయండి.
తదుపరి పైప్లైన్ విధిని జిరాలో నమోదు చేయాలి మరియు ఎంచుకున్న టెస్టింగ్ లూప్లకు కమాండ్లు పంపిణీ చేయబడే వరకు వేచి ఉండాలి, ఇది విధి అమలు సమయంపై ఆధారపడి ఉంటుంది. ట్రిగ్గర్ - ఇచ్చిన చిరునామాకు డెలివరీ చేయడానికి సంసిద్ధత గురించి ఒక లేఖ. ఇది, వాస్తవానికి, ఒక స్పష్టమైన ఊతకర్ర, కానీ నేను ఎక్కడో ప్రారంభించవలసి వచ్చింది. మే 2019లో, మా పరిసరాలపై తనిఖీలతో కోడ్ బదిలీ ప్రారంభమైంది. ప్రక్రియ ప్రారంభమైంది, దానిని మంచి ఆకృతిలోకి తీసుకురావడమే మిగిలి ఉంది:
- ప్రతి సవరణ ప్రత్యేక శాఖలో నిర్వహించబడుతుంది, ఇది ఇన్స్టాలేషన్ ప్యాకేజీకి అనుగుణంగా ఉంటుంది మరియు లక్ష్య మాస్టర్ బ్రాంచ్లో విలీనం అవుతుంది;
- పైప్లైన్ లాంచ్ ట్రిగ్గర్ అనేది విలీన అభ్యర్థన ద్వారా మాస్టర్ బ్రాంచ్లో కొత్త కమిట్ కనిపించడం, ఇది ఇన్హౌస్ టీం నుండి మెయింటెయినర్లచే మూసివేయబడుతుంది;
- రిపోజిటరీలు ప్రతి ఐదు నిమిషాలకు ఒకసారి సమకాలీకరించబడతాయి;
- ఇన్స్టాలేషన్ ప్యాకేజీ యొక్క అసెంబ్లీ ప్రారంభించబడింది - విక్రేత నుండి అందుకున్న అసెంబ్లర్ను ఉపయోగించి.
దీని తరువాత, కోడ్ను తనిఖీ చేయడానికి మరియు బదిలీ చేయడానికి, పైపును ప్రారంభించేందుకు మరియు మా వైపు సమీకరించడానికి ఇప్పటికే ఉన్న దశలు ఇప్పటికే ఉన్నాయి.
ఈ ఎంపిక జూలైలో ప్రారంభించబడింది. పరివర్తన యొక్క ఇబ్బందులు విక్రేత మరియు ముందు వరుసలో కొంత అసంతృప్తికి దారితీశాయి, అయితే తరువాతి నెలలో మేము అన్ని కఠినమైన అంచులను తొలగించి, జట్ల మధ్య ఒక ప్రక్రియను ఏర్పాటు చేయగలిగాము. మేము ఇప్పుడు కమిట్ మరియు డెలివరీ ద్వారా అసెంబ్లీని కలిగి ఉన్నాము.
ఆగస్ట్లో, మేము మా పైప్లైన్ని ఉపయోగించి ఉత్పత్తిపై ప్రత్యేక ప్యాకేజీ యొక్క మొదటి ఇన్స్టాలేషన్ను పూర్తి చేసాము మరియు సెప్టెంబర్ నుండి, మినహాయింపు లేకుండా, మా CD సాధనం ద్వారా వ్యక్తిగత విడుదల కాని ప్యాకేజీల యొక్క అన్ని ఇన్స్టాలేషన్లు నిర్వహించబడ్డాయి. అదనంగా, మేము విక్రేత కంటే చిన్న బృందంతో విడుదల చేసిన కూర్పులో 40% ఇన్హౌస్ టాస్క్ల వాటాను సాధించగలిగాము - ఇది ఖచ్చితమైన విజయం. అత్యంత తీవ్రమైన పని మిగిలి ఉంది - విడుదలను సమీకరించడం మరియు ఇన్స్టాల్ చేయడం.
చివరి పరిష్కారం: సంచిత సంస్థాపన ప్యాకేజీలు
విక్రేత సూచనలను స్క్రిప్ట్ చేయడం చాలా ఆటోమేషన్ అని మేము బాగా అర్థం చేసుకున్నాము; మేము ప్రక్రియ గురించి పునరాలోచించవలసి ఉంటుంది. పరిష్కారం స్పష్టంగా ఉంది - అవసరమైన సంస్కరణల యొక్క అన్ని వస్తువులతో విడుదల శాఖ నుండి సంచిత సరఫరాను సేకరించడం.
మేము కాన్సెప్ట్ రుజువుతో ప్రారంభించాము: గత అమలులోని విషయాల ప్రకారం మేము విడుదల ప్యాకేజీని చేతితో సమీకరించాము మరియు దానిని మా పరిసరాలలో ఇన్స్టాల్ చేసాము. ప్రతిదీ పనిచేసింది, భావన ఆచరణీయమైనదిగా మారింది. తరువాత, మేము ప్రారంభ సెట్టింగ్లను స్క్రిప్ట్ చేయడం మరియు వాటిని కమిట్లో చేర్చడం వంటి సమస్యను పరిష్కరించాము. మేము కొత్త ప్యాకేజీని సిద్ధం చేసాము మరియు కాంటౌర్ అప్డేట్లో భాగంగా టెస్టింగ్ ఎన్విరాన్మెంట్లలో దీనిని పరీక్షించాము. ఇంప్లిమెంటేషన్ టీమ్ నుండి అనేక రకాల వ్యాఖ్యలతో ఇన్స్టాలేషన్ విజయవంతమైంది. కానీ ప్రధాన విషయం ఏమిటంటే, మా అసెంబ్లీతో నవంబర్ విడుదలలో ప్రొడక్షన్లోకి వెళ్లడానికి మాకు అనుమతి ఇవ్వబడింది.
కేవలం ఒక నెల మాత్రమే మిగిలి ఉన్నందున, చేతితో ఎంచుకున్న సామాగ్రి సమయం ముగిసిపోతోందని స్పష్టంగా సూచించింది. వారు విడుదల శాఖ నుండి నిర్మించాలని నిర్ణయించుకున్నారు, అయితే దానిని ఎందుకు వేరు చేయాలి? మా వద్ద ఉత్పత్తి లాంటిది లేదు మరియు ఇప్పటికే ఉన్న శాఖలు మంచివి కావు - చాలా అనవసరమైన కోడ్లు ఉన్నాయి. మేము తక్షణమే ఉత్పత్తి-ఇష్టాలను తగ్గించాల్సిన అవసరం ఉంది మరియు ఇది మూడు వేలకు పైగా కమిట్లు. చేతితో సమీకరించడం అనేది ఒక ఎంపిక కాదు. మేము ఉత్పత్తి ఇన్స్టాలేషన్ లాగ్ ద్వారా నడిచే స్క్రిప్ట్ను రూపొందించాము మరియు బ్రాంచ్కి కమిట్లను సేకరిస్తాము. మూడవసారి అది సరిగ్గా పనిచేసింది, మరియు "ఫైల్తో పూర్తి చేసిన" తర్వాత శాఖ సిద్ధంగా ఉంది.
మేము ఇన్స్టాలేషన్ ప్యాకేజీ కోసం మా స్వంత బిల్డర్ను వ్రాసి ఒక వారంలో పూర్తి చేసాము. అప్పుడు మేము ఇన్స్టాలర్ను సిస్టమ్ యొక్క ప్రధాన కార్యాచరణ నుండి సవరించవలసి ఉంటుంది, ఎందుకంటే ఇది ఓపెన్ సోర్స్. వరుస తనిఖీలు మరియు సవరణల తర్వాత, ఫలితం విజయవంతమైంది. ఈ సమయంలో, విడుదల యొక్క కూర్పు రూపాన్ని సంతరించుకుంది, దీని యొక్క సరైన సంస్థాపన కోసం టెస్ట్ సర్క్యూట్ను ఉత్పత్తితో సమలేఖనం చేయడం అవసరం మరియు దీని కోసం ప్రత్యేక స్క్రిప్ట్ వ్రాయబడింది.
సహజంగానే, మొదటి ఇన్స్టాలేషన్ గురించి చాలా వ్యాఖ్యలు ఉన్నాయి, కానీ మొత్తం కోడ్ పనిచేసింది. మరియు మూడవ సంస్థాపన తర్వాత ప్రతిదీ మంచిగా కనిపించడం ప్రారంభించింది. వస్తువుల కూర్పు నియంత్రణ మరియు సంస్కరణ నియంత్రణ మాన్యువల్ మోడ్లో విడిగా పర్యవేక్షించబడ్డాయి, ఈ దశలో ఇది చాలా సమర్థించబడింది.
అదనపు సవాలు ఏమిటంటే, పెద్ద సంఖ్యలో విడుదల కానివి పరిగణనలోకి తీసుకోవలసి ఉంది. కానీ ప్రోడ్ లాంటి శాఖ మరియు రీబేస్తో, పని పారదర్శకంగా మారింది.
మొదటిసారి, త్వరగా మరియు లోపాలు లేకుండా
మేము ఒక ఆశావాద వైఖరితో మరియు విభిన్న సర్క్యూట్లలో డజనుకు పైగా విజయవంతమైన ఇన్స్టాలేషన్లతో విడుదలను సంప్రదించాము. కానీ వాచ్యంగా గడువుకు ఒక రోజు ముందు, అంగీకరించిన మార్గంలో సంస్థాపన కోసం విడుదలను సిద్ధం చేయడానికి విక్రేత పనిని పూర్తి చేయలేదని తేలింది. కొన్ని కారణాల వల్ల మా నిర్మాణం పని చేయకపోతే, విడుదలకు ఆటంకం ఏర్పడుతుంది. అంతేకాకుండా, మా ప్రయత్నాల ద్వారా, ఇది ప్రత్యేకంగా అసహ్యకరమైనది. మేము వెనక్కి వెళ్ళే మార్గం లేదు. అందువల్ల, మేము ప్రత్యామ్నాయ ఎంపికల ద్వారా ఆలోచించాము, కార్యాచరణ ప్రణాళికలను సిద్ధం చేసాము మరియు సంస్థాపన ప్రారంభించాము.
ఆశ్చర్యకరంగా, 800 కంటే ఎక్కువ వస్తువులతో కూడిన మొత్తం విడుదల, మొదటిసారి మరియు కేవలం 10 నిమిషాల్లో సరిగ్గా ప్రారంభమైంది. మేము ఎర్రర్ల కోసం వెతుకుతున్న లాగ్లను తనిఖీ చేయడానికి ఒక గంట గడిపాము, కానీ ఏదీ కనుగొనబడలేదు.
మరుసటి రోజు మొత్తం విడుదల చాట్లో నిశ్శబ్దం ఉంది: అమలు సమస్యలు, వంకర వెర్షన్లు లేదా “అనుచితమైన” కోడ్. ఇది కూడా ఒకరకంగా ఇబ్బందికరంగా ఉంది. తరువాత, కొన్ని వ్యాఖ్యలు వెలువడ్డాయి, కానీ ఇతర సిస్టమ్లు మరియు మునుపటి అనుభవంతో పోలిస్తే, వాటి సంఖ్య మరియు ప్రాధాన్యత గమనించదగ్గ విధంగా తక్కువగా ఉన్నాయి.
సంచిత ప్రభావం నుండి అదనపు ప్రభావం అసెంబ్లీ మరియు పరీక్ష నాణ్యతలో పెరుగుదల. పూర్తి విడుదల యొక్క బహుళ సంస్థాపనల కారణంగా, నిర్మాణ లోపాలు మరియు విస్తరణ లోపాలు సకాలంలో గుర్తించబడ్డాయి. పూర్తి విడుదల కాన్ఫిగరేషన్లలో పరీక్షించడం వలన పెరుగుతున్న ఇన్స్టాలేషన్లలో కనిపించని వస్తువుల పరస్పర ప్రభావంలో లోపాలను అదనంగా గుర్తించడం సాధ్యమైంది. ఇది ఖచ్చితంగా విజయవంతమైంది, ముఖ్యంగా విడుదలకు మా 57% సహకారం అందించారు.
ఫలితాలు మరియు ముగింపులు
ఒక సంవత్సరం లోపు మేము వీటిని నిర్వహించగలిగాము:
- అన్యదేశ వ్యవస్థను ఉపయోగించి పూర్తి స్థాయి అంతర్గత అభివృద్ధిని రూపొందించండి;
- క్లిష్టమైన విక్రేత ఆధారపడటాన్ని తొలగించండి;
- చాలా స్నేహపూర్వక వారసత్వం కోసం CI/CDని ప్రారంభించండి;
- కొత్త సాంకేతిక స్థాయికి అమలు ప్రక్రియలను పెంచండి;
- విస్తరణ సమయాన్ని గణనీయంగా తగ్గించండి;
- అమలు లోపాల సంఖ్యను గణనీయంగా తగ్గించండి;
- మిమ్మల్ని మీరు ప్రముఖ డెవలప్మెంట్ నిపుణుడిగా నమ్మకంగా ప్రకటించుకోండి.
వాస్తవానికి, వివరించిన వాటిలో చాలా వరకు పూర్తిగా చెత్తగా కనిపిస్తాయి, అయితే ఇవి సిస్టమ్ యొక్క లక్షణాలు మరియు దానిలో ఉన్న ప్రక్రియ పరిమితులు. ప్రస్తుతానికి, మార్పులు IS ప్రొఫైల్ ఉత్పత్తులు మరియు సేవలను (మాస్టర్ ఖాతాలు, ప్లాస్టిక్ కార్డ్లు, సేవింగ్స్ ఖాతాలు, ఎస్క్రో, నగదు రుణాలు) ప్రభావితం చేశాయి, అయితే DevOps పద్ధతులను అమలు చేసే పనిని సెట్ చేసిన ఏదైనా ISకి ఈ విధానాన్ని వర్తింపజేయవచ్చు. అనేక డెలివరీల నుండి తదుపరి అమలుల కోసం (విడుదల కాని వాటితో సహా) సంచిత మోడల్ సురక్షితంగా ప్రతిరూపం పొందుతుంది.
మూలం: www.habr.com