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.
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.