Klient on logistikateenus, mis töötleb kümneid tuhandeid tellimusi päevas, kogeb õhtuseid ja sooduskampaaniate tippe ning peab kinni pidama rangetest SLA-dest partnerpoodide ees. Taristu oli kasvanud isevoolu teel: eraldiseisvad VPS-id, „serveritesse“ jäänud seadistused ja käsitsi juurutamine wiki juhendi järgi. Iga väljalase tähendas öist käivitamist katkestusega, iga koormustipp aga tellimuste kaotamise riski. Meie poole pöördumise ajend oli uusaastaeelne kampaaniaintsident, mil platvorm oli neli tundi maas ja teenus maksis partneritele hüvitist.
Viia platvorm üle hallatud taristule äri peatamata:
taristu koodina, automatiseeritud tarne, konteinerid ja orkestreerimine, jälgitavus ning töökindel taastumine riketest. Asutaja sõnastas edumõõdu nii: „juurutus tööajal, seisakuta ja ilma SSH-juurdepääsuga inimeseta“.
Liikusime tõestatud järjestuses: esmalt konteinerid ja korratavad keskkonnad, seejärel tarne automatiseerimine ning alles siis orkestreerimine koos automaatse skaleerimisega.
- Auditeerisime taristu: teenuste ja sõltuvuste kaart, tipukoormuse profiili mõõtmine ning nende käsitsi toimingute loend, mis põhjustasid kõige sagedamini avariisid.
- Panime teenused konteineritesse: ühtlustasime ehituse, viisime seadistuse koodist keskkonnamuutujatesse ning lõime identsed dev-, stage- ja prod-keskkonnad.
- Kirjeldasime taristu Terraformis koodina: keskkonnad juurutatakse hoidlast ning käsitsi muudatused pilveteenuse pakkuja konsoolis on keelatud.
- Koostasime GitLab CI tarneahela: testid ja kujutiste ehitus käivituvad automaatselt; stage’i juurutus toimub kohe, prod’i juurutus nupuvajutusega pärast ülevaatust ning tagasipööramine ühe toiminguga.
- Viisime platvormi automaatse skaleerimisega Kubernetesesse: õhtuste ja sooduskampaaniate tippude ajal lisab platvorm täiendavaid eksemplare, mitte ei nõua erakorralist käsitööd.
- Seadsime sisse seire ja hoiatused „kuldsete signaalide“ — viiteaeg, vead, liiklus ja koormatus — alusel, koos valvegraafiku ja eskalatsiooniga.
- Seadsime sisse varukoopiad ja katastroofist taastumise: taasteprotseduurid ning lavakeskkonnas tehtud rikkeproov, kus mõõtsime tegelikku MTTR-i.
Projekti kõige väärtuslikum tulemus polnud tehnoloogia, vaid vastutuse ümberpaigutamine: taristu ei sõltunud enam „SSH-juurdepääsuga inimesest“. Iga juurutus on korratav, iga keskkonna saab koodist taastada ning juhtpaneelid näitavad riket enne, kui esimene klient kirjutab. Nii muutub seisak katastroofist tavaliseks intsidendiks selge tegevusjuhise ja mõõdetava taastumisajaga.
Projekti majanduslik mõju koosnes kolmest osast: otsene 32% taristukulu kokkuhoid tänu automaatsele skaleerimisele ja pidevalt „soojana“ hoitud tippvõimsuse hülgamisele; meeskonna töötunnid, mis varem kulusid öistele väljalasetele; ning eelkõige tulu säilitamine tippudel, mis nüüd mööduvad intsidentideta. Suur poekettidest klient pikendas lepingut just pärast esimest uuel taristul toimunud kampaaniat.
| Näitajad | Tulemus |
|---|---|
| Väljalaske juurutamine | 3–4 tundi käsitsi → 15 minutit automaatselt |
| Väljalasete sagedus | 2–3 kuus → Peaaegu iga päev |
| Platvormi töökindlus | 97,8% → 99,95% |
| Koormustipud | Seisakuoht → Automaatne skaleerimine ilma inimese sekkumiseta |
Näitajad on üle kantud juhtumi algmaterjalidest. Periood on märgitud seal, kus see on allikas fikseeritud.
- väljalaske juurutus (varem 3–4 tundi käsitsi)
- 15 min
- platvormi töökindlus (varem 97,8%)
- 99,95%
- taastumine pärast riket (varem 2–4 tundi)
- 20–30 min
- taristukulu
- −32%
Kuvatud on vahemike ülemised piirid (4 tundi, 30 minutit). Seisak = 100% − töökindlus.
- 01Commit
- 02Testid
- 03Kujutise ehitus
- 04Stagekohe
- 05Prodnupuvajutusega pärast ülevaatust
Taristu järgmise arendustsükli võimalused:
- FinOpsi praktika — kuluhälvete hoiatused ja läbipaistev maksumus meeskondade kaupa.
- GitOpsi lähenemine — tootmiskeskkonna olek kirjeldatakse hoidlas ning muudatused tehakse ainult pull request'i kaudu.
- Mitme regiooni lahendus — kriitiliste teenuste koopia, et tulla toime teenusepakkuja rikkega.
Varem tähendas väljalase ööd, kohvi ja palvet. Nüüd tähendab see nuppu ja viitteist minutit. Esimest intsidendivaba kampaaniat tähistasime terve ettevõttega.
— Logistikateenuse tehnoloogiajuht