
Před několika lety mnoho organizací vnímalo DevOps spíše jako slibný experiment než jako základní přístup k vývoji softwaru. Dnes je DevOps osvědčenou a výkonnou sadou postupů a nástrojů pro vývoj a nasazení, které urychlují vydávání nových produktů a zvyšují produktivitu. A co je důležitější, dopad DevOps je zaměřen na celkový růst a ziskovost podniku.
Tým Přeložil jsem nejzajímavější části , kterou sestavili experti ze společnosti DevOps Research & Assessment (DORA). Studie se zúčastnilo 31 000 profesionálů z celého světa. Podívejme se, co se v tomto odvětví změnilo v roce 2019 a jak mohou firmy zlepšit efektivitu dodávek softwaru.
Jak odvětví a velikost společnosti ovlivňují stav DevOps
Studie nenalezla žádnou korelaci mezi efektivitou DevOps a odvětvím organizace, s výjimkou maloobchodu, kde byly výsledky o něco lepší. To je částečně způsobeno potřebou maloobchodníků rychle reagovat na kolísání poptávky a potřeb zákazníků. Podle studie může jakákoli společnost, včetně finančního a veřejného sektoru, dosáhnout vysoké úrovně DevOps.
Míra efektivity DevOps byla nižší ve společnostech s více než 5 000 zaměstnanci než ve společnostech s méně než 5 000 zaměstnanci. To je pravděpodobně způsobeno tím, že větší organizace mají rozsáhlejší procesy, přísnější kontroly a složitější architektury IT systémů, což způsobuje zpoždění ve vývoji a nasazení kódu. Odborníci se domnívají, že velikost společnosti nebrání úspěchu při budování DevOps; v některých případech může jednoduše vyžadovat větší úsilí.
Jak posoudit úroveň DevOps ve firmě
Odborníci porovnali DevOps procesy s benchmarkem a rozdělili účastníky průzkumu do čtyř skupin: nejlepší, dobří, průměrní a špatní.
Zpráva použila čtyři klíčové metriky pro posouzení efektivity DevOps: dobu realizace změn ve vývoji softwaru, frekvenci nasazení, míru selhání a dobu obnovy.
Čtyři úrovně DevOps – zhodnoťte, kde se vaše společnost nachází:
Metrika pro hodnocení efektivity dodávek softwaru pro klíčové služby a aplikace společnosti
Týmy s nejlepšími výkony
Týmy s dobrými výkony
Týmy s průměrným výkonem
Týmy s nízkým skóre
Frekvence nasazení
Jak často společnost nasazuje kód do produkčního prostředí nebo jej vydává koncovým uživatelům.
Na vyžádání, více nasazení denně
Od jednou denně do jednou týdně
Od jednou týdně do jednou měsíčně
Jednou za měsíc/několik měsíců
Čas na dokončení změn
Jak dlouho trvá, než se software od testování dostane k úspěšnému provozu?
Za méně než den
Od jednoho dne do týdne
Od jednoho týdne do měsíce
Od jednoho měsíce do šesti měsíců
Doba obnovení služby
Jak dlouho trvá obnovení služby po incidentu nebo chybě, která postihla uživatele?
Méně než hodina
Během dne,
Do týdne
Od týdne do měsíce
Četnost selhání během změn
Jaké procento aktualizací nebo nových verzí vede ke zhoršení kvality služeb a vyžaduje opravy?
0-15%
0-15%
0-15%
46-60%
Studie zjistila následující trend: počet týmů s vysokou úrovní výkonnosti se téměř ztrojnásobil, a to ze 7 % všech respondentů v roce 2018 na 20 % v roce 2019.

