Doporučení pro povolení automatizace

Platí pro toto doporučení kontrolního seznamu pro efektivitu provozu azure Well-Architected Framework:

OE:10 Navrhujte a implementujte automatizaci předem pro operace, jako jsou aspekty životního cyklu, spouštění a použití mantinely zásad správného řízení a dodržování předpisů. Nepokoušejte se automatizaci později dovybavovat. Zvolte funkce automatizace, které poskytuje vaše platforma.

Tato příručka popisuje doporučení pro návrh a implementaci úloh, které umožňují automatizaci. Navrhněte úlohy s ohledem na automatizaci, abyste měli jistotu, že se rutinní úlohy, jako jsou zřizování prostředků, škálování a nasazení, provádějí rychle a spolehlivě. Automatizace zjednodušuje úlohy údržby a umožňuje efektivněji aktualizovat, opravovat a upgradovat systémy.

Klíčové strategie návrhu

Návrh úloh

Úlohu můžete navrhnout tak, aby podporovala automatizaci od fáze ideace až po probíhající fázi zlepšování. Nejprve zvažte, jak chcete ve svých úlohách použít automatizaci, abyste zajistili, že nasazujete potřebné součásti. Zamyslete se nad úlohou z hlediska pilířů Well-Architected Framework, které vám pomůžou naplánovat typy automatizace, které budete používat. Můžete automatizovat řadu funkcí zabezpečení, spolehlivosti, výkonu, provozu a řízení nákladů.

Návrh s ohledem na automatizaci minimalizuje refaktoring po spuštění úlohy. Při rozhodování o tom, které nástroje pro automatizaci použít, zvažte své požadavky na úlohy. Můžou existovat nástroje pro automatizaci, které váš tým už zná. Přijetí těchto nástrojů vám může usnadnit cestu k automatizaci úloh, ale zároveň bude brát v úvahu jejich omezení a kompatibilitu s vaší cloudovou platformou. Některé nástroje pro automatizaci se například můžou dobře integrovat s nástroji Azure CLI, zatímco jiné můžou vyžadovat rozhraní REST. Vždy prozkoumejte nástroje, které poskytuje vaše cloudová platforma, abyste měli jistotu, že jsou kompatibilní a poskytují požadované funkce. Příklady způsobů, jak můžete proaktivně plánovat automatizaci, patří:

  • Nasazení: Automatizujte nasazení aplikací a infrastruktury, abyste zajistili předvídatelný standard. Naplánujte automatizované nasazení vývojem standardů nasazení, školením týmu o nástrojích, které budete používat, a implementací potřebné infrastruktury.

  • Ověření: Automaticky ověřte požadavky na dodržování předpisů pro vaši úlohu pomocí nástrojů orchestrace nebo zásad. Identifikujte vhodný ověřovací nástroj pro vaši úlohu a naplánujte implementaci požadovaných systémů, například serverů orchestrace.

  • Automatické škálování: Automatické škálování v celé infrastruktuře vám pomůže dosáhnout požadavků na spolehlivost a výkon. Kromě plánování redundance a přirozeného růstu byste měli předem přidělit adresní prostor IP adres a podsítě ve vaší úloze, abyste mohli zohlednit operace škálování.

Kompromis: Při navrhování úloh, které umožňují automatizaci, zvažte míru kontroly, kterou chcete zachovat, a efektivitu, kterou můžete automatizací dosáhnout. V některých případech nemusí být vaše úloha dostatečně vyspělá k automatizaci některých funkcí nebo můžete potřebovat úroveň flexibility, kterou automatizace neposkytuje.

Při návrhu úloh také zvažte sadu dovedností vašeho týmu. Pokud vysoký stupeň automatizace vyžaduje nástroje, které váš tým nepodporuje, možná budete muset použít méně komplexní návrh jako mezikrok.

Vylepšení průběžného zatížení

Jakmile úloha běží v cloudu, je důležité určit prioritu průběžného zlepšování. Sledujte úlohu v akci, analyzujte vzorce využití a zkontrolujte chování zákazníků související s vašimi úlohami, abyste identifikovali oblasti, ve kterých můžete automatizaci vylepšit. Hledejte způsoby, jak vylepšit stávající automatizaci nebo zavést novou automatizaci, abyste zlepšili prostředí vašich zákazníků. Můžete mít například povolené automatizované škálování, ale zvýšení zatížení je krátkodobé. Integrací automatizace škálování na více instancí můžete snížit využití procesoru, když zatížení klesne pod prahovou hodnotu.

