DevOps v praxi
16. 07. 2019| Miroslav Müller
16. 07. 2019| Miroslav Müller
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ů.
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ší.
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í.
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ý:
DevOps hodnoty vyjadřuje zkratka CALMS, poskytující jednoduchý rámec 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)
2. Zpětná vazba
3. Nepřetržité experimentování a uč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.