Rozdělení vývojových týmů podle úrovně výkonu.
Ve srovnání s týmy ve skupině s nízkým výkonem, vysoce výkonné DevOps týmy:
- Provedeno 208x více nasazení kódu.
- Nasazení kódu bylo věnováno 106krát méně času.
- Selhal 7krát méně často.
- Obnova softwaru po selhání byla 2,604krát rychlejší.
Vysoce výkonné DevOps týmy navíc dvakrát častěji splňují nebo překračují své organizační výkonnostní metriky než týmy s nízkým výkonem.
Mnoho odborníků se domnívá, že dosažení zlepšení ve všech metrikách současně je nemožné a vyžaduje kompromisy. Někteří se například domnívají, že zvýšení rychlosti vydávání verzí může negativně ovlivnit spolehlivost dodávek softwaru a poskytování služeb. Výzkum však ukázal, že rychlost a stabilita výsledků se vzájemně nevylučují.
Na růstu DevOps týmů nevidím nic překvapivého, je to přirozené: filozofie DevOps je nyní populární a počet startupů roste.
Ale podle mého názoru odborníci zvolili ne zcela správné parametry pro posouzení efektivity DevOps.
Soudit to podle rychlosti nasazení kódu je přinejmenším zvláštní. To platí pouze pro startupy, kde je klíčovou metrikou rychlost uvedení na trh a produkt je často vydáván v surové podobě. Za takových okolností jsou mechanismy, které urychlují vývoj a dodání do produkčního prostředí, zásadní. Ale pro zavedený software, jako je finanční nebo lékařský, nemusí být míra selhání metrikou – selhání mohou být nepřijatelná.
Totéž platí pro dobu obnovy služby: u jakékoli vyvinuté služby by se měla měřit v sekundách a u mnoha služeb je doba výpadku nepřijatelná. Z tohoto důvodu byly vynalezeny technologie plynulého zavádění (např. zelená/modrá).
Také se nespoléhejte na počet nasazení kódu – záleží na potřebách a kompetencích vývojového týmu. Pokud se nasazení týká přidávání nových funkcí, to je jedna věc, ale pokud se týká opravy chyb vzniklých během předchozích nasazení, je to něco úplně jiného.
Denis Romanenko, nezávislý expert ve společnosti Mail.ru Cloud Solutions
Jak vylepšit DevOps procesy
Zpráva představuje dvě oblasti, které mohou pomoci zlepšit DevOps: zvýšení efektivity vývoje a dodávek softwaru a zlepšení produktivity pracovníků.

Každý směr zahrnuje své vlastní komponenty, jejichž vylepšením můžete dosáhnout požadovaného cíle.
Podle zprávy je klíčem k digitální transformaci firemní kultura. Vysoce výkonné DevOps týmy potřebují kulturu důvěry a psychologického bezpečí, jasnou představu o pracovních výsledcích a jasné cíle. Takové prostředí umožňuje členům týmu činit informovaná rozhodnutí, vyjadřovat své názory a být kreativnější.
Cloudové technologie, kontinuální dodávky, testování obnovy po havárii a řízení změn mohou také pomoci zlepšit efektivitu vývoje a dodávek softwaru. Produktivitu lze zvýšit investicemi do snadno použitelných nástrojů, snížením technického dluhu (tj. snížením procenta neefektivního kódu a zastaralých technologií) a vytvořením firemní znalostní základny a přístupem k externím řešením.
Věřím, že metodologie a ideologie DevOps jsou právě o tom, aby tyto procesy byly nezávislé na vnějších podmínkách, jako je cloud nebo nativní hardware. Cloud sám o sobě není nic víc než nástroj; v některých ohledech pomůže, v jiných bude překážet nebo bude k ničemu.
Denis Romanenko, nezávislý expert ve společnosti Mail.ru Cloud Solutions
Níže se podíváme na některé složky zvyšování efektivity DevOps týmů.
Cloudové technologie přispívají k úspěchu DevOps
V roce 2019 stále více organizací volí cloudová řešení, která výrazně zlepšují produktivitu DevOps týmů.

