Spolehlivost v Azure Automation

Azure Automation je služba, která vaším jménem spouští úlohy správy. Definujete skripty označované jako runbooky, které chcete spustit, a Azure Automation poskytuje infrastrukturu pro spuštění těchto skriptů. Tento článek se zaměřuje na automatizaci procesů, což je základní funkce služby. Hybridní pracovní procesy runbooků, které běží na infrastruktuře spravované zákazníkem, jsou mimo rozsah tohoto článku.

Při používání Azure je spolehlivost sdílenou odpovědností. Microsoft nabízí celou řadu možností, které podporují odolnost a obnovení. Zodpovídáte za pochopení toho, jak tyto možnosti fungují ve všech službách, které používáte, a výběrem možností, které potřebujete ke splnění vašich obchodních cílů a cílů dostupnosti.

Tento článek popisuje, jak zajistit odolnost služby Azure Automation vůči různým potenciálním výpadkům a problémům, včetně přechodných chyb, výpadků zón dostupnosti, výpadků oblastí a údržby služeb. Popisuje také možnosti zálohování a obnovení a klíčové informace o smlouvě o úrovni služeb (SLA) Azure Automation.

Doporučení pro produkční nasazení pro spolehlivost

Pro produkční úlohy, které používají automatizaci procesů, postupujte podle těchto doporučení:

  • Zpracování přechodných chyb, ke kterým dochází při interakci runbooků s Azure službami a rozhraními API, přidáním vhodné logiky opakování do vašich skriptů

  • Navrhněte runbooky tak, aby byly odolné vůči přerušení. Pomocí kontrolních bodů udržujte průběh restartování úloh a pokud potřebujete uložit stav, použijte externí úložiště.

Přehled architektury spolehlivosti

Tato část popisuje některé důležité aspekty fungování služby, které jsou z hlediska spolehlivosti nejrelevantní. Tato část představuje logickou architekturu, která obsahuje některé prostředky a funkce, které nasazujete a používáte. Popisuje také fyzickou architekturu, která poskytuje podrobnosti o tom, jak služba funguje v zákulisí.

Logická architektura

Při nasazování Azure Automation vytvoříte účet Automation, což je logický kontejner pro prostředky, které spouští vaši automatizaci.

  • Runbooks, které představují úkoly, jež se mají provést. Textové runbooky jsou skripty napsané v PowerShellu nebo Python. Grafické runbooky se vytvářejí pomocí grafického editoru.
  • Prostředky, které runbooky sdílejí, včetně modulů, připojení, přihlašovacích údajů, certifikátů a proměnných.
  • Prostředky, které inicializuje spouštění runbooků, včetně plánů a sledovacích procesů

Další informace o těchto prostředcích najdete v tématu Spouštění runbooků v Azure Automation.

Tento článek se zabývá spolehlivostí a odolností těchto funkcí, které jsou součástí automatizace procesů v Azure Automation.

Fyzická architektura

Runbooky se spouštějí na výpočetní infrastruktuře. Pro automatizaci procesů existují dva modely nasazení:

  • Cloudové úlohy (spravované Microsoft): Ve výchozím nastavení běží runbooky na cloudové infrastruktuře poskytované Microsoft. Microsoft zodpovídá za vysokou dostupnost a správu této infrastruktury. Když odešlete úlohu runbooku, Azure Automation přidělí cloudovou úlohu ze svého fondu dostupných výpočetních prostředků, spustí runbook a pak vrátí prostředek do fondu.

    Cloudové úlohy můžou být někdy přerušeny během běhu. Navrhněte runbooky podle předpokladu, že se úloha může restartovat v jiné infrastruktuře a že všechna data zapsaná do dočasného úložiště v předchozí instanci už nebudou přístupná.

  • Hybridní pracovní procesy runbooků: Volitelně můžete nakonfigurovat vlastní výpočetní infrastrukturu (virtuální počítače v Azure, v jiných cloudových prostředích nebo v místním prostředí) k spouštění runbooků. Když používáte hybridní pracovní procesy sady Runbook Worker, jste zodpovědní za jejich konfiguraci tak, aby splňovaly vaše požadavky na spolehlivost. Hybridní pracovníci runbooku nejsou předmětem tohoto článku.

