Kā mēs izlaižam programmatūras ielāpus GitLab

Kā mēs izlaižam programmatūras ielāpus GitLab

GitLab mēs apstrādājam programmatÅ«ras labojumus divos veidos: manuāli un automātiski. Lasiet tālāk, lai uzzinātu par laidiena pārvaldnieka darbu, veidojot un nodroÅ”inot svarÄ«gus atjauninājumus, izmantojot automatizētu izvietoÅ”anu vietnē gitlab.com, kā arÄ« ielāpus, ar kuriem lietotāji var strādāt savās instalācijās.

Iesaku viedpulkstenÄ« iestatÄ«t atgādinājumu: katra mēneÅ”a 22. datumā lietotāji, kuri savās telpās strādā ar GitLab, var redzēt mÅ«su produkta paÅ”reizējās versijas atjauninājumus. IkmēneÅ”a laidienā ir iekļauti jauni lÄ«dzekļi, esoÅ”o uzlabojumi, kā arÄ« bieži tiek parādÄ«ts kopienas rÄ«ku vai sapludināŔanas pieprasÄ«jumu gala rezultāts.

Bet, kā liecina prakse, programmatÅ«ras izstrāde reti ir bez trÅ«kumiem. Kad tiek atklāta kļūda vai droŔības ievainojamÄ«ba, laidienu pārvaldnieks piegādes komandā izveido ielāpu mÅ«su lietotājiem ar viņu instalācijām. Gitlab.com tiek atjaunināts kompaktdiska apstrādes laikā. Mēs Å”o kompaktdiska procesu saucam par automātisku izvietoÅ”anu, lai izvairÄ«tos no sajaukÅ”anas ar GitLab CD lÄ«dzekli. Å ajā procesā var iekļaut ieteikumus no lietotāju, klientu un mÅ«su iekŔējās izstrādes komandas iesniegtajiem izvilkÅ”anas pieprasÄ«jumiem, tādējādi garlaicÄ«gas ielāpu izlaiÅ”anas problēmas risināŔana tiek atrisināta divos ļoti dažādos veidos.

Ā«Mēs nodroÅ”inām, ka viss izstrādātāju radÄ«tais tiek izvietots visās vidēs katru dienu, pirms to izlaiž vietnē GitLab.com", skaidro Marins Jankovki, InfrastruktÅ«ras nodaļas vecākais tehniskais vadÄ«tājs. "Uztveriet savu instalāciju laidienus kā momentuzņēmumus gitlab.com izvietoÅ”anai, kuriem esam pievienojuÅ”i atseviŔķas darbÄ«bas, lai izveidotu pakotni, lai mÅ«su lietotāji to varētu izmantot instalÄ“Å”anai savās instalācijās.'.

NeatkarÄ«gi no kļūdas vai ievainojamÄ«bas, gitlab.com klienti saņems labojumus neilgi pēc to publicÄ“Å”anas, kas ir automatizētā CD procesa priekÅ”rocÄ«ba. Ielāpiem lietotājiem ar savām instalācijām ir nepiecieÅ”ams atseviŔķi sagatavot izlaiduma pārvaldnieku.

Piegādes komanda smagi strādā, lai automatizētu lielāko daļu procesu, kas saistÄ«ti ar izlaidumu izveidi, lai samazinātu MTTP (vidējais laiks lÄ«dz ražoÅ”anai, t.i., ražoÅ”anai pavadÄ«tais laiks), laika posms no sapludināŔanas pieprasÄ«juma apstrādes, ko veic izstrādātājs, lÄ«dz izvietoÅ”anai vietnē gitlab.com.

Ā«Piegādes komandas mērÄ·is ir pārliecināties, ka mēs kā uzņēmums varam ātrāk virzÄ«ties uz priekÅ”u vai vismaz likt piegādātājiem strādāt ātrāk, pareizi?, saka Marins.

Gan gitlab.com klienti, gan viņu instalāciju lietotāji gÅ«st labumu no piegādes komandas centieniem samazināt cikla laiku un paātrināt izvietoÅ”anu. Å ajā rakstā mēs izskaidrosim Å”o divu metožu lÄ«dzÄ«bas un atŔķirÄ«bas. jautājumiem, un mēs arÄ« aprakstÄ«sim, kā mÅ«su piegādes komanda sagatavo ielāpus lietotājiem, kuri strādā savās telpās, kā arÄ« to, kā mēs nodroÅ”inām, ka vietne gitlab.com ir atjaunināta, izmantojot automatizētu izvietoÅ”anu.

Ko dara izlaiduma vadītājs?

Komandas locekļi katru mēnesi nodot atbrÄ«voÅ”anas vadÄ«tāja lomu mÅ«su laidieni lietotājiem viņu telpās, tostarp ielāpi un droŔības laidieni, kas var rasties starp laidieniem. Viņi ir arÄ« atbildÄ«gi par uzņēmuma pāreju uz automatizētu, nepārtrauktu izvietoÅ”anu.

