Na základe diskusie v chate
V poslednej dobe sa skutočne rozpútavajú bitky o definíciu pojmov DevOps a SRE.
Napriek tomu, že diskusie na toto téma sú už niekedy vyčerpávajúce, vrátane mňa, rozhodol som sa predložiť svoju perspektívu komunite Hubra. Tí, ktorých to zaujíma, sú vítaní pod kat. A nech všetko začne odznova!
Pozadie
V dávnych časoch žila oddelená tím vývojárov softvéru a administrátorov serverov. Prví úspešne písali kód, druhí, používajúc rôzne láskyplné slová voči prvým, nastavovali servery, občas chodili za vývojármi a dostávali na oplátku vyčerpávajúce „u mňa to beží bez problémov“. Biznis čakal na softvér, všetko stálo, občas sa pokazilo, všetci nervózne čakali. Najmä ten, kto za celý tento chaos platil. Slávna láskyplná éra. No, iste viete, odkiaľ sa berie DevOps.
Zrodenie DevOps praktík
Potom prišli vážni páni a povedali — toto nie je priemysel, takto sa pracovať nedá. A priniesli modely životného cyklu. Napríklad V-model.

Čo teda vidíme? Biznis prichádza s konceptom, architekti navrhujú riešenia, vývojári píšu kód, a ďalej — zlyhanie. Niektorí akosi testujú produkt, niektorí ho nejako dodávajú koncovému používateľovi a kdesi na výstupe tohto zázračného modelu sedí osamelý biznis objednávateľ a čaká na sľúbené načasovanie. Prišli k záveru — potrebujú metódy, ktoré umožnia tento proces zefektívniť. A rozhodli sa vytvoriť praktiky, ktoré by ich realizovali.
Lyrická odbočka o tom, čo je praktika
Pod praktikou rozumiem spojenie technológie a disciplíny. Príklad — praktika opisovania infraštruktúry kódom v terraform. Disciplína je spôsob, akým opisovať infraštruktúru kódom, tá je vo vedomí vývojára, a technológia — to je vlastne terraform.
A rozhodli sa ich nazvať DevOps praktikami — myslím, mali na mysli prechod od vývoja k prevádzke. Vymysleli rôzne zložité veci — praktiky CI/CD, praktiky, ktoré sa zakladajú na princípe IaC, tisíce z nich. A začalo sa, vývojári píšu kód, DevOps inžinieri transformujú popis systému vo forme kódu na fungujúce systémy (áno, kód je bohužiaľ len popis, ale nie realizácia systému), dodávka beží, a tak ďalej. Včerajší administrátori, ktorí ovládli nové praktiky, hrdí sa preškvarili na DevOps inžinierov, a všetko sa rozbehlo. A bol večer, a bolo ráno… ospravedlňujem sa, nie odtiaľ.
Všetko opäť nie je sláva bohu
Len čo sa všetko ustálilo, a rôzni prefíkaní „metodológovia“ začali písať hrubé knihy o DevOps praktikách, ticho sa rozpaľovali debaty, kto vlastne je onen preslávený DevOps inžinier a čo DevOps — je to kultúra výroby, opäť vznikalo nespokojnosť. Zrazu sa zistilo, že dodávka softvéru — absolútne netriviálna úloha. Každá vývojová infraštruktúra má svoj vlastný stack, niekde je potrebné zostaviť, niekde rozbehnúť prostredie, tu je potrebný tomcat, tam je potrebný ešte nejaký zložitý spôsob spúšťania — všeobecne, hlava praská. A ešte problém, ako sa ukázalo, je predovšetkým v organizácii procesov — táto funkcia dodávky, ako fľaškové hrdlo, začala blokovať procesy. Navyše prevádzka (Operations) sa nezrušila. V modeli V to nie je vidieť, a tam je ešte celý životný cyklus napravo. Napokon treba nejakým spôsobom podporovať infraštruktúru, sledovať monitoring, riešiť incidenty a ešte sa zaoberať dodávkou. T.j. sedieť jednou nohou aj vo vývoji, aj v prevádzke — a zrazu vznikol taký Development & Operations. A tu ešte prišiel masový hype na mikroslužby. A s nimi začala vývoj z lokálnych strojov presúvať do cloudu — skús niečo odladit lokálne, ak je tu desiatky a stovky mikroslužieb, tu už sa stáva trvalá dodávka prostriedkom prežitia. Pre „malú skromnú spoločnosť“ ešte celkom akceptovateľné, ale aj tak? A Google?
SRE od Google
Prišiel Google, zjedol najväčšie kaktusy a rozhodol sa — takéto veci nepotrebujeme, potrebujeme spoľahlivosť. A spoľahlivosť treba riadiť. A rozhodol sa — potrebujeme odborníkov, ktorí budú riadiť spoľahlivosť. Nazval ich SR inžiniermi a povedal, máte všetko, urobte to, ako obvykle, dobre. Tu máte SLI, tu máte SLO, tu máte monitorovanie. A ukázal prstom na operations. A nazval svoj „spoľahlivý DevOps“ SRE. Všetko vyzeralo dobre, ale existuje jeden špinavý hack, ktorý si Google mohol dovoliť — na pozíciu SR inžinierov zamestnávať ľudí, ktorí mali kvalifikáciu vývojárov a ešte trochu rozumeli fungovaniu pracovných systémov. A dokonca aj s náborom takýchto ľudí má Google problémy — hlavne preto, že tu sám so sebou súťaží — veď aj biznis logiku musí niekto opisovať. Dodávky prenechal release inžinierom, SR inžinieri riadia spoľahlivosť (jasné, nie priamo, ale ovplyvňovaním infraštruktúry, zmenou architektúry, sledovaním zmien a ukazovateľov, riešením incidentov). Pekne, môžeme . A čo robiť, ak nie ste Google, a predsa vás spoľahlivosť nejako trápi?
Rozvoj myšlienok DevOps
Tu sa práve objavil Docker, ktorý vyrástol z lxc, a potom aj rôzne orchestračné systémy ako Docker Swarm a Kubernetes, a DevOps inžinieri si vydýchli — unifikácia praktík zjednodušila dodávku. Zjednodušila tak, že sa stalo možné dokonca delegovať dodávku na vývojárov — veď čo to je deployment.yaml. Kontejnorizácia rieši problém. A zrelosť systémov CI/CD už dosiahla úroveň, kde napíšeš jeden súbor a všetko sa rozbehne — vývojári si poradia sami. A tu začíname hovoriť, ako si urobiť vlastný SRE, s… hocikým.
SRE nie je v Google
No dobre, doručenie sme odovzdali, zdá sa, že môžeme vydýchnuť a vrátiť sa k starým dobrým časom, keď administrátori sledovali zaťaženie procesorov, ladili systémy a potichu si vychutnávali niečo nejasné v tichu a pokoji… Zastavte. Neboli sme kvôli tomu všetkému, čo sme robili (škoda!). Zrazu sa ukazuje, že v prístupe Google môžeme čerpať vynikajúce praktiky — nie zaťaženie procesorov je dôležité, a nie to, ako často meníme disky, alebo v cloude optimalizujeme náklady, ale obchodné metriky — tie isté preslávené SLx. A správa infraštruktúry nebola zrušená, incidenty sa musia riešiť, je potrebné občas dňa stáť na poste a vôbec byť v obraze ohľadom obchodných procesov. A chalani, začnite už pomaly programovať na dobrej úrovni, Google už na vás čaká.
Shrnutie. Zrazu, ale už ste unavení čítať a tešíte sa, že napíšete autorovi komentár k článku. DevOps ako praktika dodávky bol, je a bude. A nikam nezmizne. SRE ako súbor praktík prevádzky robí túto dodávku úspešnou.
Zdroj: habr.com