Následující části této příručky nabízejí doporučení ke konkrétním oblastem automatizace, které vám můžou pomoct při návrhu a implementaci úloh.

Bootstrapping

Bootstrapping označuje aktualizace konfigurace prostředku, které se musí provést po jeho zřízení, ale dříve, než bude dostupný jako součást fondu úloh. Spouštění se často přidružuje k virtuálním počítačům, ale v rámci procesu nasazení je potřeba nastavit řadu dalších prostředků, včetně technologií PaaS (platforma jako služba) a technologií hostování kontejnerů, jako je Azure Kubernetes Service (AKS).

Vaše cloudová platforma vám může poskytovat řešení pro spouštění, která byste měli použít, pokud je to možné. Rozšíření virtuálních počítačů v Azure můžete například použít k provádění předdefinovaných změn konfigurace během procesu nasazení a přizpůsobení změn konfigurace vložením skriptů PowerShellu.

Ověřování a autorizace

Při návrhu strategie ověřování a autorizace vezměte v úvahu automatizaci. Je důležité zachovat nejvyšší úroveň zabezpečení v produkčních úlohách, ale to může mít vliv na automatizaci. Například použití biometrického nebo vícefaktorového ověřování zvyšuje složitost, se kterou je potřeba zohlednit v návrhu automatizace. Pro automatizované ověřování používejte nelidské zabezpečené účty, jako jsou spravované identity, identity úloh nebo certifikáty. Ujistěte se, že jste do automatizace zahrnuli správu tajných kódů a klíčů, aby se zvýšilo zabezpečení ověřování.

Návrh proměnlivosti do vašich úloh

Vyhýbejte se zbytečnému nasazování nové infrastruktury při malých změnách tím, že do artefaktů zabudujte flexibilitu. Například místo opětovného nasazení infrastruktury při změně příznaku funkce můžete použít parametry, které jsou nastavené pro aktualizaci komponent, jako jsou konfigurace aplikací. Nezapomeňte jasně definovat a zdokumentovat, jak se používá variabilita, abyste se vyhnuli nadměrnému využití a posunu konfigurace.

Sestavení řídicí roviny

Řídicí rovina je back-endový systém nebo sada nástrojů, které používáte ke správě aplikace a jejích závislostí prostřednictvím sjednoceného rozhraní. Sestavte řídicí rovinu jako rozhraní REST, rozhraní příkazového řádku nebo webhook pro podporu automatizace externími nástroji.

Zpřístupněte operace údržby prostřednictvím řídicí roviny, která umožňuje koordinovat komponenty úloh, jako jsou operace seřazeného zálohování a obnovení, spouštění, konfigurace, importu/exportu a dávkování. Při rozhodování o operacích, které se mají vystavit prostřednictvím řídicí roviny, pečlivě zvolte správnou úroveň členitosti.

Monitorování a protokolování

Vytvořte strategii monitorování pro zachycení metrik, které řídí požadovaný typ automatizace. Pomocí strukturovaného protokolování a vlastních metrik můžete poskytovat informace vyžadované automatizací ve formátu, který je snadno rozpoznatelný pomocí nástrojů pro automatizaci. Metriky, které zaznamenáte, by se měly spárovat s prahovými hodnotami definovanými v monitorovacím systému, které aktivují výstrahy a automatizované akce, jako jsou oznámení nebo mechanismy samoopravení, pokud je to vhodné. Další informace najdete v tématu Doporučení pro sebeopravení a sebezáchovu.

Životní cyklus uživatele

Navrhněte aplikaci a infrastrukturu tak, aby bylo možné automatizovat onboarding a offboarding uživatelů pro jednotlivce nebo zákazníky s více tenanty. Plánování automatizovaných aktualizací databází prostřednictvím skriptů, zřizování a rušení zřizování infrastruktury a správy přihlašovacích údajů a tajných kódů

Orchestrace a použití zásad

