paint-brush
Орналастыру: олардан иррационалды қорқынышбойынша@aviator

Орналастыру: олардан иррационалды қорқыныш

бойынша Aviator7m2024/09/30
Read on Terminal Reader

Тым ұзақ; Оқу

Орналастырулар туралы алаңдаушылық шынайы. Орналастыруға байланысты адамның эмоцияларын түсінуге тырысайық және қорқынышты азайту үшін ең жақсы тәжірибелерді үйренейік.
featured image - Орналастыру: олардан иррационалды қорқыныш
Aviator HackerNoon profile picture



Орналастырулар туралы алаңдаушылық нақты. Орналастыруға байланысты адамның эмоцияларын түсінуге тырысайық және қорқынышты азайту үшін ең жақсы тәжірибелерді үйренейік.


CrowdStrike-мен жақында болған үзіліс 8,5 миллион Windows операциялық жүйесіне әсер етті, бұл әртүрлі жаһандық қызметтерде, соның ішінде әуе компанияларында және ауруханаларда үзілістерге әкелді. Көптеген талдаулар бұл оқиғаның түпкі себебін зерттеді.


Дегенмен, бағдарламалық жасақтама инженері ретінде, менің ойымша, біз орналастыруға байланысты адам эмоцияларының аспектісін, атап айтқанда өндірісті бұзудан қорқуды жіберіп аламыз. Міне, біз осы мақалада тереңірек танысуға тырысамыз. Біз қарастырамыз:


  • Шығару инженериясының функциясын түсіну.
  • Бағдарламалық жасақтама инженерлері нені қызықтырады және нені қызықтырмайды.
  • Үздіксіз жеткізудің әсері (CD).
  • Қолмен орналастыруға шолу.
  • Қолмен орналастыру мәселелері және осы мәселелерді шешу.

Шығарылым инженериясы

Бағдарламалық жасақтама инженерінің көзқарасы бойынша орналастыру қорқынышын зерттемес бұрын, алдымен шығару инженерінің рөлін түсінейік. Қазіргі заманғы CI және CD құралдарының және Kubernetes стандартының арқасында шығарылым инженериясы соңғы жылдары айтарлықтай дамыды. Осы жетістіктерге қарамастан, негізгі міндеттер өзгеріссіз қалады:


  • Тұрақты және қайталанатын орналастырулар: шығару процестерін стандарттау, өндіріске нашар орналастыру қаупін азайтады.


  • Қызмет көрсетудегі үзілістерді азайту : Стандартталған процестер сонымен қатар топтардың зиянды өндірістік орта оқиғаларымен күресу үшін жабдықталғанын қамтамасыз етеді, мысалы, шығарылым проблемалар тудыратын сценарийлер үшін кері қайтару стратегиясы.


  • Өнімділікті бақылау және оңтайландыру: жылдамырақ және сенімдірек орналастыру үшін өнімділікті жақсартуларды іздеңіз.


  • Инженерлік қызметпен ынтымақтасу: барлық жаңа және бар қызметтерде нақты анықталған орналастыру процесі болуын қамтамасыз ету үшін әзірлеушілермен, QA және DevOps топтарымен тығыз жұмыс жасаңыз.

Бағдарламалық жасақтама инженерлері нені қызықтырады

Шығарылым инженерлерінен айырмашылығы, өнім тобында жұмыс істейтін бағдарламалық жасақтама инженері ретінде біз орналастырудың белгілі бір аспектілеріне ғана мән бере аламыз:


  • Жылдам кодты біріктіру: Жылдам біріктіру олардың жұмысын тексеруге және жаңа тапсырмаларға өтуге немесе тәуелді тапсырмаларды блоктан шығаруға мүмкіндік береді.


  • Өндірістік оқиғалар : Инженерлер барлық өндірістік оқиғаларға мән бермеуі мүмкін, бірақ олар кез келген өндіріс үзілістерін тудыратын код өзгерістеріне мән береді.


  • Орналастыру кестесі : Инженерлер сондай-ақ өзгертулері туралы нақты уақыттағы кері байланысқа қол жеткізу үшін олардың өзгерістерінің қашан іске қосылғанын немесе қосылғанын бақылағанды ұнатады.

