Aprīļa beigÄs, kamÄr White Walkers aplenca Vinterfelu, ar mums notika kas interesantÄks, mÄs veicÄm neparastu izskrÄjienu. PrincipÄ mÄs nepÄrtraukti ievieÅ”am jaunas funkcijas ražoÅ”anÄ (tÄpat kÄ visi citi). Bet Å”is bija savÄdÄks. TÄ mÄrogs bija tÄds, ka visas iespÄjamÄs kļūdas, kuras mÄs varÄtu pieļaut, ietekmÄtu visus mÅ«su pakalpojumus un lietotÄjus. RezultÄtÄ visu izskrÄjÄm pÄc plÄna, plÄnotajÄ un izsludinÄtajÄ dÄ«kstÄves periodÄ, bez sekÄm pÄrdoÅ”anai. Raksts ir par to, kÄ mÄs to panÄcÄm un kÄ ikviens to var atkÄrtot mÄjÄs.
Es tagad neaprakstÄ«Å”u mÅ«su pieÅemtos arhitektoniskos un tehniskos lÄmumus un nestÄstÄ«Å”u, kÄ tas viss darbojas. TÄs drÄ«zÄk ir piezÄ«mes malÄs par to, kÄ notika viens no grÅ«tÄkajiem izlaiÅ”anas gadÄ«jumiem, ko novÄroju un kurÄ es tieÅ”i piedalÄ«jos. Es nepretendÄju uz pilnÄ«gumu vai tehniskÄm detaļÄm; iespÄjams, tie parÄdÄ«sies citÄ rakstÄ.
Fons + kÄda veida funkcionalitÄte ir Ŕī?
MÄs veidojam mÄkoÅa platformu
Parasti Å”Ädas lietas sÄk bÅ«vÄt jebkura projekta paÅ”Ä sÄkumÄ. Bet vÄsturiski lietas MCS ir bijuÅ”as nedaudz atŔķirÄ«gas. MCS tika uzbÅ«vÄts divÄs daļÄs:
- Openstack ar savu Keystone autorizÄcijas moduli,
- Hotbox (S3 krÄtuve), pamatojoties uz Mail.ru Cloud projektu,
ap kuru pÄc tam parÄdÄ«jÄs jauni pakalpojumi.
BÅ«tÄ«bÄ tie bija divi dažÄdi atļauju veidi. TurklÄt mÄs izmantojÄm dažas atseviŔķas Mail.ru izstrÄdes, piemÄram, vispÄrÄjo Mail.ru paroļu krÄtuvi, kÄ arÄ« paÅ”rakstÄ«tu atvÄrto savienotÄju, pateicoties kuriem panelÄ« Horizon tika nodroÅ”inÄta SSO (pilnÄ«ga autorizÄcija). virtuÄlo maŔīnu (vietÄjÄ OpenStack lietotÄja saskarne).
IAM izveide mums nozÄ«mÄja to visu savienot vienÄ sistÄmÄ, kas ir pilnÄ«bÄ mÅ«su paÅ”u. TajÄ paÅ”Ä laikÄ mÄs nezaudÄsim nevienu funkcionalitÄti ceļÄ, bet radÄ«sim pamatu nÄkotnei, kas ļaus mums to pÄrredzami pilnveidot bez pÄrveidoÅ”anas un mÄrogot to funkcionalitÄtes ziÅÄ. ArÄ« sÄkumÄ lietotÄjiem bija paraugs piekļuvei pakalpojumiem (centrÄlais RBAC, uz lomu balstÄ«ta piekļuves kontrole) un vÄl daži sÄ«kumi.
Uzdevums izrÄdÄ«jÄs nenozÄ«mÄ«gs: python un perl, vairÄki aizmugure, neatkarÄ«gi rakstÄ«ti pakalpojumi, vairÄkas izstrÄdes komandas un administratori. Un pats galvenais, kaujas ražoÅ”anas sistÄmÄ ir tÅ«kstoÅ”iem dzÄ«vu lietotÄju. Tas viss bija jÄuzraksta un, galvenais, jÄizrullÄ bez upuriem.
Ko mÄs izlaidÄ«sim?
Aptuveni 4 mÄneÅ”u laikÄ mÄs sagatavojÄm sekojoÅ”o:
- MÄs izveidojÄm vairÄkus jaunus dÄmonus, kas apkopoja funkcijas, kas iepriekÅ” darbojÄs dažÄdÄs infrastruktÅ«ras daļÄs. PÄrÄjiem pakalpojumiem tika noteikts jauns aizmugure Å”o dÄmonu formÄ.
- MÄs izveidojÄm savu centrÄlo paroļu un atslÄgu krÄtuvi, kas ir pieejama visiem mÅ«su pakalpojumiem un kuru var brÄ«vi mainÄ«t pÄc vajadzÄ«bas.
- MÄs no jauna uzrakstÄ«jÄm 4 jaunas Keystone aizmugursistÄmas (lietotÄji, projekti, lomas, lomu pieŔķirÅ”ana), kas faktiski aizstÄja tÄs datu bÄzi un tagad darbojas kÄ viena mÅ«su lietotÄju paroļu krÄtuve.
- MÄs mÄcÄ«jÄm visiem mÅ«su Openstack pakalpojumiem doties uz treÅ”Äs puses politikas pakalpojumu, lai iegÅ«tu savas politikas, nevis lasÄ«tu Ŕīs politikas lokÄli no katra servera (jÄ, tas ir veids, kÄ Openstack darbojas pÄc noklusÄjuma!)
Å Ädam lielam pÄrstrÄdei ir nepiecieÅ”amas lielas, sarežģītas un, pats galvenais, sinhronas izmaiÅas vairÄkÄs sistÄmÄs, kuras rakstÄ«juÅ”as dažÄdas izstrÄdes komandas. PÄc salikÅ”anas visai sistÄmai jÄdarbojas.
KÄ Å”Ädas izmaiÅas izrullÄt un nesaskrÅ«vÄt? Vispirms nolÄmÄm nedaudz ieskatÄ«ties nÄkotnÄ.
IzplatÄ«Å”anas stratÄÄ£ija
- Produktu bÅ«tu iespÄjams izrullÄt vairÄkos posmos, taÄu tas palielinÄtu izstrÄdes laiku trÄ«s reizes. TurklÄt kÄdu laiku mums bÅ«tu pilnÄ«ga datu desinhronizÄcija datu bÄzÄs. Jums bÅ«s jÄraksta savi sinhronizÄcijas rÄ«ki un ilgu laiku jÄdzÄ«vo ar vairÄkiem datu krÄtuvÄm. Un tas rada visdažÄdÄkos riskus.
- Viss, ko varÄja sagatavot lietotÄjam pÄrskatÄmi, tika darÄ«ts iepriekÅ”. PagÄja 2 mÄneÅ”i.
- MÄs pieļÄvÄm sev dÄ«kstÄves vairÄkas stundas - tikai lietotÄju darbÄ«bÄm, lai izveidotu un mainÄ«tu resursus.
- Visu jau izveidoto resursu darbÄ«bai dÄ«kstÄves bija nepieÅemamas. MÄs plÄnojÄm, ka izlaiÅ”anas laikÄ resursiem jÄdarbojas bez dÄ«kstÄves un neietekmÄjot klientus.
- Lai mazinÄtu ietekmi uz mÅ«su klientiem, ja kaut kas noiet greizi, mÄs nolÄmÄm sÄkt darbu svÄtdienas vakarÄ. MazÄk klientu pÄrvalda virtuÄlÄs maŔīnas naktÄ«.
- MÄs brÄ«dinÄjÄm visus mÅ«su klientus, ka izlaiÅ”anai izvÄlÄtajÄ periodÄ pakalpojumu pÄrvaldÄ«ba nebÅ«s pieejama.
AtkÄpe: kas ir izlaiÅ”ana?
<piesardzība, filozofija>
Katrs IT speciÄlists var viegli atbildÄt, kas ir izvÄrÅ”ana. JÅ«s instalÄjat CI/CD, un viss tiek automÄtiski piegÄdÄts veikalÄ. š
Protams, tÄ ir taisnÄ«ba. TaÄu grÅ«tÄ«bas rada tas, ka, izmantojot mÅ«sdienÄ«gus koda piegÄdes automatizÄcijas rÄ«kus, tiek zaudÄta izpratne par paÅ”u izlaiÅ”anu. KÄ jÅ«s aizmirstat par riteÅa izgudroÅ”anas episkumu, skatoties uz mÅ«sdienu transportu. Viss ir tik automatizÄts, ka izlaiÅ”ana bieži tiek veikta, neizprotot visu ainu.
Un visa bilde ir tÄda. IzlaiÅ”ana sastÄv no Äetriem galvenajiem aspektiem:
- Koda piegÄde, ieskaitot datu modifikÄciju. PiemÄram, viÅu migrÄcijas.
- Koda atcelÅ”ana ir iespÄja atgriezties, ja kaut kas noiet greizi. PiemÄram, izveidojot dublÄjumus.
- Katras izlaiÅ”anas/atcelÅ”anas darbÄ«bas laiks. Jums ir jÄsaprot jebkuras pirmo divu punktu darbÄ«bas laiks.
- IetekmÄtÄ funkcionalitÄte. JÄizvÄrtÄ gan sagaidÄmÄs pozitÄ«vÄs, gan iespÄjamÄs negatÄ«vÄs sekas.
Visi Å”ie aspekti ir jÄÅem vÄrÄ, lai tas bÅ«tu veiksmÄ«gs. Parasti tiek novÄrtÄts tikai pirmais vai labÄkajÄ gadÄ«jumÄ otrais punkts, un pÄc tam izlaiÅ”ana tiek uzskatÄ«ta par veiksmÄ«gu. Bet treÅ”ais un ceturtais ir vÄl svarÄ«gÄki. Kuram lietotÄjam tas patiktu, ja izlaiÅ”ana aizÅemtu 3 stundas, nevis minÅ«ti? Vai arÄ« izlaiÅ”anas laikÄ tiek ietekmÄts kaut kas nevajadzÄ«gs? Vai arÄ« viena pakalpojuma dÄ«kstÄve radÄ«s neparedzamas sekas?
Akts 1..n, sagatavoŔana atbrīvoŔanai
SÄkumÄ izdomÄju Ä«si aprakstÄ«t mÅ«su tikÅ”anÄs: visa komanda, tÄs daļas, diskusiju kaudzes kafijas punktos, strÄ«di, testi, prÄta vÄtras. Tad es domÄju, ka tas bÅ«tu lieki. Tas vienmÄr sastÄv no Äetru mÄneÅ”u izstrÄdes, it Ä«paÅ”i, ja jÅ«s nerakstÄt kaut ko tÄdu, ko var piegÄdÄt pastÄvÄ«gi, bet gan vienu lielu funkciju dzÄ«vai sistÄmai. Kas ietekmÄ visus pakalpojumus, taÄu lietotÄjiem nevajadzÄtu mainÄ«ties nekas, izÅemot āvienu pogu tÄ«mekļa saskarnÄā.
MÅ«su izpratne par to, kÄ izvÄrst, mainÄ«jÄs pÄc katras jaunas tikÅ”anÄs, turklÄt diezgan bÅ«tiski. PiemÄram, mÄs plÄnojÄm atjauninÄt visu norÄÄ·inu datu bÄzi. Bet mÄs aprÄÄ·inÄjÄm laiku un sapratÄm, ka to nav iespÄjams izdarÄ«t saprÄtÄ«gÄ izlaiÅ”anas laikÄ. Mums bija nepiecieÅ”ama gandrÄ«z papildu nedÄļa, lai sadalÄ«tu un arhivÄtu norÄÄ·inu datu bÄzi. Un, kad paredzÄtais izlaiÅ”anas Ätrums joprojÄm nebija apmierinoÅ”s, mÄs pasÅ«tÄ«jÄm papildu, jaudÄ«gÄku aparatÅ«ru, kur tika vilkta visa bÄze. Nav tÄ, ka mÄs nevÄlÄjÄmies to darÄ«t ÄtrÄk, taÄu paÅ”reizÄjÄ nepiecieÅ”amÄ«ba ieviest mums nelika mums nekÄdu iespÄju.
Kad kÄdam no mums radÄs Å”aubas, ka izlaiÅ”ana varÄtu ietekmÄt mÅ«su virtuÄlo maŔīnu pieejamÄ«bu, mÄs pavadÄ«jÄm nedÄļu, veicot testus, eksperimentus, kodu analÄ«zi un saÅÄmÄm skaidru izpratni, ka mÅ«su ražoÅ”anÄ tas nenotiks, un pat visÅ”aubÄ«gÄkie cilvÄki piekrita. ar Å”o.
Pa to laiku tehniskÄ atbalsta puiÅ”i veica savus neatkarÄ«gus eksperimentus, lai rakstÄ«tu klientiem instrukcijas par savienojuma metodÄm, kurÄm pÄc izlaiÅ”anas bija jÄmainÄs. ViÅi strÄdÄja pie lietotÄja UX, sagatavoja instrukcijas un sniedza personÄ«gas konsultÄcijas.
MÄs automatizÄjÄm visas iespÄjamÄs izlaiÅ”anas darbÄ«bas. Katra darbÄ«ba tika skripta, pat visvienkÄrÅ”ÄkÄ, un pastÄvÄ«gi tika izpildÄ«ti testi. ViÅi strÄ«dÄjÄs par labÄko veidu, kÄ izslÄgt pakalpojumu - izlaist dÄmonu vai bloÄ·Ät piekļuvi pakalpojumam ar ugunsmÅ«ri. MÄs izveidojÄm komandu kontrolsarakstu katram izlaiÅ”anas posmam un pastÄvÄ«gi to atjauninÄjÄm. MÄs izveidojÄm un pastÄvÄ«gi atjauninÄjÄm Ganta diagrammu visiem izlaiÅ”anas darbiem ar laiku.
LÄ«dz ar toā¦
PÄdÄjais cÄliens pirms izlaiÅ”anas
...ir laiks izrullÄt.
KÄ saka, mÄkslas darbu nevar pabeigt, tikai pabeigt pie tÄ strÄdÄt. JÄpieliek gribas pÅ«les, saprotot, ka visu neatradÄ«si, bet ticot, ka esi izdarÄ«jis visus saprÄtÄ«gos pieÅÄmumus, paredzÄjis visus iespÄjamos gadÄ«jumus, novÄrsis visas kritiskÄs kļūdas un visi dalÄ«bnieki izdarÄ«ja visu, ko varÄja. Jo vairÄk koda izlaižat, jo grÅ«tÄk ir sevi par to pÄrliecinÄt (turklÄt visi saprot, ka visu paredzÄt nav iespÄjams).
MÄs nolÄmÄm, ka esam gatavi izlaiÅ”anai, kad bijÄm pÄrliecinÄti, ka esam darÄ«juÅ”i visu iespÄjamo, lai segtu visus riskus mÅ«su lietotÄjiem, kas saistÄ«ti ar negaidÄ«tÄm ietekmÄm un dÄ«kstÄvÄm. Tas nozÄ«mÄ, ka viss var noiet greizi, izÅemot:
- IetekmÄ (mums svÄto, visdÄrgÄko) lietotÄju infrastruktÅ«ru,
- FunkcionalitÄte: mÅ«su pakalpojuma izmantoÅ”anai pÄc izlaiÅ”anas jÄbÅ«t tÄdai paÅ”ai kÄ pirms tÄs.
IzrullÄ
Divi ruļļi, 8 netraucÄ
MÄs Åemam dÄ«kstÄvi visiem lietotÄju pieprasÄ«jumiem 7 stundas. PaÅ”laik mums ir gan izlaiÅ”anas plÄns, gan atcelÅ”anas plÄns.
- Pati izlaiÅ”ana aizÅem apmÄram 3 stundas.
- 2 stundas testÄÅ”anai.
- 2 stundas - rezerve iespÄjamai izmaiÅu atcelÅ”anai.
Katrai darbÄ«bai ir sastÄdÄ«ta Ganta diagramma, cik ilgi tas notiek, kas notiek secÄ«gi, kas tiek darÄ«ts paralÄli.
Izlaistas Ganta diagrammas daļa, viena no sÄkotnÄjÄm versijÄm (bez paralÄlas izpildes). VisvÄrtÄ«gÄkais sinhronizÄcijas rÄ«ks
Visiem dalÄ«bniekiem ir noteikta viÅu loma izvÄrÅ”anÄ, kÄdus uzdevumus viÅi veic un par ko viÅi ir atbildÄ«gi. MÄs cenÅ”amies panÄkt, lai katrs posms tiktu automatizÄts, izvÄrsts, atgriezts, apkopot atsauksmes un izvÄrst to vÄlreiz.
Notikumu hronika
TÄtad svÄtdien, 15.aprÄ«lÄ«, pulksten 29 ieradÄs darbÄ 10 cilvÄki. Papildus galvenajiem dalÄ«bniekiem daži ieradÄs vienkÄrÅ”i atbalstÄ«t komandu, par ko viÅiem Ä«paÅ”s paldies.
Ir arÄ« vÄrts pieminÄt, ka mÅ«su galvenais testÄtÄjs ir atvaļinÄjumÄ. Bez testÄÅ”anas to nav iespÄjams ieviest, mÄs pÄtÄm iespÄjas. KolÄÄ£e piekrÄ«t mÅ«s pÄrbaudÄ«t no atvaļinÄjuma, par ko viÅa saÅem milzÄ«gu pateicÄ«bu no visas komandas.
00:00. Stop
PÄrtraucam lietotÄju pieprasÄ«jumus, izkarinÄm zÄ«mi ar uzrakstu tehniskais darbs. Monitorings kliedz, bet viss normÄli. MÄs pÄrbaudÄm, vai nav nokritis nekas cits, kÄ tikai tam, kam vajadzÄja krist. Un mÄs sÄkam darbu pie migrÄcijas.
Ikvienam ir izdrukÄts izvÄrÅ”anas plÄns punkts punktÄ, visi zina, kas ko un kurÄ brÄ«dÄ« dara. PÄc katras darbÄ«bas mÄs pÄrbaudÄm laiku, lai pÄrliecinÄtos, ka mÄs tos nepÄrsniegsim, un viss notiek saskaÅÄ ar plÄnu. Tie, kuri nepiedalÄs tieÅ”i paÅ”reizÄjÄ posmÄ, gatavojas, laižot klajÄ tieÅ”saistes rotaļlietu (Xonotic, 3. tipa quacks), lai netraucÄtu saviem kolÄÄ£iem. š
02:00. IzrullÄts
PatÄ«kams pÄrsteigums ā datubÄzu un migrÄcijas skriptu optimizÄcijas dÄļ mÄs pabeidzam izlaiÅ”anu stundu agrÄk. VispÄrÄjais kliedziens: "izrullÄts!" Visas jaunÄs funkcijas ir ražoÅ”anÄ, taÄu lÄ«dz Å”im tÄs redzam tikai mÄs saskarnÄ. Visi pÄriet uz testÄÅ”anas režīmu, saŔķiro tos grupÄs un sÄk redzÄt, kas beigÄs notika.
Ne pÄrÄk labi sanÄca, to saprotam pÄc 10 minÅ«tÄm, kad komandas biedru projektos nekas nav pieslÄgts vai nestrÄdÄ. ÄtrÄ sinhronizÄcija, mÄs izrunÄjam savas problÄmas, nosakÄm prioritÄtes, sadalÄmies komandÄs un veicam atkļūdoÅ”anu.
02:30. Divas lielas problÄmas pret ÄetrÄm acÄ«m
MÄs atklÄjam divas lielas problÄmas. MÄs sapratÄm, ka klienti neredzÄs dažus saistÄ«tos pakalpojumus, un radÄ«sies problÄmas ar partneru kontiem. Abas ir saistÄ«tas ar nepilnÄ«giem migrÄcijas skriptiem dažiem malas gadÄ«jumiem. Mums tas tagad ir jÄizlabo.
MÄs rakstÄm vaicÄjumus, kas to ieraksta ar vismaz 4 acÄ«m. MÄs tos pÄrbaudÄm pirmsražoÅ”anas laikÄ, lai pÄrliecinÄtos, ka tie darbojas un neko nesalauž. Vari ripot tÄlÄk. TajÄ paÅ”Ä laikÄ mÄs veicam regulÄro integrÄcijas testÄÅ”anu, kas atklÄj vÄl dažas problÄmas. TÄs visas ir mazas, bet arÄ« tÄs ir jÄremontÄ.
03:00. -2 problÄmas +2 problÄmas
Ir novÄrstas divas iepriekÅ”ÄjÄs lielÄs problÄmas, kÄ arÄ« gandrÄ«z visas mazÄkÄs problÄmas. Visi, kas nav aizÅemti ar labojumiem, aktÄ«vi strÄdÄ savos kontos un ziÅo par atrasto. MÄs nosakÄm prioritÄtes, sadalÄm tos starp komandÄm un atstÄjam nekritiskÄs lietas uz rÄ«ta pusi.
MÄs veicam testus vÄlreiz, viÅi atklÄj divas jaunas lielas problÄmas. Ne visas pakalpojumu politikas tika saÅemtas pareizi, tÄpÄc daži lietotÄju pieprasÄ«jumi neiztur autorizÄciju. TurklÄt jauna problÄma ar partneru kontiem. Steidzam skatÄ«ties.
03:20. ÄrkÄrtas sinhronizÄcija
Izlabota viena jauna problÄma. OtrajÄ gadÄ«jumÄ mÄs organizÄjam ÄrkÄrtas sinhronizÄciju. MÄs saprotam, kas notiek: iepriekÅ”Äjais labojums novÄrsa vienu problÄmu, bet radÄ«ja citu. PaÅemam pÄrtraukumu, lai saprastu, kÄ to izdarÄ«t pareizi un bez sekÄm.
03:30. SeŔas acis
MÄs saprotam, kÄdam jÄbÅ«t bÄzes galÄ«gajam stÄvoklim, lai visiem partneriem viss izdotos labi. Uzrakstam pieprasÄ«jumu ar 6 acÄ«m, izrullÄjam pirmsražoÅ”anÄ, testÄjam, izrullÄjam ražoÅ”anai.
04:00. Viss darbojas
Visas pÄrbaudes ir izturÄtas, nekÄdas kritiskas problÄmas nav redzamas. Ik pa laikam kÄdam komandÄ kaut kas nelÄ«dz, mÄs operatÄ«vi reaÄ£Äjam. VisbiežÄk trauksme ir nepatiesa. Bet dažreiz kaut kas nesanÄk vai atseviŔķa lapa nedarbojas. SÄžam, labojam, labojam, labojam. AtseviŔķa komanda laiž klajÄ pÄdÄjo lielo funkciju ā norÄÄ·inus.
04:30. NeatgrieÅ”anÄs punkts
Tuvojas neatgrieÅ”anÄs punkts, tas ir, laiks, kad, ja sÄksim ripinÄt atpakaļ, mÄs nesasniegsim mums doto dÄ«kstÄvi. ProblÄmas ir ar rÄÄ·iniem, kas visu zina un fiksÄ, bet spÄ«tÄ«gi atsakÄs norakstÄ«t naudu no klientiem. AtseviŔķÄs lapÄs, darbÄ«bÄs un statusos ir vairÄkas kļūdas. GalvenÄ funkcionalitÄte darbojas, visas pÄrbaudes veiksmÄ«gi izietas. MÄs nolemjam, ka izlaiÅ”ana ir notikusi, mÄs neatgriezÄ«simies.
06:00. AtvÄrts visiem lietotÄja interfeisa lietotÄjiem
Izlabotas kļūdas. Daži, kas lietotÄjus neinteresÄ, tiek atstÄti vÄlÄkam laikam. MÄs atveram saskarni ikvienam. MÄs turpinÄm darbu pie rÄÄ·inu izrakstÄ«Å”anas, gaidot lietotÄju atsauksmes un uzraudzÄ«bas rezultÄtus.
07:00. ProblÄmas ar API ielÄdi
Kļūst skaidrs, ka mÄs nedaudz nepareizi plÄnojÄm mÅ«su API slodzi un pÄrbaudÄ«jÄm Å”o slodzi, kas nevarÄja identificÄt problÄmu. RezultÄtÄ ā5% pieprasÄ«jumu neizdodas. MobilizÄsimies un meklÄsim iemeslu.
NorÄÄ·ini ir spÄ«tÄ«gi un arÄ« nevÄlas darboties. Nolemjam to atlikt uz vÄlÄku laiku, lai izmaiÅas veiktu mierÄ«gi. Tas ir, tajÄ tiek uzkrÄti visi resursi, bet norakstÄ«Å”ana no klientiem netiek cauri. Protams, tÄ ir problÄma, taÄu salÄ«dzinÄjumÄ ar vispÄrÄjo izlaiÅ”anu tÄ Å”Ä·iet mazsvarÄ«ga.
08:00. Labojiet API
IzritinÄjÄm slodzes labojumu, kļūmes pazuda. SÄkam iet mÄjÄs.
10:00. Visi
Viss ir fiksÄts. UzraudzÄ«bÄ ir kluss, un pie klientu komanda pamazÄm iet gulÄt. RÄÄ·ins paliek, mÄs to atjaunosim rÄ«t.
PÄc tam dienas laikÄ tika veikta izlaiÅ”ana, kas dažiem mÅ«su klientiem laboja žurnÄlus, paziÅojumus, atgrieÅ”anas kodus un pielÄgojumus.
TÄtad izlaiÅ”ana bija veiksmÄ«ga! VarÄtu, protams, bÅ«t labÄk, taÄu izdarÄ«jÄm secinÄjumus par to, ar ko mums nepietika, lai sasniegtu pilnÄ«bu.
KopÄ
2 mÄneÅ”u laikÄ, aktÄ«vi gatavojoties izlaiÅ”anai, tika izpildÄ«ti 43 uzdevumi, kas ilga no pÄris stundÄm lÄ«dz vairÄkÄm dienÄm.
IzlaiÅ”anas laikÄ:
- jauni un mainÄ«ti dÄmoni - 5 gab., nomainot 2 monolÄ«tus;
- izmaiÅas datu bÄzÄs - ir ietekmÄtas visas 6 mÅ«su datu bÄzes ar lietotÄju datiem, veiktas lejupielÄdes no trim vecÄm datu bÄzÄm uz vienu jaunu;
- pilnÄ«bÄ pÄrveidota priekÅ”puse;
- lejupielÄdÄtÄ koda apjoms - 33 tÅ«kstoÅ”i rindu jauna koda, ā 3 tÅ«kstoÅ”i koda rindu testos, ā 5 tÅ«kstoÅ”i rindu migrÄcijas kods;
- visi dati ir neskarti, nav bojÄta neviena klienta virtuÄlÄ maŔīna. š
Laba prakse sekmīgai izlaiŔanai
ViÅi mÅ«s vadÄ«ja Å”ajÄ sarežģītajÄ situÄcijÄ. Bet, vispÄrÄ«gi runÄjot, ir lietderÄ«gi tos ievÄrot jebkuras izlaiÅ”anas laikÄ. Bet jo sarežģītÄka ir ievieÅ”ana, jo lielÄku lomu tÄs spÄlÄ.
- PirmÄ lieta, kas jums jÄdara, ir saprast, kÄ izlaiÅ”ana var vai ietekmÄs lietotÄjus. Vai bÅ«s dÄ«kstÄves? Ja jÄ, kÄds ir dÄ«kstÄves laiks? KÄ tas ietekmÄs lietotÄjus? KÄdi ir iespÄjamie labÄkie un sliktÄkie scenÄriji? Un segt riskus.
- PlÄnojiet visu. KatrÄ posmÄ jums ir jÄsaprot visi izlaiÅ”anas aspekti:
- koda piegÄde;
- koda atcelŔana;
- katras operÄcijas laiks;
- ietekmÄtÄ funkcionalitÄte.
- IzmÄÄ£iniet scenÄrijus, lÄ«dz kļūst acÄ«mredzami visi izlaiÅ”anas posmi, kÄ arÄ« riski katrÄ no tiem. Ja jums ir kÄdas Å”aubas, varat ieturÄt pauzi un apskatÄ«t apÅ”aubÄmo posmu atseviŔķi.
- Katru posmu var un vajadzÄtu uzlabot, ja tas palÄ«dz mÅ«su lietotÄjiem. PiemÄram, tas samazinÄs dÄ«kstÄves laiku vai novÄrsÄ«s dažus riskus.
- AtcelÅ”anas pÄrbaude ir daudz svarÄ«gÄka nekÄ koda piegÄdes pÄrbaude. Ir jÄpÄrbauda, āāvai atcelÅ”anas rezultÄtÄ sistÄma atgriezÄ«sies sÄkotnÄjÄ stÄvoklÄ«, un apstipriniet to ar testiem.
- Viss, ko var automatizÄt, ir jÄautomatizÄ. Viss, ko nevar automatizÄt, iepriekÅ” jÄraksta uz krÄpÅ”anÄs lapas.
- Ierakstiet veiksmes kritÄriju. KÄdai funkcionalitÄtei jÄbÅ«t pieejamai un kurÄ laikÄ? Ja tas nenotiek, palaidiet atcelÅ”anas plÄnu.
- Un pats galvenais ā cilvÄki. Ikvienam ir jÄapzinÄs, ko viÅi dara, kÄpÄc un kas ir atkarÄ«gs no viÅa darbÄ«bÄm ievieÅ”anas procesÄ.
VienÄ teikumÄ sakot, ar labu plÄnoÅ”anu un izstrÄdi jÅ«s varat ieviest visu, ko vÄlaties, bez sekÄm uz pÄrdoÅ”anu. Pat kaut kas, kas ietekmÄs visus jÅ«su pakalpojumus ražoÅ”anÄ.
Avots: www.habr.com