Co je DevOps?

DevOps sjednocuje lidi, procesy a technologie a zákazníkům rychleji přináší lepší produkty

Definice DevOps

Označení DevOps, které vzniklo spojením slov vývoj (development, Dev) a provoz (operations, Ops), představuje spojení lidí, procesů a technologií, jehož cílem je zajistit průběžné doručování kvalitních produktů a služeb zákazníkům.

Co DevOps znamená pro týmy? DevOps umožňuje dříve izolovaným rolím (vývoj, provoz IT, kontrola kvality a zabezpečení) vzájemnou spolupráci a koordinaci s cílem poskytovat lepší a spolehlivější produkty. Přechodem na kulturu DevOps spolu s využitím nástrojů a postupům týmy získávají schopnost lépe reagovat na potřeby zákazníků, zvýšit důvěru v aplikace, které vytvářejí, a rychleji dosahovat obchodních cílů.

Výhody DevOps

Týmy, které přejdou na nástroje, postupy a kulturu DevOps, dosahují vysokých výkonů a rychleji vytvářejí lepší produkty. Výsledkem je vyšší spokojenost zákazníků. Tato vylepšená spolupráce a produktivita je také nezbytná pro dosažení obchodních cílů, jako jsou:

Zkrácení doby uvedení na trh

Přizpůsobení trhu a konkurenci

Zajištění spolehlivosti a stability systému

Zkrácení průměrné doby obnovení

DevOps a životní cyklus aplikací

DevOps ovlivňuje životní cyklus aplikací prostřednictvím fází plánování, vývoje, doručování a provozu. Jednotlivé fáze se spoléhají na ostatní a nejsou určené pro konkrétní role. V rámci skutečné kultury DevOps je každá role v té či oné míře zapojená ve všech fázích.

Plán

Ve fázi plánování týmy DevOps vymýšlejí, definují a popisují funkce a možnosti aplikací a systémů, které vytvářejí. Sledují průběh na několika úrovních, od úloh pro jednotlivé produkty až po úlohy vztahující se k celým portfoliím různých produktů. Vytváření backlogů, sledování chyb, správa agilního vývoje softwaru s využitím Scrumu, využití panelů Kanbanu a vizualizace průběhu prostřednictvím řídicích panelů – to jsou jen některé z mnoha způsobů, jimiž týmy DevOps agilně a transparentně plánují.

Vyvíjejte

Vývojová fáze zahrnuje všechny aspekty kódování (psaní, testování, kontrolu i integraci kódu jednotlivými členy týmu) a také začlenění tohoto kódu do artefaktů buildu, které se dají nasadit do různých prostředí. Týmy DevOps chtějí rychle inovovat, aniž by přitom museli obětovat kvalitu, stabilitu nebo produktivitu. K tomuto účelu využívají vysoce produktivní nástroje, automatizují rutinní a ruční kroky a iterují po malých přírůstcích prostřednictvím automatizovaného testování a kontinuální integrace.

Doručování

Doručení je proces konzistentního a spolehlivého nasazení aplikací do produkce. Fáze doručování také zahrnují nasazení a konfiguraci plně řízené základní infrastruktury, která tvoří tato prostředí.

Ve fázi doručování týmy definují proces správy vydaných verzí s jasně definovanými fázemi ručního schvalování. Nastavují také automatizované brány, které přesouvají aplikace mezi jednotlivými fázemi, než se zpřístupní zákazníkům. Díky automatizaci jsou tyto procesy škálovatelné, opakovatelné a kontrolovatelné. To znamená, že týmy využívající DevOps mohou často doručovat snadno, s jistotou a klidem.

Provoz

Provozní fáze zahrnuje údržbu a monitorování aplikací a řešení problémů s nimi v provozních prostředích. Při příjímání postupů DevOps týmy pracují na tom, aby zajistily spolehlivost a vysokou dostupnost systémů. Jejich cílem jsou nulové prostoje se současným zajištěním zabezpečení a zásad správného řízení. Týmy DevOps se snaží odhalit problémy dřív, než ovlivní prostředí zákazníků, a pokud nastanou, rychle je zmírnit. Zajištění této ostražitosti vyžaduje bohatou telemetrii, upozorňování s možností reakce a kompletní přehled o aplikacích a použitém systému.

Kultura DevOps