PaÅ”instalÄ“Å”anas laidienos un gitlab.com laidienos tiek izmantotas lÄ«dzÄ«gas darbplÅ«smas, taču tās darbojas dažādos laikos, skaidro Marins.

Pirmkārt un galvenokārt, laidienu pārvaldnieks neatkarÄ«gi no laidiena veida nodroÅ”ina, ka GitLab ir pieejams un droÅ”s no lietojumprogrammas palaiÅ”anas brīža vietnē gitlab.com, tostarp nodroÅ”ina, lai tās paÅ”as problēmas nenonāktu klientu infrastruktÅ«rā ar viņu paÅ”u jaudas.

Kad kļūda vai ievainojamÄ«ba ir atzÄ«mēta kā labota pakalpojumā GitLab, laidiena pārvaldniekam ir jānovērtē, vai tā tiks iekļauta lietotāju ielāpos vai droŔības atjauninājumos ar viņu instalācijām. Ja viņŔ nolemj, ka kļūda vai ievainojamÄ«ba ir pelnÄ«jusi atjauninājumu, sākas sagatavoÅ”anās darbs.

Izlaiduma pārvaldniekam ir jāizlemj, vai sagatavot labojumu vai kad to izvietot ā€” un tas ir ļoti atkarÄ«gs no situācijas konteksta.tikmēr maŔīnas nav tik labas konteksta pārvaldÄ«Å”anā kā cilvēki"saka Marins.

Tas viss ir par labojumiem

Kas ir ielāpi un kāpēc mums tie ir vajadzīgi?

Izlaiduma pārvaldnieks izlemj, vai izlaist labojumu, pamatojoties uz kļūdas nopietnību.

Kļūdas atŔķiras atkarÄ«bā no to smaguma pakāpes. Tātad S4 vai S3 kļūdas var bÅ«t stilistiskas, piemēram, pikseļu vai ikonu nobÄ«de. Tas ir ne mazāk svarÄ«gi, taču nav bÅ«tiskas ietekmes uz neviena darbplÅ«smu, kas nozÄ«mē, ka iespējamÄ«ba, ka Ŕādām S3 vai S4 kļūdām tiks izveidots labojums, ir maza, skaidro Marins.

Tomēr ievainojamÄ«ba S1 vai S2 nozÄ«mē, ka lietotājam nevajadzētu atjaunināt uz jaunāko versiju, vai arÄ« pastāv bÅ«tiska kļūda, kas ietekmē lietotāja darbplÅ«smu. Ja tie ir iekļauti izsekotājā, daudzi lietotāji ar tiem ir saskāruÅ”ies, tāpēc laidiena pārvaldnieks nekavējoties sāk sagatavot labojumu.

Kad ievainojamības S1 vai S2 ielāps ir gatavs, laidiena pārvaldnieks sāk izlaist ielāpu.

Piemēram, GitLab 12.10.1 ielāps tika izveidots pēc tam, kad tika konstatētas vairākas bloÄ·Ä“Å”anas problēmas un izstrādātāji novērsa pamatproblēmu, kas tās izraisÄ«ja. Izlaiduma menedžeris novērtēja pieŔķirto smaguma lÄ«meņu pareizÄ«bu, un pēc apstiprināŔanas tika uzsākts labojuma izlaiÅ”anas process, kas bija gatavs XNUMX stundu laikā pēc bloÄ·Ä“Å”anas problēmu atklāŔanas.

Kad uzkrājas daudz S4, S3 un S2, laidiena pārvaldnieks aplÅ«ko kontekstu, lai noteiktu labojuma izlaiÅ”anas steidzamÄ«bu, un, kad tiek sasniegts noteikts to skaits, tie visi tiek apvienoti un atbrÄ«voti. Pēcizlaides labojumi vai droŔības atjauninājumi ir apkopoti emuāra ziņās.

Kā laidienu pārvaldnieks izveido ielāpus

Lai Ä£enerētu ielāpus, mēs izmantojam GitLab CI un citas funkcijas, piemēram, mÅ«su ChatOps. Izlaidumu pārvaldnieks sāk labojuma izlaiÅ”anu, aktivizējot ChatOps komandu mÅ«su iekŔējā kanālā #releases iekÅ” Slack.

/chatops run release prepare 12.10.1

ChatOps darbojas Slack, lai aktivizētu dažādus notikumus, kurus pēc tam apstrādā un izpilda GitLab. Piemēram, piegādes komanda iestatīja ChatOps, lai automatizētu dažādas lietas, lai atbrīvotu ielāpus.

Kad izlaiÅ”anas pārvaldnieks palaiž ChatOps komandu programmā Slack, pārējais darbs GitLab notiek automātiski, izmantojot CICD. IzlaiÅ”anas procesa laikā pastāv divvirzienu saziņa starp ChatOps Slack un GitLab, jo izlaiÅ”anas pārvaldnieks aktivizē dažus no galvenajiem procesa posmiem.

