Орналастырулар туралы алаңдаушылық нақты. Орналастыруға байланысты адамның эмоцияларын түсінуге тырысайық және қорқынышты азайту үшін ең жақсы тәжірибелерді үйренейік.
CrowdStrike-мен жақында болған үзіліс 8,5 миллион Windows операциялық жүйесіне әсер етті, бұл әртүрлі жаһандық қызметтерде, соның ішінде әуе компанияларында және ауруханаларда үзілістерге әкелді. Көптеген талдаулар бұл оқиғаның түпкі себебін зерттеді.
Дегенмен, бағдарламалық жасақтама инженері ретінде, менің ойымша, біз орналастыруға байланысты адам эмоцияларының аспектісін, атап айтқанда өндірісті бұзудан қорқуды жіберіп аламыз. Міне, біз осы мақалада тереңірек танысуға тырысамыз. Біз қарастырамыз:
Бағдарламалық жасақтама инженерінің көзқарасы бойынша орналастыру қорқынышын зерттемес бұрын, алдымен шығару инженерінің рөлін түсінейік. Қазіргі заманғы CI және CD құралдарының және Kubernetes стандартының арқасында шығарылым инженериясы соңғы жылдары айтарлықтай дамыды. Осы жетістіктерге қарамастан, негізгі міндеттер өзгеріссіз қалады:
Шығарылым инженерлерінен айырмашылығы, өнім тобында жұмыс істейтін бағдарламалық жасақтама инженері ретінде біз орналастырудың белгілі бір аспектілеріне ғана мән бере аламыз:
Бізді қызықтыратын нәрселер болса да, біз ойламайтын нәрселер де бар:
Сонымен, қорқыныштың Үздіксіз орналастыруларға қандай қатысы бар?
Көп.
Зерттеулер [бірнеше артықшылықтарды] дәлелдеді (https://dora.dev/capabilities/continuous-delivery/#:~:text=DevOps%20Research%20and%20Assessment%20(DORA,as%20higher%20levels%20of%20) Үздіксіз орналастыру (CD) және таңқаларлық емес, олардың көпшілігі психологиялық сипатта болады.
Басқаша айтқанда, автоматтандырылған сынақтар өндірістің сенімділігін қамтамасыз етіп қана қоймайды, сонымен қатар психологиялық қауіпсіздікті қамтамасыз етеді, кейде қисынсыз, орналастыру қорқынышын азайтады. Әзірлеуші ретінде маған өзгерістерді қолмен тексеру сұралған болса, ықшам дискі процесіне өзгертулер енгізу ыңғайлырақ.
Дегенмен, осы ықшам дискілердің стратегияларының танымалдығына қарамастан, көптеген компаниялар әлі де қолмен орналастыруды іске қосады (адамның циклі бар), бұл CD енгізуге сақтықпен қарауды көрсетеді. Бұл мінез-құлық командалардың шығару процесін қадағалауды және қажет болған жағдайда араласуды қалайтынын көрсетеді.
Бұл психологиялық қауіпсіздік тұрғысынан түсіну маңызды. Қолмен орналастыру біреудің процесті қадағалап, ақаулық туындаған кезде мәселелерді шешетінін білдіреді. Бұл қауіпсіздік сезімін қамтамасыз еткенімен, ол орналастырушы адамда қорқыныш тудыруы мүмкін және адам қателігіне бейім.
Кемшіліктерге қарамастан, командалардың көпшілігі орналастыруды қолмен басқарады. Әдеттегі қолмен орналастыру бірнеше қадамдарды қамтуы мүмкін:
Шығарылым шықпай тұрып, біреу бүкіл орналастыру процесін күтеді. Бұл адамға қиыншылық белгілері болған кезде және қашан араласу тапсырылады. Командалар оларды орналастыруды басқаратын және туындаған кезде проблемаларды өңдейтін шақыру бойынша адамды ұстайды.
Кейбір командаларда шығарылымдардың біркелкі өтуін қамтамасыз ететін арнайы шығарылым инженерлік тобы бар. Бұл мамандандырудың жоғары дәрежесін білдіретіндіктен, орналастыру процесі тиімдірек және сенімдірек болуы мүмкін.
Кейбір компаниялар енгізілген өзгерістерді тексеру үшін электрондық кестені жүргізеді. Бұл компанияларға алдын ала анықталған сапа стандарттарына сәйкес келетініне көз жеткізіп, осы өзгерістерді жүйелі түрде қарап шығуға және бекітуге мүмкіндік береді.
Электрондық кестелерден басқа, қолмен QA компаниялар қосатын тағы бір деңгей. Қолмен QA жаңа шығарылымдарды өндіріске орналастырмас бұрын кезеңдік орталарда сынақтан өткізеді. Дегенмен, тестілеу ортасы сенімді емес, сондықтан кейбір нақты өмірлік сценарийлер есепке алынбайды.
Қолмен орналастыруға ғана сүйенетін кез келген бағдарламалық жасақтаманы әзірлеу тобы үшін көп нәрсе дұрыс болмауы мүмкін:
Бұл шығарудың кешігуіне және кейбір жағдайларда адам қателігіне әкелетін кедергілер тудыруы мүмкін. Сондай-ақ, бұл нақты адам кеткенде немесе қажетті тапсырмаларды орындай алмағанда, командада қиындықтар болуы мүмкін.
Қолайсыз өндірістік инцидентті жалғастыру стратегиясы жоқ. Оқиға орын алған кезде, босату тобы шешуге және шешім қабылдауға көмектесетін тиісті мүдделі тараптарды табу үшін күресуі керек.
Пәрмендердегі немесе сценарийлердегі типографиялық қателер немесе орналастыруға дейінгі немесе орналастырудан кейінгі қадамдарды орындауды ұмытып кету.
Орналастыру процесінде бала күту қажет болғандықтан, бұл көп уақытты қажет ететін күшке айналады. Сондай-ақ орналастыру жиілігінің айтарлықтай төмендеуіне әкеледі. Мысалы, егер ол бүкіл орналастыруды бақылау үшін бір сағатты қажет етсе, шығару тобы сол уақытты үнемдеу үшін аздаған өзгерістері бар күндерде орналастыруларды өткізіп жіберуді шеше алады.
Өнім топтарынан шығарылымдардың күйі және олардың өзгерістері өндіріске қашан енетіні түсініксіз.
Осы қиындықтарға қарап, инженерлердің орналастырудан неге қорқатынын түсіну оңай. Орналастырудағы сәтсіздіктер қаупі, жоғары үлестер және бос уақытты төмен ұстау қысымы да осы қорқынышқа ықпал етеді.
Бұл сәтсіздіктерді сынақ автоматтандыруды арттыру арқылы азайтуға болады. Дегенмен, бұл сынақтар сынақ ортасында орындалатындықтан, автоматтандырылған сынақтан барлық ықтимал қателерді анықтауға болмайды. Сәтсіздіктерді күтуге болады, бірақ төмендетілген қарқынмен.
Үздіксіз орналастыруларды жай ғана орнату керек пе? Айтуға оңай. Кемшіліктерге қарамастан, жақсы басқарылатын болса, қолмен орналастыру әлі де жақсы. Мақсаттар болуы керек:
Canary және Rollback стратегиялары үзілістің әсерін азайтуға және көптеген жағдайларда дағдарысты автоматты түрде болдырмауға көмектеседі.
Канар шығарылымы жаңа шығарылымыңызды өндірістік орта трафигінің шағын бөлігіне көрсетеді. Бұл командаларға тестілеу кезінде туындамауы мүмкін мәселелер туралы түсінік береді.
Екінші жағынан, кері қайтару стратегиясы инженерлерге шығарылымды бұрынғы тұрақты нұсқа күйіне қайтаруға көмектеседі. Ол өндірістік ортаға орналастырудан кейін жаңа мәселелер туындаған кезде жасалады.
Тиімділікті, жүйелілікті, сенімділікті және бағдарламалық қамтамасыз етудің жоғары сапасын қамтамасыз ететін стандартты орналастыру әдістемелерін анықтаңыз. DevOps есебінде DORA сенімділік жақсырақ жұмыс өнімділігін болжайтынын көрсетеді. Сонымен қатар, стандартталған процесс автоматтандырылуы мүмкін босату процестерінде қайталануға мүмкіндік береді. Бұл процесті автоматтандыру командаға өндіріс шығындарын төмендетуге көмектеседі.
Орналастыру процесін демократияландыру нақты тұлғаларға тәуелділікті жояды. Егер біз кез келген бағдарламалық жасақтама инженеріне орналастыруға мүмкіндік берсек, ол қорқынышты баяу азайтады. «Егер» кез келген адам орналастыра алатын болса, бұл өте қиын болмауы керек». Леголарыңызбен бөлісіңіз!
Орналастыру туралы алаңдаушылықты азайту үшін біз аз емес, жиірек орналастыруымыз керек. DORA есебінде, сонымен қатар, шағын топтамаларды орналастыру проблемаларды тудыруы және әзірлеушілер үшін психологиялық кедергіні төмендетуге көмектесетінін көрсетеді.
Орналастырылған нәрсені нақтылау әзірлеушінің тәжірибесін жақсартады. Орналастырулар қашан орын алатынын және қандай өзгерістер енгізілгенін әзірлеушілерге білуді жеңілдетіңіз. Бұл мөлдірлік әзірлеушілерге олардың өзгерістерінің қашан іске қосылғанын бақылауға көмектеседі және оқиғаларды зерттеуді жеңілдетеді.
Қайтарулар мен түзетулер үшін орындалатын қадамдар анықталған болуы керек, себебі бұл өндіріс оқиғаларына қатысты кез келген шешімсіздікті жоюға көмектеседі. Мысалы, оңай кері қайтару үшін командалар орындау үшін бөлек құрастыру және орналастыру қадамдары болуы керек.
Сол сияқты, түзетулер мен шие таңдауларымен қалай жұмыс істеу керектігін стандарттау ставкалар жоғары болған кезде жұмыс істеуді жеңілдетеді.
Функция жалаулары өндірісте инцидент тудырған жаңа мүмкіндікті өшіре алатын өшіру қосқыштары сияқты. Бұл инженерлерге өндірістік оқиғаларды жылдам шешуге мүмкіндік береді.
Қымбат қателіктерді болдырмау үшін бағдарламалық жасақтама командалары өнімді әзірлеудің басынан бастап шығару инженериясын басымдық ретінде қарастыруы керек. Біз Crowdstrike сияқты оқиғалардың біздің даму тәжірибемізді бұзуына жол бермеуіміз керек. Орналастыру қорқынышын жою және өндірістік оқиғалардың алдын алу бірнеше негізгі стратегияларды қамтиды:
Aviator-те біз әзірлеушілерге тезірек және жақсырақ құруға мүмкіндік беру үшін бірінші принциптерден бастап әзірлеушілер өнімділігі құралдарын құрастырамыз. Орналастыруларды басқарудың заманауи әдісін алу үшін Aviator шығарылымдарын қараңыз.