Přechod na postupy DevOps automatizuje a optimalizuje procesy prostřednictvím technologií, na začátku všeho stojí kultura uvnitř organizace a také lidé, kteří v ní mají svou roli. Kultivace kultury DevOps vyžaduje zásadní změny v tom, jak lidé pracují a spolupracují. Ale když organizace přistoupí na kulturu DevOps, mohou vytvářet prostředí umožňující rozvoj vysoce výkonných týmů.

Spolupráce, transparentnost a zajištění shody

Jedním z charakteristických znaků zdravé kultury DevOps je spolupráce mezi týmy, která je založená na transparentnosti. Různé týmy, jako je třeba vývoj a provoz IT, musí vzájemně sdílet své problémy, priority a procesy DevOps. Tyto týmy také musí společně plánovat práci a shodnout se ve vztahu k podnikání na cílech a měřítkách úspěchu.

Posun v rozsahu a zodpovědnostech

Jak týmy nacházejí shodu, přebírají vlastnictví a zapojují se do dalších fází životního cyklu, nejenom do těch, které jsou pro jejich role klíčové. 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í

Týmy DevOps zůstávají flexibilní díky vydává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é vzdělávání

Vysoce výkonné týmy DevOps se orientují na růst. Rychle se adaptují prostřednictvím zpětné vazby a zjištěné poznatky začleňují do svých procesů, neustále se zlepšují, zvyšují spokojenost zákazníků a zrychlují inovace a přizpůsobení aktuálnímu trhu. DevOps je cesta, a proto vždycky nabízí příležitost k růstu.

Přečtěte si, jak týmy napříč Microsoftem implementovaly kulturu DevOps

Další informace

Postupy DevOps

Vytvořenou kulturu DevOps týmy uvedou do praxe implementací konkrétních postupů v průběhu životního cyklu aplikací. 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.

Průběžná integrace a průběžné nasazování (CI/CD)

Kontinuální integrace je postup vývoje softwaru, při kterém vývojáři často začleňují změny kódu do hlavní větve kódu. Kontinuální integrace využívá automatizované testy, které se spustí vždy při potvrzení nového kódu. to znamená, že kód v hlavní větvi je vždy stabilní.

Průběžné doručování je časté automatizované nasazování nových verzí aplikace do provozního prostředí. Automatizací kroků nutných k nasazení týmy omezují výskyt případných problémů, ke kterým by mohlo během nasazení dojít, a umožňují častější aktualizace.

Po nasazení obou postupů je výsledným procesem CI/CD, který zahrnuje kompletní automatizaci všech kroků mezi potvrzením kódu a nasazením do produkce. Implementace CI/CD umožňuje týmům soustředit se na sestavování kódu, snižuje nutnou režii a omezuje případné lidské chyby při ručních rutinních krocích. Díky CI/CD je také proces nasazování nového kódu mnohem rychlejší a méně rizikový. Nasazování, ke kterému dochází častěji a s menšími přírůstky, pomáhá týmům zajistit větší flexibilitu a produktivitu získat větší jistotu při spouštění kódu.

Správa verzí

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 prostřednictvím systémů správy verzí, jako je třeba Git, které při vytváření kódu umožňují spolupráci několika vývojářů. 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.

Další informace o Gitu

Agilní vývoj softwaru

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.

Zjistit, jak agilní metodologie a DevOps spolupracují

Infrastruktura jako kód

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.

Správa konfigurace

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ý.

Definice a konfigurace systému využívané současně s infrastrukturou jako kódem je možné snadno automatizovat a vytvářet na jejich základě šablony. Ty pak týmům pomáhají provozovat složitá prostředí ve velkém měřítku.

Průběžné sledování

Průběžné monitorování znamená zajištění kompletního přehledu o výkonu a stavu celého zásobníku aplikací, od základní infrastruktury, ve které jsou aplikace spuštěné, až po softwarové komponenty na vyšší úrovni, a to v reálném čase. Tato transparentnost zahrnuje kolekci telemetrie a metadat a také nastavení upozornění pro předem definované 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.

Nástroje DevOps

Týmy mají k dispozici celou řadu nástrojů DevOps, které jim pomáhají zajistit kulturu DevOps v jejich organizaci. Většina týmů využívá několik nástrojů a sestavuje si vlastní sady nástrojů, které odpovídají jejich potřebám pro jednotlivé fáze životního cyklu aplikací. Přechod na konkrétní nástroj nebo technologii sice není to samé jako přechod na DevOps,ale když je kultura DevOps k dispozici a jsou definované procesy, lidé mohou implementovat a zjednodušovat postupy DevOps, pokud si zvolí vhodné nástroje. Získejte nástroje pro zavedení DevOps do praxe:

