Co je DevOps?
DevOps je sjednocení lidí, procesů a produktů, které našim zákazníkům umožňují průběžné doručování hodnot. Co to ale přesně znamená? Připojme se k týmu, kterému Mara vysvětluje, co DevOps je, co není a co činí tým vysoce výkonným.
Mara svolala krátkou schůzku členů svého týmu. Všichni se ukázali, ale nikdo tam nechce být. Mara dala na stůl krabici koblih.
Mara: Ahoj, díky za příchod. Chtěla jsem, abychom důkladněji probrali naši mapu hodnotových toků a to, jak můžeme naše procesy zefektivnit.
Mapa hodnotového toku Mara je stále na tabuli z předchozí schůzky:
Mara: Naše mapa hodnotového toku ukazuje, kde ztrácíme efektivitu při poskytování hodnoty koncovým uživatelům. Stejně jako všichni ostatní můžeme zlepšit a můžeme se rozhodnout, které oblasti se mají řešit jako první.
Andy: Ukazuje nám, kde máme problémy, ale ne co s nimi dělat.
Mara: Správně, jedná se o cvičení, které nám pomůže nasměrovat na správný směr. Co dělat s našimi problémy, myslím, že nám DevOps může pomoct. V mé poslední společnosti se naše míra nasazení vysouvala směrem nahoru, předstihy byly rychlejší a provoz měl mnohem méně incidentů. Trvalo nám to chvíli, než jsme se tam dostali, ale stojí za to. DevOps není rychlá náprava.
Tim: Vím, že někdo, kdo právě získal práci jako inženýr DevOps. Myslím, že je to spíš pro vývojáře. Pro někoho, jako jsi ty, Andy.
Mara: DevOps není pracovní pozice.
Amita: Existuje nějaký softwarový program, který nám může pomoct, nebo šablonu? Možná existuje nějaký tabulkový kalkulátor DevOps?
Mara: DevOps není kus softwaru.
Andy: Je to spíš metodologie.
Mara: Opravdu ne.
Andy, Amita, Time: Tak co to je?!
Mara: Tady je definice, která se mi líbí:
DevOps je spojení lidí, procesů a produktů, které má koncovým uživatelům průběžně doručovat hodnotu.
Abel Wang, poradce pro cloud v Microsoftu, má ve skutečnosti skvělou sadu videí s rychlými odpověďmi na některé z našich otázek. Pojďme se podívat, jak Abel definuje DevOps:
Zeptejte se Abela
Naším cílem je poskytovat zákazníkům hry, které mají rádi. Uděláme to tak, že budeme spolupracovat s využitím sdílené sady postupů a nástrojů.
Amita: Co to znamená? Jaké sdílené postupy? Jaké sdílené nástroje?
Mara: Tady mám na mysli postupy:
- Agilní plánování: Společně vytvoříme backlog práce, kterou uvidí všichni členové týmu a vedení. Určíme prioritu položek, abychom věděli, na kterých máme pracovat nejdříve. Backlog může zahrnovat příběhy uživatelů, chyby a další informace, které nám pomůžou.
- Kontinuální integrace (CI):: Zautomatizujeme způsob sestavování a testování kódu. Budou probíhat pokaždé, když některý člen týmu potvrdí změny do správy verzí.
- Průběžné doručování (CD):CD je způsob, jak testujeme, konfigurujeme a nasazujeme z sestavení do prostředí pro kontrolu kvality nebo do produkčního prostředí.
- Monitorování: Pomocí telemetrie získáme informace o výkonu a vzorech využití aplikace. Tyto informace využijeme k tomu, abychom se při iteracích zlepšovali.
Amita: Nevím o automatizovaném testování. Moje testy jsou ruční a já je dělám po Andy ruce kód mi. Nemám čas na to, abych změnila, jak všechno dělám.
Tim: Neexistuje žádný způsob, jak nechám každého z vás nasadit do produkčního prostředí.
Andy: To vyděsí vedení. Nikdy nepřemýšlí nad další verzí a vždy ji chtějí včerejší.
Mara: Vím, co myslíš o správě. Dala jsem dohromady tyhle podklady o tom, co činí tým vysoce výkonným.
Co činí tým vysoce výkonným?
Tady jsou podklady, které Mara připravila. Tyto informace jsou založené na výzkumných zprávách a průzkumech o DevOps prováděných s technickými odborníky po celém světě.
DevOps pomáhá společnostem experimentovat se způsoby, jak zvýšit přijetí a spokojenost zákazníků. Může vést k lepšímu výkonu organizace a často k vyšší ziskovosti a podílu na trhu.
Používá metriky k vytvoření čtyř kategorií, podle kterých se mají porovnat elitní výkonníci s nízkými výkony.
Elitní účinkující:
Nasazují častěji.
Ve skutečnosti je to tak, že některé týmy nasazují mnohokrát za den.
Postupy, jako je monitorování, průběžné testování, správa změn databáze a integrace zabezpečení dříve v procesu vývoje softwaru, pomáhají vysoce výkonným procesům nasazovat častěji a s větší předvídatelností a zabezpečením.
Zkracují dobu realizace od potvrzení změn k nasazení.
Doba realizace je doba potřebná k doručení funkce zákazníkovi. Vysoce výkonné týmy pracují v menších dávkách, automatizují ruční procesy a nasazují častěji. To, co dříve trvalo týdny nebo měsíce, jim tak zabere jenom hodiny nebo dny.
Zmenšují četnost chyb při změnách.
Nová funkce, která selže v produkčním prostředí nebo která způsobí přerušení jiných funkcí, může vytvořit ztracenou příležitost mezi vámi a vašimi uživateli. Jak vysoce výkonné týmy zraly, snižují míru selhání změn v průběhu času.
Rychleji se zotavují z incidentů.
Když dojde k nějakým incidentům, dokážou se z nich vysoce výkonné týmy rychleji vzpamatovat. Výkon na metrikách pomáhá elitním výkonům rychleji se zotavit a zároveň častěji nasazovat.
Záleží také na způsobu implementace cloudové infrastruktury. Cloud zlepšuje výkon doručování softwaru a týmy, které přijímají základní charakteristiky cloudu, se s větší pravděpodobností stanou vysoce výkonnými.
Outsourcing může ušetřit peníze a poskytnout flexibilní pracovní fond, ale musíte jej použít ve správných oblastech. Týmy s nízkým výkonem mají větší pravděpodobnost, že zasoudí celé funkce (jako je testování a provoz) než jejich vysoce výkonné protějšky.
Sečteno a podtrženo
DevOps je klíčovým důvodem, proč mnoho vysoce výkonných odborníků dokáže zákazníkům poskytovat hodnotu ve formě nových funkcí a vylepšení, rychleji než jejich konkurenti. V tomto krátkém videu Abel vysvětluje, proč byste se měli dozvědět více o DevOps:
Zeptejte se Abela
Co DevOps není
Při zvažování toho, co je DevOps, je také důležité se ujistit, že se naučíme, co není. DevOps není:
- Metodologie.
- Určitý software.
- Rychlá oprava problémů organizace
- Jenom tým nebo pracovní pozice (i když jsou tyto tituly v oboru poměrně běžné).