Jakou infrastrukturu používají DevOps týmy?
DORA zjistila, že 80 % respondentů zveřejňuje příspěvky Pouze 29 % respondentů však implementovalo všech pět základních charakteristik cloudových technologií Národního institutu pro standardy a technologie (National Institute of Standards and Technology) – nejdůležitějšího standardu pro posouzení hodnoty cloudu v rámci DevOps.
Charakterizace
Procento těch, kteří to použili
Samoobsluha na vyžádání
Spotřebitelé mohou automaticky zřizovat výpočetní zdroje
dle potřeby, bez účasti poskytovatele.
57%
(+ 11 % od roku 2018)
Široký přístup k síti
Cloudové funkce jsou dostupné prostřednictvím různých platforem,
jako jsou mobilní telefony, tablety, notebooky a pracovní stanice.
60%
(+ 14 % od roku 2018)
Fond zdrojů
Zdroje poskytovatelů jsou sdruženy do modelu s více klienty, kde jsou fyzické a virtuální zdroje dynamicky přiřazovány na vyžádání.
58%
(+ 15 % od roku 2018)
Škálovatelnost a elasticita
Zdroje lze horizontálně nebo vertikálně škálovat dle potřeby, jsou prakticky neomezené a lze je poskytnout v libovolném množství kdykoli.
58%
(+135 od roku 2018)
průhlednost
Cloudové systémy automaticky monitorují, optimalizují a reportují využití zdrojů na základě typu služby: ukládání a zpracování dat, objem provozu,
aktivní uživatelské účty.
62%
(+ 14 % od roku 2018)
Platforma jako služba (PaaS) se stále více posouvá směrem k modelu nasazení zaměřenému na kontejnery. Cloudové platformy zjednodušují nasazení softwaru, takže se týmy musí starat pouze o spouštění samotného kódu aplikace. Škálování, plánování kapacity, administrace a údržba infrastruktury se také přesouvají na poskytovatele.
Poskytovatelé cloudových služeb se stávají univerzálním standardem pro poskytování nejrůznějších služeb: sítě virtuálních strojů, správa identit a přístupu (IAM), úložiště a databáze, strojové učení, internet věcí (IoT), kontejnerová řešení, bezpečnostní řešení a další.
Klienti poskytovatelů cloudových služeb platí pouze za zdroje, které využívají, což zajišťuje transparentnost nákladů, na rozdíl od tradičních datových center, kde je získání informací o nákladech na vývoj obtížné nebo nemožné. Respondenti ze společností, které splňují výše uvedená kritéria pro cloudovou připravenost, s 2,6krát vyšší pravděpodobností odhadnou náklady na software, dvakrát častěji chápou, které aplikace spotřebovávají nejvíce zdrojů, a 1,65krát častěji dodrží svůj IT rozpočet.
Někdy se ukáže, že najmutí kvalifikovaného specialisty a využití vyhrazené kapacity v datovém centru je nákladově efektivnější než placení za cloud computing. Nejlepší možnost závisí na profilu a rozsahu společnosti, stejně jako na dostupnosti interních IT specialistů a odborných znalostí. Cloud je například vhodný při zakládání firmy nebo pokud společnost nemá vlastní IT oddělení. S rostoucím počtem firem může být nákladově efektivnější udržovat celou infrastrukturu nebo její část v místních podmínkách.
Denis Romanenko, nezávislý expert ve společnosti Mail.ru Cloud Solutions
Technické postupy DevOps
Mnoho organizací, které chtějí implementovat DevOps, hledá soubor pokynů nebo osvědčených postupů. Žádné dvě společnosti však nejsou stejné, takže výběr postupů závisí na aktuálním stavu podnikání a jeho cílech.
Nicméně existují obecné oblasti, které mohou pomoci zlepšit efektivitu DevOps: některé jsou vyvíjeny na úrovni týmu, zatímco jiné vyžadují úsilí na úrovni organizace.
Jaké oblasti růstu jsou pro DevOps týmy v roce 2019 zdůrazněny?
Na organizační úrovni
- volně propojená architektura
- implementace změn
- podpora kódu
Na úrovni týmu
- kontinuální integrace
- automatizace testů
- automatizace nasazení
- monitoring
- vývojový kanál
Na úrovni týmu a organizace
- používání cloudových služeb
- testování obnovy po havárii
Studie potvrdila pozitivní dopad volně propojené architektury na efektivitu DevOps.
Volně propojená architektura umožňuje týmům nezávisle testovat, nasazovat a měnit systémy na vyžádání, nezávisle na ostatních týmech, bez další podpory, zdrojů nebo schvalování a s menší zpětnou vazbou. To umožňuje větší efektivitu, ale vyžaduje vysokou úroveň organizace a řízení.
Tento přístup je možný pouze pro startupy a s určitými výhradami. Jiné společnosti mohou mít odlišné situace. Dobrým příkladem je bankovnictví/fintech. Mohou používat výhradně proprietární řešení, ale budou uplatňovány DevOps postupy.
Denis Romanenko, nezávislý expert ve společnosti Mail.ru Cloud Solutions
Úspěšné DevOps týmy automatizují všechno.
umožňuje vám uvést služby a aplikace do produkčního prostředí se sníženými náklady a riziky a udržovat verze v souladu s cíli organizace.
Úspěšná CI/CD také znamená, že týmy mohou nasadit změny do produkčního prostředí na vyžádání, získat okamžitou zpětnou vazbu o kvalitě nasazení a rychle na ní reagovat, aby vylepšily další cyklus nasazení.
Zpráva ukazuje, že úspěšné DevOps týmy investují do široké škály podpůrných procesů, postupů a nástrojů:
- 92 % používá automatizované montážní nástroje;
- 87 % používá automatizované jednotkové testy;
- 57 % rozšiřuje automatizaci i na akceptační testování;
- 72 % automatizuje nasazení do testovacích prostředí, 69 % dělá totéž pro produkční nasazení;
- 69 % integruje chatboty do svého procesu nasazení;
- 57 % se integruje s monitorovacími nástroji.
Je důležité vybrat správné nástroje a technologie
Při budování komplexních systémů a správě kritické obchodní infrastruktury je důležité vybrat technologie:
- které se snadno používají jak při prvním připojení, tak i v nepřetržitém provozu;
- které pomáhají dosáhnout stanovených cílů.
Zpráva zkoumala nástroje používané při nasazení softwaru prostřednictvím CI/CD a nástrojů pro automatizaci testování – technologie, které tvoří základ DevOps.
Jaké technologie používají DevOps týmy?
Technologie
Týmy s nízkým skóre
Týmy s průměrným výkonem
Týmy s dobrými výkony
Vysoce výkonné týmy
Kombinace proprietárních, open source a komerčních krabicových produktů
30%
34%
32%
33%
Většinou open source a vysoce přizpůsobená krabicová řešení
17%
8%
7%
10%
Většinou open source a krabicová řešení s drobnými úpravami
14%
21%
18%
20%
Za prvé, krabicová komerční řešení
8%
12%
8%
4%
Interní vývoj a vlastní řešení pro společnost
20%
6%
5%
6%
Za prvé, open source s možností silného přizpůsobení
6%
7%
5%
12%
Primárně open source s trochou úprav
5%
12%
24%
15%
Použitelnost nástrojů významně ovlivňuje schopnost týmu maximalizovat hodnotu zvoleného technologického balíčku: inženýři se snadno použitelnými technologiemi mají 1,5krát vyšší pravděpodobnost, že budou součástí vysoce výkonných týmů.
Podle mého názoru tato tabulka budí dojem, že pro úspěšný DevOps tým je potřeba sledovat módu, ne technický úkol.
Kompetentní profesionál vybírá nástroje tak, aby odpovídaly danému úkolu, ne naopak. Vždy existuje několik nástrojů a přístupů k řešení jakéhokoli problému. Konkrétní nástroj je určen: specifikami úkolu; znalostí zaměstnance o nástroji (jak vysoká je vstupní bariéra, pokud je nástroj nový); a finanční složkou, pokud existuje.
Denis Romanenko, nezávislý expert ve společnosti Mail.ru Cloud Solutions
Obnova po havárii
Každá organizace, jejíž provoz závisí na provozu softwaru, musí mít Zpráva ukazuje typy testování odolnosti vůči katastrofám, které používají různé společnosti.
Jaké typy testování firmy používají pro zotavení po havárii?
Typ testu
Týmy s nízkým skóre
Týmy s průměrným výkonem
Týmy s dobrými výkony
Vysoce výkonné týmy
Průměrná
Testy, které nezahrnují reálné systémy
35%
26%
27%
30%
28%
Failover infrastruktury (včetně datových center)
27%
43%
34%
38%
38%
Testování selhání aplikace
25%
46%
41%
49%
43%
Simulace incidentů zahrnujících narušení testovacích systémů
18%
22%
23%
29%
23%
Simulace incidentů zahrnujících narušení provozních systémů
18%
11%
12%
13%
12%
Vytváření automatizace a systémů, které selhávají
výrobních systémů pravidelně a průběžně
9%
8%
7%
9%
8%
Pouze 40 % respondentů provádí každoročně testování obnovy po havárii pomocí jedné nebo více výše uvedených metod. Společnosti, které provádějí testování obnovy po havárii, však mají vyšší dostupnost služeb. Zpráva ukazuje, že DevOps týmy s vysokým výkonem 1.4krát častěji začleňují data z testů obnovy po havárii do svých procesů vývoje a nasazení softwaru.
Je důležité zajistit, aby DevOps týmy měly přístup k informacím
Snadné vyhledávání informací pro řešení problémů pomůže udržet produktivitu DevOps týmu. To je obzvláště důležité v dnešním technologickém prostředí, které se skládá ze složitých systémů.
Zdroje takových informací lze rozdělit do dvou skupin:
- Interní zdroje: firemní dokumentace o tvorbě a údržbě kódu, firemní znalostní báze, repozitáře a další. DevOps týmy, které využívaly interní zdroje znalostí, byly 1,73krát produktivnější.
- Externí zdrojeVyhledávače a rozšiřování stacků. DevOps týmy, které outsourcovaly svou práci, byly 1,67krát produktivnější. Outsourcing nabízí významné výhody v oblasti učení a růstu, zejména díky využívání veřejných cloudů a nástrojů s otevřeným zdrojovým kódem.
Pro firmy je důležité snižovat technický dluh
Technický dluh zahrnuje kód nebo systémy se známými, ale neopravenými chybami; nedostatečné pokrytí testy; špatnou kvalitu kódu nebo návrhu; artefakty, které jsou nepoužívané, ale nebyly odstraněny; implementace, které tým nemůže efektivně udržovat; zastaralé technologie; a neúplnou nebo zastaralou dokumentaci.
Odborníci zjistili, že technický dluh negativně ovlivňuje výkon DevOps. Týmy s vysokým technickým dluhem byly 1,6krát méně produktivní. Vysoce výkonné týmy měly 1,4krát vyšší pravděpodobnost nízkého technického dluhu.
Klíčová zjištění z průzkumu stavu DevOps
- Procento DevOps týmů s vysokým skóre se téměř ztrojnásobilo na 20 %. To naznačuje, že firmy chápou potenciál postupů pro zlepšení vývoje a dodávek softwaru a stále častěji implementují DevOps ve svých IT odděleních.
- Rychlé dodávání aplikací a služeb je základem technologické transformace a výkonnosti organizace. Rychlost a konzistence ve vydávání nových verzí zvyšuje ziskovost a spokojenost zákazníků.
- Cloudové technologie zůstávají klíčem k dosažení vysokých výsledků DevOps týmů. Cloud computing umožňuje dodávání softwaru správnou rychlostí a zajišťuje dostupnost, škálovatelnost a výkon infrastruktury.
- Efektivitu DevOps týmů lze zlepšit zaměřením na produktivitu členů týmu, zajištěním příjemné psychologické atmosféry a používáním uživatelsky přívětivých nástrojů.
- Pokud se to provede správně, zvýšení rychlosti zavádění verzí neovlivní stabilitu služeb a aplikací společnosti.
Zdroj: www.habr.com