Tālāk esoŔajā videoklipā parādīts GitLab ielāpa sagatavoŔanas tehniskais process.

Kā darbojas automātiskā izvietoÅ”ana vietnē gitlab.com

Vietnes gitlab.com atjaunināŔanai izmantotais process un rīki ir līdzīgi tiem, ko izmanto ielāpu izveidei. Vietnes gitlab.com atjaunināŔana prasa mazāk manuāla darba no laidiena pārvaldnieka viedokļa.

Tā vietā, lai palaistu izvietoÅ”anu, izmantojot ChatOps, mēs izmantojam CI funkcijas, piemēram, plānotie cauruļvadi, ar kuru laidienu pārvaldnieks var ieplānot noteiktas darbÄ«bas, kas jāveic vajadzÄ«gajā laikā. Manuālā procesa vietā ir konveijera, kas periodiski darbojas reizi stundā un kas lejupielādē jaunās izmaiņas, kas veiktas GitLab projektos, iepako tās un ieplāno izvietoÅ”anu, kā arÄ« automātiski veic testÄ“Å”anu, kvalitātes nodroÅ”ināŔanu un citas nepiecieÅ”amās darbÄ«bas.

"Tāpēc mums ir daudz izvietoÅ”anas gadÄ«jumu dažādās vidēs pirms gitlab.com, un pēc tam, kad Ŕīs vides ir labā stāvoklÄ« un testÄ“Å”ana uzrāda labus rezultātus, laidiena pārvaldnieks sāk gitlab.com izvietoÅ”anas darbÄ«bas," saka Marins.

CICD tehnoloÄ£ija gitlab.com atjauninājumu atbalstam automatizē visu procesu lÄ«dz vietai, kur laidiena pārvaldniekam ir manuāli jāuzsāk ražoÅ”anas vides izvietoÅ”ana vietnē gitlab.com.

Marins sīkāk par gitlab.com atjaunināŔanas procesu stāsta tālāk esoŔajā videoklipā.

Ko vēl dara piegādes komanda?

Galvenā atŔķirÄ«ba starp gitlab.com atjaunināŔanas procesiem un ielāpu izlaiÅ”anu klientiem ir tā, ka pēdējais process prasa vairāk laika un vairāk manuāla darba no laidiena pārvaldnieka.

ā€œMēs dažkārt aizkavējam ielāpu izdoÅ”anu klientiem ar viņu instalācijām, jo ā€‹ā€‹ir ziņots par problēmām, ar rÄ«kiem saistÄ«tas problēmas un tāpēc, ka, izlaižot vienu ielāpu, ir jāņem vērā daudzas nianses,ā€ saka Marins.

Viens no piegādes komandas Ä«stermiņa mērÄ·iem ir samazināt izlaiÅ”anas pārvaldnieka manuālā darba apjomu, lai paātrinātu izlaiÅ”anu. Komanda strādā, lai vienkārÅ”otu, racionalizētu un automatizētu izlaiÅ”anas procesu, kas palÄ«dzēs iegÅ«t labojumus zemas nopietnÄ«bas problēmām (S3 un S4, apm. tulkotājs). KoncentrÄ“Å”anās uz ātrumu ir galvenais veiktspējas rādÄ«tājs: ir jāsamazina MTTP ā€” laiks no sapludināŔanas pieprasÄ«juma saņemÅ”anas lÄ«dz rezultāta izvietoÅ”anai vietnē gitlab.com ā€” no paÅ”reizējām 50 stundām lÄ«dz 8 stundām.

Piegādes komanda strādā arÄ« pie vietnes gitlab.com migrÄ“Å”anas uz Kubernetes infrastruktÅ«ru.

Redaktora n.b.: Ja esi jau dzirdējis par Kubernetes tehnoloÄ£iju (un neÅ”aubos, ka esi), bet vēl neesi tai pieskāries ar rokām, iesaku piedalÄ«ties tieÅ”saistes intensÄ«vajos kursos Kubernetes bāze, kas notiks no 28. lÄ«dz 30. septembrim, un Kubernetes Mega, kas norisināsies no 14. lÄ«dz 16. oktobrim. Tas ļaus jums pārliecinoÅ”i orientēties un strādāt ar tehnoloÄ£iju.

Šīs ir divas pieejas, kurām ir viens un tas pats mērķis: ātra atjauninājumu piegāde gan vietnei gitlab.com, gan klientiem viņu telpās.

Kādas idejas vai ieteikumi mums?

Ikviens ir laipni aicināts piedalīties GitLab, un mēs priecājamies par mūsu lasītāju atsauksmēm. Ja jums ir kādas idejas mūsu piegādes komandai, nevilcinieties izveidot pieprasījumu ar paziņojumu team: Delivery.

Avots: www.habr.com

Pievieno komentāru