DevOps a cloud

Přechod na cloud od základu změnil způsob, jakým týmy sestavují, nasazují a provozují aplikace. Současně s přechodem na DevOps získávají týmy také další příležitost k vylepšení svých postupů a poskytování lepších služeb pro zákazníky.

Flexibilita cloudu

Díky možnosti rychle zřizovat a konfigurovat cloudová prostředí ve více oblastech s neomezenými prostředky týmy získávají flexibilitu při nasazování svých aplikací. Týmy si teď už nemusí kupovat, konfigurovat a spravovat fyzické servery, ale během několika minut vytvoří složitá cloudová prostředí a když je přestanou potřebovat, vypnou je.

Kubernetes

Současně s tím, jak stále víc aplikací využívá technologii kontejnerů, se standardním řešením pro orchestraci kontejnerů ve velkém měřítku stává Kubernetes. Jedním ze základních postupů se v éře Kubernetes stává automatizace procesů při vytváření a nasazování kontejnerů přes kanály CI/CD a monitorování těchto kontejnerů v provozu.

Architektura bez serveru

Vzhledem k tomu, že většina režie spojená se správou infrastruktury se přesouvá na poskytovatele cloudu, týmy se místo na infrastrukturu mohou soustředit na svoje aplikace. Bezserverová architektura nabízí možnost spouštět aplikace bez konfigurace a údržby serverů. Některé možnosti snižují složitost a rizika spojená s nasazováním a provozem.

Začněte s DevOps

Vzhledem k široké škále dostupných postupů a řešení se technologie DevOps mohou na první pohled zdát nezvládnutelné. Klíčem je začít v malém a učit se od ostatních.

Nejčastější dotazy

  • DevOps využívají různé role ve vaší organizaci a vyžaduje těsnou spolupráci několika z nich. Role DevOps ve většině případů zahrnují vývoj, IT, provoz, zabezpečení a podporu.

    Naučte se vytvářet postupy DevOps.

  • DevOps se neomezuje na jednu roli. Kulturu DevOps musí za svou přijmout každý, kdo se zapojí do libovolné části životního cyklu aplikace. V některých organizacích ale existuje několik osob nebo týmů, které se zaměřují výhradně na podporu automatizace, definování postupů a implementaci kanálů CI/CD. Oficiální označení těchto rolí někdy je technik DevOps nebo specialista DevOps.
  • Přechod na DevOps ve velké organizaci může být mimořádně náročný. Změna kultury velké organizace a standardizace procesů a nástrojů vyžadují trpělivost a vytrvalost. Ve většině velkých organizací najdeme uživatele postupů DevOps v rané fázi. Jak tyto postupy postupně vyzrávají a začínají přinášet pozitivní výsledky, obvykle za nimi následují i další týmy a zahajují svou cestu DevOps.

    Přečtěte si, jak týmy napříč Microsoftem přijaly kulturu DevOps.

  • Skutečný význam DevOps spočívá v zajištění trvalé hodnoty pro zákazníky. Výsledky přechodu na DevOps se musí měřit ve vztahu k obchodním cílům. Týmy DevOps nacházejí shodu na těchto cílech a dosahují jich pomocí krátkých cyklů vydávání. Tyto cykly umožňují flexibilně reagovat na trh a průběžně se učit prostřednictvím zpětné vazby od zákazníků.
  • DevOps a agilita jsou moderní architektury pro vývoj softwaru, jejichž cílem je vytvoření produktu, uvedení na trh nebo vydání verze. DevOps je kultura, která podporuje spolupráci mezi všemi rolemi, které se podílejí na vývoji a údržbě softwaru. Agilitu je možné popsat jako metodologii vývoje, jejímž cílem je udržovat produktivitu a zrychlit vydávání verzí v prostředí, kde je změna potřeb běžnou realitou. DevOps a agilita se vzájemně nevylučují a často se využívají společně.

    Naučte se začleňovat DevOps a agilní metodologie.

  • Průběžné doručování a nasazování společně s kontinuální integrací jsou postupy, které automatizují fáze doručování softwaru.