Odolnost proti přechodným chybám

Přechodné chyby jsou krátká, přerušovaná selhání ve složkách. V distribuovaném prostředí, jako je cloud, se vyskytují často a jsou normální součástí provozu. Přechodné chyby se opravují po krátké době. Je důležité, aby vaše aplikace mohly zpracovávat přechodné chyby, obvykle opakováním ovlivněných požadavků.

Všechny aplikace hostované v cloudu by měly postupovat podle Azure pokynů pro zpracování přechodných chyb, když komunikují s libovolnými rozhraními API, databázemi a dalšími komponentami hostovanými v cloudu. Další informace najdete v tématu Doporučení pro zpracování přechodných chyb.

Zodpovídáte za psaní runbooků, které zpracovávají přechodné chyby ve službách a rozhraních API, se kterými pracují. Pro textové runbooky implementujte logiku opakování pomocí smyček a zpracování chyb. Pokyny a příklady najdete v tématu Zpracování přechodných chyb ve skriptu závislém na čase. U grafických runbooků nakonfigurujte chování při opakování pro aktivity v toku práce. Podrobnosti o konfiguraci najdete v tématu Aktivita opakování v grafických runboocích.

Údržba infrastruktury nebo jiné události platformy mohou přerušit úlohy sady Runbook. Navrhněte runbooky tak, aby si poradily s těmito přerušeními:

  • Zaveďte kontrolní body. V případě runbooků pracovních postupů PowerShellu můžete pomocí kontrolních bodů uložit průběh v klíčových bodech pracovního postupu. Pokud je úloha přerušena a restartována, může pokračovat z posledního kontrolního bodu, a ne začít znovu. Další informace naleznete v tématu Použití kontrolních bodů v pracovním postupu.

  • Seznamte se s limity úloh. Cloudové úlohy mají omezení délky běhu podle zásady spravedlivého podílu. Podrobnosti o limitech spuštění úloh a o tom, jak jsou vynucovány, najdete v tématu Spuštění runbooku.

  • Uložte trvalý stav externě. Úlohy neudržuje stav mezi spuštěními. Pokud je úloha přerušena a restartuje se v jiné instanci, může dojít ke ztrátě všeho zapsaného do dočasného úložiště při prvním spuštění. Pokud potřebujete uchovávat data mezi spuštěními úloh, uložte je do externího úložiště, jako je Azure Blob Storage nebo databáze.

Odolnost proti chybám zóny dostupnosti

Zóny dostupnosti jsou fyzicky oddělené skupiny datacenter v rámci oblasti Azure. Když jedna zóna selže, mohou služby přejít na jednu ze zbývajících zón.

V podporovaných oblastech jsou účty Automation a cloudové úlohy zónově redundantní, což znamená, že služba rozděluje vaše prostředky do několika zón dostupnosti. Microsoft automaticky povolí redundanci zón a nevyžaduje žádnou konfiguraci.

Diagram znázorňující účet Automation, který je automaticky odolný vůči zónám, včetně runbooků odolných vůči zónám a dalších prostředků

Requirements

Podpora oblastí: Když nasadíte účet Automation do jedné z následujících oblastí, bude automaticky zónově redundantní:

Severní a Jižní Amerika Evropa Střední východ Africa Asie a Tichomoří
Brazílie – jih Francie – střed Izrael – střed Jižní Afrika – sever Austrálie – východ
Kanada – střed Německo – středozápad Katar – střed Indie – střed
Střed USA Itálie – sever Čína – sever 3
USA – východ​ Severní Evropa Východní Asie
USA – východ 2 Norsko – východ Japonsko – východ
Střed USA – jih Polsko – střed Korea – střed
USGov Virginie Švédsko – střed Jihovýchodní Asie
USA – západ 2​ Velká Británie – jih
USA – západ 3 Západní Evropa

