Koncept DevOps jako lék na chronický konflikt v IT

Typická IT organizace je odpovědná mimo jiné za 2 paralelní a přitom protichůdné cíle: reagovat na rychle se měnící konkurenční prostředí (odpovědnost vývoje, tedy Development) a poskytovat stabilní, spolehlivé a bezpečné služby zákazníkům (odpovědnost provozu, tedy Operations). Tato situace, kde Dev a Ops mají zcela odlišné cíle a pobídky, odpovídá kořenovému, chronickému konfliktu, který vytváří tak silnou sestupnou spirálu, že brání dosažení požadovaných business výsledků.

Ilustrační snímek

Chronický konflikt v IT

Tento chronický konflikt existuje v téměř všech IT organizacích a jeho důsledkem je pomalejší uvádění nových produktů a funkcí na trh, snížená kvalita, zvýšené výpadky služeb a stále rostoucí technický dluh. To vše často staví technologické pracovníky do situací, které vedou ke špatným výsledkům zákazníků a každodenní potřebě „hašení požárů“ v Product Management, Dev, Quality Assurance, Ops nebo Information Security.

Sestupná spirála začíná v Ops, kde je cílem udržet aplikace a infrastrukturu v provozu tak, abychom mohli poskytovat hodnotu zákazníkům. V každodenní práci je mnoho problémů způsobeno aplikacemi a infrastrukturou, které jsou komplexní, špatně dokumentované a neuvěřitelně křehké v důsledku technického dluhu. Přesto děláme denně řadu obejití a slibujeme si, že v tom uděláme pořádek, jakmile budeme mít trochu víc času (jenže to nebude nikdy).

Spirála se dále prohlubuje, když se produktový nebo obchodní manažer snaží kompenzovat nedodržený slib dalším slibem lepších funkcí nebo vyšších výnosů, aniž by vzal v potaz faktory, které vedly k nedodržení předchozích závazků. Realizací nových slibů je pověřeno IT, které tak musí řešit další projekt a ten nevyhnutelně přináší nové technické výzvy, přičemž ale ve snaze splnit slíbené datum uvolnění ve skutečnosti jen dále navýší technický dluh.

V důsledku předchozích částí spirály se vše stává obtížnější, všichni jsou více vytížení, práce trvají déle, komunikace je o něco pomalejší a pracovní fronty o něco delší.

Důsledky pro IT personál

Lidé, kteří léta pracují v této sestupné spirále, často tráví v práci dlouhé hodiny včetně víkendů (zejména Ops) a to jim přináší nižší kvalitu rodinného života, únavu, vyhoření, pocit bezmoci, cynismus a možná i zoufalství ze systému, který je předurčen k selhání.

Svět DevOps

Koncept DevOps (Development and Operations) se snaží bořit popsanou sestupnou spirálu sadou osvědčených postupů, které kladou důraz na spolupráci a komunikaci IT profesionálů (Product Management, Dev, Ops, Quality Assurance, Information Security) v životním cyklu aplikací a služeb, což vede ke kontinuální integraci, kontinuálnímu nasazování a kontinuální zpětné vazbě. Ačkoliv je DevOps spoustou lidí vnímán hlavně jako technický posun, je to ve skutečnosti zejména posun kulturní.

Koncept DevOps je charakteristický:

  • zaváděním mezioborových týmů, které vlastní produkt/službu ve všech fázích životního cyklu, což jim dává větší příležitost porozumět výsledkům jejich práce a možnostem zlepšení ve prospěch celé organizace,
  • péčí o hladký tok práce napříč celým technologickým hodnotovým proudem,
  • přidáním odborných znalostí Quality Assurance, Ops a Information Security do vývojových týmů,
  • aplikací automatizovaných samoobslužných nástrojů a platforem,
  • snahou vytvářet bezpečný systém práce, kde malé týmy jsou schopny rychle a nezávisle vyvíjet, testovat a nasazovat kód a dodávat tak zákazníkům hodnotu rychle, bezpečně a spolehlivě,
  • nahrazením kultury strachu kulturou učení, ve které lidé nejsou trestáni, když se něco pokazí, ale mají příležitost lépe pochopit, co způsobilo nehodu a jak tomu příště zabránit.

DevOps = CALMS

DevOps hodnoty vyjadřuje zkratka CALMS, poskytující jednoduchý rámec DevOps:

  • Culture - zahrnuje lidské aspekty DevOps jako např. komunikaci, spolupráci, chování a vyžaduje přijetí DevOps transformace, postupů, zásad a kultury zaměstnanci.
  • Automation - cílem je automatizovat co nejvíce manuálních kroků DevOps hodnotového řetězce, což redukuje chybovost, zvyšuje rychlost a posiluje standardizaci.
  • Lean - snaha vytvářet větší hodnotu pro zákazníky s méně zdroji, zlepšením toku práce a zvýšením adaptability na změny.
  • Measurement - zásadní a trvalá součást DevOps - monitoring a zásah v případě potřeby.
  • Sharing - silná kultura sdílení myšlenek, poznatků, zkušeností podporující lepší komunikaci a spolupráci.

Tři návyky DevOps

Základem konceptu DevOps jsou tři klíčové návyky:

1. Tok a systémové myšlení (tok práce od nápadu až do produkce integrovaného systému)

  • Organizace musí pochopit a neustále zlepšovat tok práce zleva doprava (Dev -> Ops) eliminací úzkých hrdel nebo odstraněním překážek.

2. Zpětná vazba

  • Organizace potřebuje vytvořit kratší smyčky zpětné vazby, které umožňují neustálé zlepšování (zajištění kvality u zdroje, neboť čím rychleji budou příležitosti pro zlepšení identifikovány nebo opravy problémů provedeny, tím menší dopad a zpoždění v procesu vývoje a tím menší budou náklady na opravy).

3. Nepřetržité experimentování a učení

  • Organizace musí vytvořit kulturu, která podporuje experimenty, je ochotná riskovat a poučit se z neúspěchu.

Je úspěch zaručen?

Bohužel není, praxe ukazuje mnoho organizací, které se snažily/snaží o adopci DevOps, zatím bez úspěchu. I organizace, které lze označit za průkopníky DevOps (např. Facebook, Netflix a Etsy) jistě zápasily s mnoha problémy, provedly řadu experimentů, pokusů omylů, ale nejdůležitější aspekt jejich úspěchu spočíval v tom, že byly schopny provést nejen změny procesů a technologie, ale také významné kulturní a organizační změny.