V rámci průběžné správy úloh můžete ve svých prostředcích automatizovat Desired State Configuration (DSC), abyste zajistili, že splňují požadavky na dodržování předpisů a obchodní požadavky. Automatizace DSC pomáhá zajistit rychlé zachycení a nápravu odchylek konfigurace. DSC můžete automatizovat pomocí nástrojů pro orchestraci nebo nástrojů pro správu zásad. Nástroje pro orchestraci, jako jsou Azure DevOps Services nebo Jenkins, si můžete představit jako nabízené mechanismy. Nástroje orchestrace umožňují vysdílení aktualizací konfigurace prostřednictvím události pracovního postupu, jako je ruční nebo automatizované nasazení. Tyto aktualizace se spouští jako součást pořadí úkolů definovaného ve skriptu nasazení. Nástroje pro správu zásad používají mechanismy založené na vyžádání obsahu, což znamená, že systém běží na základní úrovni vaší úlohy, která se pravidelně dotazuje úlohy, aby kontrolovala její stav ve vašem definovaném DSC. Pokud hlasování zjistí neshodu nebo posun konfigurace, nástroj provede nápravnou akci. Při rozhodování mezi orchestrací a nástroji pro správu zásad zvažte následující faktory:

  • Nástroje orchestrace nemají integrované funkce, které by proaktivně dotazovaly úlohy na posun konfigurace. Nástroje orchestrace by měly být integrované do kanálu kontinuální integrace a průběžného doručování (CI/CD), aby se zachoval standard pro nasazení a správu infrastruktury jako kódu (IaC). Výhodou použití nástrojů pro orchestraci je, že prostředky jsou při nasazení vždy plně nakonfigurované.

  • Nástroje pro správu zásad umožňují definovat zásady, které mají vliv na jednu nebo více skupin prostředků. Tyto zásady se vynucují, když se prostředek přihlásí k systému správy zásad. Výhodou použití správy zásad je, že tyto systémy nejsou řízené kódem, takže by mohly být pro operátory ve vašem týmu jednodušší je přijmout.

Při rozhodování mezi orchestrací nebo nástroji zásad zvažte, jestli se v době nasazení musí provést aktualizace konfigurace, které plánujete provést u nových prostředků. Zvažte také, jestli definování aktualizací v kódu odpovídá vašim provozním postupům a kolik typů prostředků plánujete nasadit. Pokud existuje mnoho různých konfigurací napříč typy prostředků, nástroje zásad můžou být jednodušším způsobem správy aktualizací.

Usnadnění Azure

Správa zásad

Azure Policy: Pomocí Azure Policy můžete vynucovat standardy a vyhodnocovat dodržování předpisů ve velkém. Azure Policy poskytuje agregované zobrazení pro vyhodnocení celkového stavu prostředí úloh na řídicím panelu dodržování předpisů. Nebo můžete použít Azure Policy k vyhodnocení jednotlivých prostředků a zásad na podrobné úrovni. Můžete také použít Azure Policy k automatické nápravě nových prostředků nebo k hromadné nápravě existujících prostředků.

Kompromis: Přesměrování automatizace z kanálu CI/CD na nástroje nebo služby platformy, jako je Azure Policy, může zjednodušit kanál, ale má nevýhody, jako je další zatížení správy při používání více systémů. Například selhání spuštění ve službě platformy se nezachytí v protokolech kanálu a bude se muset inteligentně doručovat do platformy pozorovatelnosti, aby byly informovány příslušné strany.

Automatizace spouštění

Rozšíření Azure Virtual Machines: rozšíření Virtual Machines jsou malé balíčky, které na virtuálních počítačích spouští konfiguraci a automatizaci po nasazení. Pro různé úlohy konfigurace je k dispozici několik rozšíření, například spouštění skriptů, konfigurace antimalwarových řešení a konfigurace řešení protokolování. Nainstalujte a spusťte tato rozšíření na virtuálních počítačích pomocí šablony Azure Resource Manager, Azure CLI, modulu Azure PowerShell nebo Azure Portal. Každý virtuální počítač má nainstalovaného agenta virtuálního počítače, který spravuje životní cyklus rozšíření.