Aktuální seznam podporovaných oblastí najdete v tématu Podpora zón dostupnosti pro Azure Automation.

Cost

Za redundanci zón se neúčtují žádné další poplatky. Pro automatizaci procesů je fakturace založená na době, po kterou vaše úlohy a sledovací procesy běží. Další informace najdete v článku Informace o cenách služby Azure Automation.

Konfigurujte podporu zón dostupnosti

Když vytvoříte účet Automation v podporované oblasti, bude automaticky zónově redundantní. Redundanci zón nemůžete zakázat. Další informace najdete v tématu Podpora zón dostupnosti pro Azure Automation.

Chování, když jsou všechny zóny v pořádku

Tato část popisuje, co očekávat, když je váš účet Automation zónově redundantní a všechny zóny dostupnosti v dané oblasti jsou funkční.

  • Operace napříč zónami: Operace správy účtů Automation a cloudové úlohy automaticky distribuují mezi zóny dostupnosti v dané oblasti. Požadavek nebo úloha může zpracovat jakákoli instance v jakékoli zóně dostupnosti.

  • Replikace dat mezi zónami: Konfigurace účtu Automation, skripty runbooku a další prostředky, které nasadíte do účtu Automation, se synchronně replikují napříč několika zónami dostupnosti.

Chování při selhání zóny

Tato část popisuje, co očekávat, když je váš účet Automation zónově redundantní a v jedné ze zón dostupnosti v dané oblasti dojde k výpadku.

  • Detekce a odpověď: Platforma Azure Automation zodpovídá za detekci selhání v zóně dostupnosti. Nemusíte dělat nic, abyste zahájili převzetí zóny.
  • Oznámení: Microsoft vás při výpadku zóny automaticky neoznámí. Můžete ale použít Azure Service Health k pochopení celkového stavu služby, včetně jakýchkoli selhání zón, a můžete nastavit upozornění služby Service Health, která vás upozorní na problémy.
  • Aktivní požadavky: Může dojít k přerušení všech probíhajících úloh v zóně, která není v pořádku. Azure Automation automaticky spustí novou úlohu pomocí infrastruktury v zónách, které jsou v pořádku. Navrhněte runbooky tak, aby byly odolné vůči přechodným chybám a přerušením , aby se mohly bezpečně restartovat.

  • Očekávaná ztráta dat: Spuštění úloh neuchovávají stav, takže selhání zóny se neočekává, že způsobí ztrátu dat u probíhajících úloh. Pokud úloha potřebuje ukládat data, která může použít k zotavení z přerušení, jako jsou kontrolní body, uložte tyto informace do trvalé cloudové služby úložiště, jako je Azure Storage nebo databáze.

    Konfigurace účtu Automation a data runbooku se replikují mezi zónami a zůstávají přístupná i v případě nedostupnosti jedné zóny.

  • Očekávaný výpadek: Během výpadku zóny může dojít k krátkému přerušení vašeho účtu Automation, zatímco služba zjistí selhání a redistribuuje úlohy do zón, které jsou v pořádku.

  • Přerozdělování: Služba automaticky vyrovná kapacitu ve zbývajících zónách, které jsou v pořádku. Nová spuštění úloh, sledovací proces a plány se budou dál spouštět v infrastruktuře v zónách, které jsou v pořádku. Obnovení nezávisí na neúspěšné zóně, která se vrací do služby.

Obnovení zóny

Když se zóna, která selhala, vrátí do služby, Azure Automation ji automaticky znovu integruje do rotace zóny. Od vás není nutná žádná akce. Služba monitoruje stav zóny a po obnovení normálního provozu znovu rozděluje pracovní zátěž mezi všechny zóny.

