Co je DevOps?
DevOps kombinuje vývoj (Dev) a operace (Ops) a spojuje lidi, procesy a technologie při plánování aplikací, vývoji, doručování a provozu. DevOps umožňuje koordinaci a spolupráci mezi dříve vyloženými rolemi, jako jsou vývoj, it operace, kvalitní inženýrství a zabezpečení.
Týmy přijímají kulturu, postupy a nástroje DevOps, aby zvýšily důvěru v aplikace, které sestavují, reagovaly lépe na potřeby zákazníků a rychleji dosahovaly obchodních cílů. DevOps pomáhá týmům nepřetržitě poskytovat hodnotu tím, že vytváří lepší a spolehlivější produkty.
DevOps ovlivňuje životní cyklus aplikace ve fázích plánování, vývoje, doručování a provozu . Každá fáze závisí na ostatních fázích a fáze nejsou specifické pro roli. Jazyková verze DevOps zahrnuje všechny role v každé fázi do určité míry.
Následující diagram znázorňuje fáze životního stylu aplikace DevOps:
Když tým přijme kulturu, postupy a nástroje DevOps, můžou dosáhnout úžasných věcí:
Zkrácení doby uvedení na trh
Díky vyšší efektivitě, vylepšené týmové spolupráci, automatizačním nástrojům a průběžnému nasazování jsou schopny rychle zkrátit dobu od vzniku produktu až po uvedení na trh.
Přizpůsobení trhu a hospodářské soutěži
Týmy, které vyžadují kulturu DevOps, se zaměřují na zákazníky. Když si vezmete flexibilitu, týmové spolupráci a zaměříte se na zákaznické prostředí, můžou týmy nepřetržitě poskytovat svým zákazníkům hodnotu a zvýšit jejich konkurenceschopnost na marketplace.
Udržování stability a spolehlivosti systému
Když týmy přijmou postupy průběžného zlepšování, můžou se stavět ve zvýšené stabilitě a spolehlivosti produktů a služeb, které nasazují. Tyto postupy pomáhají snižovat chyby a rizika.
Zlepšení střední doby obnovení
Střední doba na metriku obnovení udává, jak dlouho trvá zotavení po selhání nebo porušení zabezpečení. Aby týmy mohli spravovat selhání softwaru, porušení zabezpečení a plány průběžného zlepšování, měli by tuto metriku měřit a pracovat na tom, aby tuto metriku zlepšily.
Pokud chcete plně implementovat DevOps, musíte přijmout jazykovou verzi DevOps. Kultivování kultury DevOps vyžaduje hluboké změny ve způsobu, jakým lidé pracují a spolupracují. Když se organizace zaváže do kultury DevOps, vytvoří prostředí pro vysoce výkonné týmy, které se budou vyvíjet. Zatímco zavádění postupů DevOps automatizuje a optimalizuje procesy prostřednictvím technologií, aniž by došlo ke změně kultury DevOps v organizaci a jejích lidech, nebudete plně využívat výhody DevOps.
Následující obrázek zachycuje klíčové aspekty živé jazykové verze webu microsoftu.
Klíčové komponenty jazykové verze DevOps jsou následující postupy:
- Spolupráce, viditelnost a sladění: Symbol zdravé kultury DevOps je spolupráce mezi týmy. Spolupráce začíná viditelností. Vývoj, IT a další týmy by měly sdílet své procesy DevOps, priority a obavy mezi sebou. Plánováním jejich spolupráce jsou lépe umístěny v souladu s cíli a mírami úspěchu v souvislosti s podnikáním.
- Posuny v oboru a odpovědnosti: Týmy přirovnají vlastnictví a stanou se zapojeny do jiných fází životního cyklu – nejen těch, které jsou pro své role centrální. Například vývojáři začnou být zodpovědní nejenom za inovace a kvalitu dosaženou ve fázi vývoje, ale také za výkon a stabilitu, které jejich změny přinesou v provozní fázi. Operátoři IT současně s tím nezapomínají do fáze plánování a vývoje zahrnout zásady správného řízení, zabezpečení a dodržování předpisů.
- Kratší cykly vydávání verzí: Týmy DevOps zůstávají agilní díky vydání softwaru v krátkých cyklech. Kratší cykly vydávání usnadňují plánování a správu rizik, protože postup je inkrementální. To také omezuje případné dopady na stabilitu systému. Zkrácení cyklu vydávání také organizacím umožňuje přizpůsobovat se měnícím se potřebám zákazníků a tlaku ze strany konkurence a reagovat na ně.
- Průběžné učení: Vysoce výkonné týmy DevOps vytvářejí růstové myšlení. Rychle selžou a začlení učení do svých procesů. Snaží se neustále zlepšovat, zvyšovat spokojenost zákazníků a urychlit inovace a přizpůsobitelnost trhu.
DevOps implementujete podle postupů DevOps (popsaných v následujících částech) v průběhu životního cyklu aplikace. Některé z těchto postupů pomáhají zrychlit, zautomatizovat a vylepšit konkrétní fázi. Další zasahují do několika fází a pomáhají týmům vytvářet bezproblémové procesy pro vylepšení produktivity.
Kontinuální integrace (CI) je postup používaný vývojovými týmy k automatizaci, sloučení a testování kódu. CI pomáhá zachytit chyby v rané fázi vývojového cyklu, což zlevňuje jejich opravu. Automatizované testy se spouštějí jako součást procesu CI, aby se zajistila kvalita. Systémy CI vytvářejí artefakty a odesílají je do procesů vydávání, aby se řídily časté nasazení.
Průběžné doručování (CD) je proces, pomocí kterého se kód sestavuje, testuje a nasazuje do jednoho nebo více testovacích a produkčních prostředí. Nasazení a testování ve více prostředích zvyšuje kvalitu. Systémy CD vytvářejí nasaditelné artefakty, včetně infrastruktury a aplikací. Automatizované procesy vydávání využívají tyto artefakty k vydání nových verzí a oprav stávajících systémů. Systémy, které monitorují a odesílají výstrahy, běží nepřetržitě, aby sledovaly celý proces CD.
Správa verzí je postup správy kódu ve verzích, to znamená sledování historie změn a úprav pro zajištění snadné kontroly kódu a jeho obnovení. Tento postup se obvykle implementuje pomocí systémů správy verzí, jako je Git, což umožňuje více vývojářům spolupracovat při vytváření kódu. Tyto systémy poskytují dobře definovaný proces pro slučování změn kódu, ke kterým dochází ve stejných souborech, zpracování konfliktů a vracení změn zpět do dřívějších fází.
Použití správy verzí je jedním ze základních postupů DevOps. Pomáhá vývojovým týmům zajistit vzájemnou spolupráci, rozdělit úlohy kódování mezi jednotlivé členy týmu a ukládat veškerý kód pro zajištění snadného obnovení v případě potřeby. Správa verzí je také nezbytným prvkem v dalších postupech, jako je kontinuální integrace a infrastruktura jako kód.
Agilita je přístup k vývoji softwaru, který klade důraz na týmovou spolupráci, zpětnou vazbu od zákazníků a uživatelů a vysokou adaptabilitu na změny během krátkých cyklů vydávání. Týmy využívající agilitu poskytují průběžně změny a vylepšení zákazníkům, shromažďují od nich zpětnou vazbu, učí se z ní a potom na základě potřeb a požadavků zákazníků provádějí potřebné úpravy. Agilita se od tradičnějších architektur, jako je třeba vodopád, který zahrnuje dlouhé cykly vydávání definované postupnými fázemi, výrazně liší. S agilitou se obvykle spojují dvě oblíbené architektury, Kanban a Scrum.
Infrastruktura jako kód definuje systémové prostředky a topologie popisným způsobem, který týmům umožňuje spravovat tyto prostředky stejným způsobem jako kód. Tyto definice se také dají ukládat a označovat verzí v systémech správy verzí, kde se dají kontrolovat a vracet zpátky, opět stejně jako kód.
Praktické využití infrastruktury jako kódu pomáhá týmům nasazovat systémové prostředky spolehlivým, opakovatelným a kontrolovaným způsobem. Infrastruktura jako kód také pomáhá automatizovat nasazování a omezuje riziko lidských chyb, zejména pro rozsáhlá a složitá prostředí. Toto opakovatelné a spolehlivé řešení pro nasazování prostředí umožňuje týmům udržovat vývojářská a testovací prostředí, která jsou stejná jako provozní prostředí. Podobně se zjednodušuje a zefektivňuje i duplikování prostředí do různých datových center a na různé cloudové platformy.
Termín správa konfigurace označuje správu stavu prostředků v systému, včetně serverů, virtuálních počítačů a databází. Pomocí nástrojů pro správu konfigurace týmy mohou vydávat změny řízeným a systematickým způsobem. Snižuje se tak riziko změny konfigurace systému. Týmy využívají nástroje pro správu konfigurace ke sledování stavu systému a k tomu, aby se vyhnuly odchylce od konfigurace, tedy tomu, čím se konfigurace systémových prostředků liší od požadovaného stavu, který je pro ně definovaný.
Spolu s infrastrukturou jako kódem je snadné šablonovat a automatizovat definici a konfiguraci systému, což pomáhá týmům provozovat složitá prostředí ve velkém měřítku.
Nepřetržité monitorování znamená plný přehled o výkonu a stavu celého zásobníku aplikací v reálném čase. Tato viditelnost se pohybuje od základní infrastruktury, ve které běží aplikace, až po softwarové komponenty vyšší úrovně. Viditelnost se provádí prostřednictvím shromažďování telemetrie a metadat a nastavení výstrah pro předdefinované podmínky, které vyžadují pozornost operátora. Telemetrie se skládá z dat událostí a protokolů shromážděných z různých částí systému, které jsou uložené tam, kde se dají analyzovat a dotazovat.
Vysoce výkonné týmy DevOps zajišťují nastavení smysluplných upozornění s možností reakce a shromažďování bohatých telemetrických dat, takže mohou odvozovat přehledy z ohromného množství dat. Tyto přehledy pomáhají týmům zmírňovat případné problémy v reálném čase a zjišťovat, jak se aplikace dají vylepšit v budoucích vývojových cyklech.
Ve fázi plánování devOps týmy napadají, definují a popisují funkce a možnosti aplikací a systémů, které plánují sestavovat. Týmy sledují průběh úkolů s nízkou a vysokou úrovní členitosti– od jednotlivých produktů po více portfolií produktů. Týmy k plánování a flexibility a viditelnosti používají následující postupy DevOps:
- Vytváření backlogů
- Sledujte chyby.
- Správa agilního vývoje softwaru pomocí Scrumu
- Používejte panely Kanbanu.
- Vizualizujte průběh pomocí řídicích panelů.
Přehled několika znalostí a postupů, které Microsoft přijal k podpoře plánování DevOps napříč softwarovými týmy společnosti, najdete v tématu O tom, jak Microsoft plánuje s DevOps.
Fáze vývoje zahrnuje všechny aspekty vývoje softwarového kódu. V této fázi týmy DevOps dělají následující úkoly:
- Vyberte vývojové prostředí.
- Napište, otestujte, zkontrolujte a integrujte kód.
- Sestavte kód do artefaktů pro nasazení do různých prostředí.
- Ke spolupráci na kódu a práci paralelně používejte správu verzí, obvykle Git.
Rychlé inovace bez obětování kvality, stability a produktivity, týmů DevOps:
- Používejte vysoce produktivní nástroje.
- Automatizujte běžné a ruční kroky.
- Iterujte v malých přírůstcích prostřednictvím automatizovaného testování a kontinuální integrace (CI).
Doručování je proces konzistentního a spolehlivého nasazování aplikací do produkčních prostředí, ideálně prostřednictvím průběžného doručování (CD).
Ve fázi doručování týmy DevOps:
- Definujte proces správy verzí s jasnými fázemi ručního schvalování.
- Nastavte automatizované brány pro přesouvání aplikací mezi fázemi až do konečné verze pro zákazníky.
- Automatizujte procesy doručování, aby byly škálovatelné, opakovatelné, řízené a dobře otestované.
Doručování také zahrnuje nasazení a konfiguraci základní infrastruktury prostředí pro doručování. Týmy DevOps používají technologie, jako je infrastruktura jako kód (IaC), kontejnery a mikroslužby, aby poskytovaly plně řízená prostředí infrastruktury.
Sejf postupy nasazení můžou identifikovat problémy dříve, než ovlivní prostředí zákazníků. Tyto postupy pomáhají týmům DevOps poskytovat často s lehkostí, jistotou a klidem.
Základní principy a procesy DevOps, které microsoft vyvinul, aby poskytoval efektivní systémy doručování, jsou popsány v tématu Jak Microsoft dodává software s DevOps.
Fáze provozu zahrnuje údržbu, monitorování a řešení potíží s aplikacemi v produkčních prostředích, včetně hybridních nebo veřejných cloudů, jako je Azure. Týmy DevOps cílí na spolehlivost systému, vysokou dostupnost, silné zabezpečení a nulové výpadky.
Automatizované postupy doručování a bezpečného nasazení pomáhají týmům rychle identifikovat a zmírnit problémy, když k nim dojde. Udržování bdělosti vyžaduje bohatou telemetrii, výstrahy s možností akcí a úplný přehled o aplikacích a základních systémech.
Postupy, které Microsoft používá k provozování složitých online platforem, jsou popsány v tématu Jak Microsoft provozuje spolehlivé systémy s DevOps.
- Plánování efektivních úloh pomocí DevOps
- Vývoj moderního softwaru pomocí DevOps
- Poskytování kvalitních služeb pomocí DevOps
- Provoz spolehlivých systémů pomocí DevOps
- Řešení DevOps v Azure
- Cesta DevOps v Microsoftu
- Začínáme s DevOps s Azure
- Zabezpečení v DevOps (DevSecOps)
- Co je příprava platformy?
- Začínáme s Azure DevOps
- Představení DevOps Dojo: Vytváření efektivity, které podporují vaši firmu
- AZ-400: Začínáme s transformací DevOps
- Usnadnění komunikace a spolupráce
- Zkouška AZ-400: Navrhování a implementace řešení Microsoft DevOps
- AZ-400: Implementace zabezpečení a ověření základů kódu pro dodržování předpisů