Rozšíření virtuálních počítačů obvykle používají rozšíření vlastních skriptů k instalaci softwaru, spouštění příkazů a provádění konfigurací na virtuálním počítači nebo azure Virtual Machine Scale Sets. Tato rozšíření můžete nastavit tak, aby se spouštěla jako součást nasazení IaC, aby běžela na nových virtuálních počítačích pomocí agenta virtuálního počítače Azure. Rozšíření je také možné spouštět mimo nasazení Azure pomocí Azure CLI, modulu PowerShellu nebo Azure Portal.

Cloud-init: Cloud-init je oborový nástroj pro konfiguraci virtuálních počítačů s Linuxem při prvním spuštění. Podobně jako rozšíření vlastních skriptů Azure vám cloud-init umožňuje instalovat balíčky a spouštět příkazy na virtuálních počítačích s Linuxem. Cloud-init můžete použít k instalaci softwaru, konfiguraci systému a přípravě obsahu. Azure obsahuje mnoho imagí virtuálních počítačů s podporou cloud-init napříč známými linuxovými distribucemi. Úplný seznam najdete v tématu podpora cloud-init pro virtuální počítače v Azure.

Prostředek skriptu nasazení Azure: Při nasazování pomocí Azure možná budete muset spustit libovolný kód pro spuštění správy uživatelských účtů, podů Kubernetes nebo dotazování dat ze systému mimo Azure. Vzhledem k tomu, že žádná z těchto operací není přístupná prostřednictvím řídicí roviny Azure, vyžaduje se samostatný mechanismus. Další informace najdete v tématu Microsoft.Resources deploymentScripts. Stejně jako jakýkoli jiný prostředek Azure i prostředek skriptu nasazení:

  • Dá se použít v šabloně Azure Resource Manager.

  • Obsahuje závislosti šablon Azure Resource Manager v jiných prostředcích.

  • Využívá vstup a vytváří výstup.

  • K ověřování používá spravovanou identitu přiřazenou uživatelem.

Po nasazení skript nasazení spustí příkazy a skripty PowerShellu nebo Azure CLI. Spuštění skriptů a protokolování je možné sledovat v Azure Portal nebo pomocí Azure CLI a modulu PowerShellu. Proměnné pro prostředí spuštění, možnosti časového limitu a správu prostředků po selhání skriptu můžete přizpůsobit.

Spouštění clusterů AKS pomocí GitOps: Nově zřízený cluster AKS můžete spustit pomocí GitOps a rozšíření clusteru Flux v2 deklarací nastavení konfigurace v úložištích GitHub. Vzhledem k tomu, že se soubory clusteru AKS ukládají v úložišti GitHub, používají se jejich verze a změny mezi verzemi se snadno sledují. Kontrolery Kubernetes běží v clusterech a průběžně slaďují stav clusteru s požadovaným stavem deklarovaným v úložišti Git vyžádáním souborů z úložiště. Další informace najdete v tématu Referenční architektura standardních hodnot AKS.

Správa konfigurace

Azure Automation State Configuration je nástroj pro správu DSC spravovaný funkcí konfigurace hosta Azure Policy, který můžete použít k zápisu, správě a kompilaci konfigurací PowerShell DSC pro uzly v jakémkoli cloudovém nebo místním datacentru. Tento nástroj můžete také použít k importu prostředků DSC a přiřazení konfigurací cílovým uzlům.

Azure App Configuration je služba, kterou můžete použít k centrální správě nastavení aplikace a příznaků funkcí. Funguje s Azure Key Vault, takže můžete bezpečně spravovat širokou škálu konfigurací aplikací ve vašem prostředí.

Change Tracking a Inventory

Sledování změn a inventarizace pomocí agenta monitorování Azure sleduje odchylky konfigurace operačního systému ve virtuálních počítačích. Tím se automatizuje detekce posunu, inventarizace spuštěných služeb a nainstalovaných balíčků na virtuálních počítačích ve vaší úloze. Mezi položky sledované sledováním změn a inventářem patří:

  • Nainstalovaný software pro Windows a Linux
  • Klíčové soubory ve Windows a Linuxu
  • Klíče registru windows
  • Služby Windows a linuxové procesy démon

Kontrolní seznam efektivity provozu

Projděte si kompletní sadu doporučení.