Testování poruch zón

Azure Automation spravuje směrování provozu, převzetí služeb při selhání a obnovu zón pro zónově redundantní prostředky. Nemusíte nic inicializovat a nemusíte ověřovat procesy selhání zóny dostupnosti. Otestujte runbooky a ověřte, že jsou odolné vůči přerušení.

Odolnost proti selháním v celé oblasti

Azure Automation je služba s jednou oblastí. Pokud oblast přestane být dostupná, váš účet Automation je také nedostupný.

Vlastní řešení pro více regionů pro odolnost systémů

Samostatné účty Automation můžete nasadit do několika oblastí a v případě potřeby mezi nimi přepínat. Zodpovídáte za nasazení účtů v jednotlivých oblastech, jejich správnou konfiguraci, rozdělování požadavků mezi účty a řešení přepnutí při selhání, pokud některá oblast není dostupná. Podrobné informace o přístupech, které můžete zvážit, najdete v tématu Zotavení po havárii pro Azure Automation.

Zálohování a obnovení

U většiny řešení byste se neměli spoléhat výhradně na zálohy. Místo toho využijte další funkce popsané v tomto průvodci k podpoře vašich požadavků na odolnost. Zálohy ale chrání před některými riziky, která jiné přístupy nechrání. Další informace najdete v tématu Co jsou redundance, replikace a zálohování?.

Azure Automation neposkytuje integrovanou zálohu pro konfiguraci účtu Automation ani obsah runbooku. Uchovávejte své vlastní kopie mimo službu, abyste je mohli v případě potřeby znovu nasadit.

  • Použijte infrastrukturu jako kód (IaC) ke konfiguraci účtu Automation. Definujte účty služby Automation a související prostředky v souborech Bicep, šablonách ARM nebo v Terraformu. Uložte šablony do správy zdrojového kódu a použijte kanál nasazení k opětovnému vytvoření prostředí ve stejné nebo jiné oblasti. Do artefaktů a procesů nasazení můžete zahrnout certifikáty, proměnné, plány a odkazy na přihlašovací údaje. Ukládejte tajné kódy do služeb, jako jsou Azure Key Vault, místo aby se hodnoty vkládaly přímo do kódu runbooku.

  • Ukládejte skripty runbooku ve správě zdrojového kódu. Udržujte zdroj pro PowerShell a Python runbooky v systému správy zdrojového kódu, jako je Git. Pomocí správy verzí, větvení a kontroly žádostí o přijetí změn můžete chránit kvalitu skriptu a povolit vrácení zpět do známých dobrých verzí.

  • Zálohujte stav z příslušného úložiště dat. Úlohy nezachovávají stav. Pokud potřebujete uchovávat podrobné protokoly úloh nebo jakákoli jiná data, která vaše runbooky generují, uložte je do jiné Azure úložiště nebo databázové služby a zálohujte je odtud.

Odolnost proti náhodnému odstranění

Pokud omylem odstraníte účet Automation, možná ho budete moct obnovit v omezeném časovém intervalu. Další informace najdete v tématu Obnovení odstraněného účtu Automation.

Odolnost vůči údržbě služeb

Microsoft pravidelně používá aktualizace služeb a provádí další údržbu. Platforma Azure tyto aktivity zpracovává automaticky a zajišťuje, aby byla údržba pro vás bezproblémová a transparentní. Během událostí údržby není očekáván výpadek, pokud jste nebyli informováni prostřednictvím plánované údržby služby Azure Service Health.

Smlouva o úrovni služeb

Smlouva o úrovni služeb (SLA) pro služby Azure popisuje očekávanou dostupnost každé služby a podmínky, které musí vaše řešení splnit, aby bylo dosaženo očekávané dostupnosti. Další informace najdete v tématu Smlouvy SLA pro online služby.