vzor DevOps

Kód z jednoho umístění a nasazení do několika cílů ve vývojových, testovacích a produkčních prostředích, která můžou být ve vašem místním datacentru, privátních cloudech nebo veřejném cloudu.

Kontext a problém

Kontinuita, zabezpečení a spolehlivost nasazení aplikací jsou nezbytné pro organizace a důležité pro vývojové týmy.

Aplikace často vyžadují refaktorovaný kód ke spuštění v každém cílovém prostředí. To znamená, že aplikace není zcela přenosná. Musí se aktualizovat, testovat a ověřit při procházení jednotlivých prostředí. Například kód napsaný ve vývojovém prostředí se pak musí přepsat, aby fungoval v testovacím prostředí a přepsal ho, až se nakonec přistane v produkčním prostředí. Kromě toho je tento kód speciálně svázaný s hostitelem. Tím se zvýší náklady a složitost údržby aplikace. Každá verze aplikace je svázána s jednotlivými prostředími. Vyšší složitost a duplikace zvyšují riziko zabezpečení a kvality kódu. Kromě toho se kód nedá snadno nasadit, když odeberete neúspěšné hostitele obnovení nebo nasadíte další hostitele pro zpracování nárůstu poptávky.

Řešení

Model DevOps umožňuje vytvářet, testovat a nasazovat aplikaci, která běží na více cloudech. Tento model se skládá z praxe kontinuální integrace a průběžného doručování. Díky průběžné integraci se kód sestaví a otestuje pokaždé, když člen týmu potvrdí změnu správy verzí. Průběžné doručování automatizuje jednotlivé kroky z sestavení do produkčního prostředí. Tyto procesy společně vytvářejí proces vydávání verzí, který podporuje nasazení napříč různými prostředími. V tomto vzoru můžete vytvořit koncept kódu a pak nasadit stejný kód do místního prostředí, různých privátních cloudů a veřejných cloudů. Rozdíly v prostředí vyžadují změnu konfiguračního souboru, nikoli změny kódu.

DevOps pattern

S konzistentní sadou vývojových nástrojů v místních, privátních cloudech a prostředích veřejného cloudu můžete implementovat praxi průběžné integrace a průběžného doručování. Aplikace a služby nasazené pomocí modelu DevOps jsou zaměnitelné a můžou běžet v libovolném z těchto umístění a využívat funkce a funkce místního a veřejného cloudu.

Používání kanálu verze DevOps vám pomůže:

  • Zahajte nové sestavení založené na potvrzeních kódu do jednoho úložiště.
  • Automaticky nasaďte nově vytvořený kód do veřejného cloudu pro testování přijetí uživatelů.
  • Automaticky se nasadí do privátního cloudu, jakmile váš kód projde testováním.

Problémy a důležité informace

Model DevOps je určený k zajištění konzistence napříč nasazeními bez ohledu na cílové prostředí. Možnosti se ale liší v cloudových a místních prostředích. Zvažte následující skutečnosti:

  • Jsou funkce, koncové body, služby a další prostředky ve vašem nasazení dostupné v cílových umístěních nasazení?
  • Jsou artefakty konfigurace uložené v umístěních, která jsou přístupná napříč cloudy?
  • Budou parametry nasazení fungovat ve všech cílových prostředích?
  • Jsou vlastnosti specifické pro prostředky dostupné ve všech cílových cloudech?

Další informace najdete v tématu Vývoj šablon Azure Resource Manageru pro konzistenci cloudu.

Při rozhodování o tom, jak tento model implementovat, zvažte navíc následující body:

Škálovatelnost

Systémy automatizace nasazení jsou klíčovým řídicím bodem ve vzorech DevOps. Implementace se můžou lišit. Výběr správné velikosti serveru závisí na velikosti očekávané úlohy. Virtuální počítače stojí více pro škálování než kontejnery. Pokud chcete ke škálování použít kontejnery, musí ale být kontejnery využité při procesu sestavování.

Dostupnost

Dostupnost v kontextu devPatternu znamená, že dokáže obnovit všechny informace o stavu přidružené k vašemu pracovnímu postupu, jako jsou výsledky testů, závislosti kódu nebo jiné artefakty. Při vyhodnocování požadavků na dostupnost vezměte v úvahu dvě běžné metriky:

  • Cíl doby obnovení (RTO) určuje, jak dlouho můžete bez systému přejít.

  • Cíl bodu obnovení (RPO) označuje, kolik dat si můžete dovolit ztratit, pokud přerušení služby ovlivňuje systém.

V praxi rtO a RPO znamenají redundanci a zálohování. V globálním cloudu Azure není dostupnost otázkou obnovení hardwaru – to je součástí Azure – ale spíše zajištění stavu vašich DevOps systémů. V Azure Stack Hubu může být potřeba zvážit obnovení hardwaru.

Dalším důležitým aspektem při návrhu systému používaného pro automatizaci nasazení je řízení přístupu a správná správa práv potřebných k nasazení služeb do cloudových prostředí. Jaká práva jsou potřebná k vytvoření, odstranění nebo úpravě nasazení? Například jedna sada práv se obvykle vyžaduje k vytvoření skupiny prostředků v Azure a jiné k nasazení služeb ve skupině prostředků.

Možnosti správy

Návrh libovolného systému založeného na vzoru DevOps musí zvážit automatizaci, protokolování a upozorňování pro každou službu v portfoliu. Používejte sdílené služby, tým aplikací nebo jak, a sledujte zásady zabezpečení a zásady správného řízení.

Nasazení produkčních prostředí a vývojových/testovacích prostředí v samostatných skupinách prostředků v Azure nebo Azure Stack Hubu Pak můžete monitorovat prostředky jednotlivých prostředí a shrnovat fakturační náklady podle skupiny prostředků. Prostředky můžete také odstranit jako sadu, což je užitečné pro testovací nasazení.

Kdy se má tento model použít

Tento vzor použijte, pokud:

  • Kód můžete vyvíjet v jednom prostředí, které vyhovuje potřebám vašich vývojářů, a nasadit ho do prostředí specifického pro vaše řešení, kde může být obtížné vyvíjet nový kód.
  • Můžete použít kód a nástroje, které by chtěli vývojáři, pokud budou moct sledovat proces kontinuální integrace a průběžného doručování v DevOps Vzoru.

Tento model se nedoporučuje:

  • Pokud nemůžete automatizovat infrastrukturu, zřizování prostředků, konfiguraci, identitu a úlohy zabezpečení.
  • Pokud týmy nemají přístup k hybridním cloudovým prostředkům k implementaci přístupu CI/CD (Continuous Integration/ Continuous Development).

Další kroky

Další informace o tématech zavedených v tomto článku:

Až budete připraveni otestovat příklad řešení, pokračujte v průvodci nasazením řešení DevOps hybridní ci/CD. Průvodce nasazením obsahuje podrobné pokyny k nasazení a testování jeho součástí. Dozvíte se, jak nasadit aplikaci do Azure a azure Stack Hubu pomocí kanálu hybridní kontinuální integrace a průběžného doručování (CI/CD).