Бағдарламалық жасақтама инженерлері нені қызықтырмайды

Бізді қызықтыратын нәрселер болса да, біз ойламайтын нәрселер де бар:


  • Орналастыру әдістемесі : Біз тиімді және сенімді орналастыру процесінің қажеттілігін білсек те, олар оның қалай орындалатынына мән бермейді.


  • Басқа өзгерістердің әсері : Егер бәрі дұрыс болмаса, біз басқа әзірлеушілер тарапынан байланысты емес өзгерістер туралы алаңдамаймыз.


  • Орналастыруды басқару : Инженер бағдарламалық жасақтама командасында орналастыруды кім басқаратынына немқұрайлы қарайды. Мысалы, егер тапсырма берілген болса, біз орналастыруды басқару туралы ғана ойланамыз.

Үздіксіз орналастырулардың әсері (CD)

Сонымен, қорқыныштың Үздіксіз орналастыруларға қандай қатысы бар?


Көп.


Зерттеулер [бірнеше артықшылықтарды] дәлелдеді (https://dora.dev/capabilities/continuous-delivery/#:~:text=DevOps%20Research%20and%20Assessment%20(DORA,as%20higher%20levels%20of%20) Үздіксіз орналастыру (CD) және таңқаларлық емес, олардың көпшілігі психологиялық сипатта болады.


Басқаша айтқанда, автоматтандырылған сынақтар өндірістің сенімділігін қамтамасыз етіп қана қоймайды, сонымен қатар психологиялық қауіпсіздікті қамтамасыз етеді, кейде қисынсыз, орналастыру қорқынышын азайтады. Әзірлеуші ретінде маған өзгерістерді қолмен тексеру сұралған болса, ықшам дискі процесіне өзгертулер енгізу ыңғайлырақ.


Дегенмен, осы ықшам дискілердің стратегияларының танымалдығына қарамастан, көптеген компаниялар әлі де қолмен орналастыруды іске қосады (адамның циклі бар), бұл CD енгізуге сақтықпен қарауды көрсетеді. Бұл мінез-құлық командалардың шығару процесін қадағалауды және қажет болған жағдайда араласуды қалайтынын көрсетеді.


Бұл психологиялық қауіпсіздік тұрғысынан түсіну маңызды. Қолмен орналастыру біреудің процесті қадағалап, ақаулық туындаған кезде мәселелерді шешетінін білдіреді. Бұл қауіпсіздік сезімін қамтамасыз еткенімен, ол орналастырушы адамда қорқыныш тудыруы мүмкін және адам қателігіне бейім.

Қолмен орналастырулар

Кемшіліктерге қарамастан, командалардың көпшілігі орналастыруды қолмен басқарады. Әдеттегі қолмен орналастыру бірнеше қадамдарды қамтуы мүмкін:

Қадағалау

Шығарылым шықпай тұрып, біреу бүкіл орналастыру процесін күтеді. Бұл адамға қиыншылық белгілері болған кезде және қашан араласу тапсырылады. Командалар оларды орналастыруды басқаратын және туындаған кезде проблемаларды өңдейтін шақыру бойынша адамды ұстайды.

Арнайы шығарылым командалары

Кейбір командаларда шығарылымдардың біркелкі өтуін қамтамасыз ететін арнайы шығарылым инженерлік тобы бар. Бұл мамандандырудың жоғары дәрежесін білдіретіндіктен, орналастыру процесі тиімдірек және сенімдірек болуы мүмкін.

Электрондық кестелер

Кейбір компаниялар енгізілген өзгерістерді тексеру үшін электрондық кестені жүргізеді. Бұл компанияларға алдын ала анықталған сапа стандарттарына сәйкес келетініне көз жеткізіп, осы өзгерістерді жүйелі түрде қарап шығуға және бекітуге мүмкіндік береді.

Қолмен QA

Электрондық кестелерден басқа, қолмен QA компаниялар қосатын тағы бір деңгей. Қолмен QA жаңа шығарылымдарды өндіріске орналастырмас бұрын кезеңдік орталарда сынақтан өткізеді. Дегенмен, тестілеу ортасы сенімді емес, сондықтан кейбір нақты өмірлік сценарийлер есепке алынбайды.

Қолмен орналастыру кезінде қай жерде ақаулар бар?

Қолмен орналастыруға ғана сүйенетін кез келген бағдарламалық жасақтаманы әзірлеу тобы үшін көп нәрсе дұрыс болмауы мүмкін:

Шағын топқа тәуелділік

Бұл шығарудың кешігуіне және кейбір жағдайларда адам қателігіне әкелетін кедергілер тудыруы мүмкін. Сондай-ақ, бұл нақты адам кеткенде немесе қажетті тапсырмаларды орындай алмағанда, командада қиындықтар болуы мүмкін.

Тәуекелді азайту стратегиясы жоқ

Қолайсыз өндірістік инцидентті жалғастыру стратегиясы жоқ. Оқиға орын алған кезде, босату тобы шешуге және шешім қабылдауға көмектесетін тиісті мүдделі тараптарды табу үшін күресуі керек.

Адамның қателігіне бейім

Пәрмендердегі немесе сценарийлердегі типографиялық қателер немесе орналастыруға дейінгі немесе орналастырудан кейінгі қадамдарды орындауды ұмытып кету.

Жоғары күш

Орналастыру процесінде бала күту қажет болғандықтан, бұл көп уақытты қажет ететін күшке айналады. Сондай-ақ орналастыру жиілігінің айтарлықтай төмендеуіне әкеледі. Мысалы, егер ол бүкіл орналастыруды бақылау үшін бір сағатты қажет етсе, шығару тобы сол уақытты үнемдеу үшін аздаған өзгерістері бар күндерде орналастыруларды өткізіп жіберуді шеше алады.

Байланыстың бұзылуы

Өнім топтарынан шығарылымдардың күйі және олардың өзгерістері өндіріске қашан енетіні түсініксіз.


Осы қиындықтарға қарап, инженерлердің орналастырудан неге қорқатынын түсіну оңай. Орналастырудағы сәтсіздіктер қаупі, жоғары үлестер және бос уақытты төмен ұстау қысымы да осы қорқынышқа ықпал етеді.


Бұл сәтсіздіктерді сынақ автоматтандыруды арттыру арқылы азайтуға болады. Дегенмен, бұл сынақтар сынақ ортасында орындалатындықтан, автоматтандырылған сынақтан барлық ықтимал қателерді анықтауға болмайды. Сәтсіздіктерді күтуге болады, бірақ төмендетілген қарқынмен.

Біз бұл туралы не істей аламыз?

Үздіксіз орналастыруларды жай ғана орнату керек пе? Айтуға оңай. Кемшіліктерге қарамастан, жақсы басқарылатын болса, қолмен орналастыру әлі де жақсы. Мақсаттар болуы керек:


  • өндірістік оқиғаларды болдырмау үшін қоршаулармен қамтамасыз ету
  • адамдық қателіктерді азайту
  • кез келген адамға орналастыруларды іске қосуға мүмкіндік беріңіз
  • орналастырудың жиі орын алуын қамтамасыз етіңіз

Қорғаныс қоршаулары – Канария және кері қайтару

Canary және Rollback стратегиялары үзілістің әсерін азайтуға және көптеген жағдайларда дағдарысты автоматты түрде болдырмауға көмектеседі.


Канар шығарылымы жаңа шығарылымыңызды өндірістік орта трафигінің шағын бөлігіне көрсетеді. Бұл командаларға тестілеу кезінде туындамауы мүмкін мәселелер туралы түсінік береді.


Екінші жағынан, кері қайтару стратегиясы инженерлерге шығарылымды бұрынғы тұрақты нұсқа күйіне қайтаруға көмектеседі. Ол өндірістік ортаға орналастырудан кейін жаңа мәселелер туындаған кезде жасалады.

Адам қателерін азайту – стандарттау

Тиімділікті, жүйелілікті, сенімділікті және бағдарламалық қамтамасыз етудің жоғары сапасын қамтамасыз ететін стандартты орналастыру әдістемелерін анықтаңыз. DevOps есебінде DORA сенімділік жақсырақ жұмыс өнімділігін болжайтынын көрсетеді. Сонымен қатар, стандартталған процесс автоматтандырылуы мүмкін босату процестерінде қайталануға мүмкіндік береді. Бұл процесті автоматтандыру командаға өндіріс шығындарын төмендетуге көмектеседі.

Орналастыру процесін демократияландыру

Орналастыру процесін демократияландыру нақты тұлғаларға тәуелділікті жояды. Егер біз кез келген бағдарламалық жасақтама инженеріне орналастыруға мүмкіндік берсек, ол қорқынышты баяу азайтады. «Егер» кез келген адам орналастыра алатын болса, бұл өте қиын болмауы керек». Леголарыңызбен бөлісіңіз!

Жиі орналастырулар

Орналастыру туралы алаңдаушылықты азайту үшін біз аз емес, жиірек орналастыруымыз керек. DORA есебінде, сонымен қатар, шағын топтамаларды орналастыру проблемаларды тудыруы және әзірлеушілер үшін психологиялық кедергіні төмендетуге көмектесетінін көрсетеді.

Әзірлеуші тәжірибесін жетілдіріңіз

Орналастырылған нәрсені нақтылау әзірлеушінің тәжірибесін жақсартады. Орналастырулар қашан орын алатынын және қандай өзгерістер енгізілгенін әзірлеушілерге білуді жеңілдетіңіз. Бұл мөлдірлік әзірлеушілерге олардың өзгерістерінің қашан іске қосылғанын бақылауға көмектеседі және оқиғаларды зерттеуді жеңілдетеді.

Анықталған тәуекелді азайту стратегиялары

Қайтарулар мен түзетулер үшін орындалатын қадамдар анықталған болуы керек, себебі бұл өндіріс оқиғаларына қатысты кез келген шешімсіздікті жоюға көмектеседі. Мысалы, оңай кері қайтару үшін командалар орындау үшін бөлек құрастыру және орналастыру қадамдары болуы керек.


Сол сияқты, түзетулер мен шие таңдауларымен қалай жұмыс істеу керектігін стандарттау ставкалар жоғары болған кезде жұмыс істеуді жеңілдетеді.

Мүмкіндік жалаулары

Функция жалаулары өндірісте инцидент тудырған жаңа мүмкіндікті өшіре алатын өшіру қосқыштары сияқты. Бұл инженерлерге өндірістік оқиғаларды жылдам шешуге мүмкіндік береді.

Қорытынды

Қымбат қателіктерді болдырмау үшін бағдарламалық жасақтама командалары өнімді әзірлеудің басынан бастап шығару инженериясын басымдық ретінде қарастыруы керек. Біз Crowdstrike сияқты оқиғалардың біздің даму тәжірибемізді бұзуына жол бермеуіміз керек. Орналастыру қорқынышын жою және өндірістік оқиғалардың алдын алу бірнеше негізгі стратегияларды қамтиды:


  • Орналастыру процестерін стандарттауды инвестициялаңыз.
  • Канар шығарылымдары, стратегиялық шығарулар, кері қайтарулар және түзетулер сияқты нақты анықталған тәуекелді азайту стратегияларын орнатыңыз.
  • Орналастыруларды демократияландыру арқылы әзірлеушілер тәжірибесін жеңілдетіңіз және барлығын қатысуға шақырыңыз.


Aviator-те біз әзірлеушілерге тезірек және жақсырақ құруға мүмкіндік беру үшін бірінші принциптерден бастап әзірлеушілер өнімділігі құралдарын құрастырамыз. Орналастыруларды басқарудың заманауи әдісін алу үшін Aviator шығарылымдарын қараңыз.