Doporučení pro implementaci automatizace

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

OE:09 Automatizujte všechny úlohy, které nemají prospěch z přehledu a adaptability lidského zásahu, jsou vysoce procedurální a mají trvanlivost, která přináší návratnost investic do automatizace. Pokud je to možné, zvolte pro automatizaci před vlastními implementacemi standardní software. Se všemi automatizacemi zacházejte stejně jako se součástmi úloh a při jejich návrhu a implementaci využijte pilíře Well-Architected Framework.

Tato příručka popisuje doporučení pro přijetí automatizace ve vašich úlohách. Úlohy, které se opakují a jsou náchylné k lidské chybě, můžete automatizovat, aby vaše týmy získaly efektivitu a dodržovaly standardy. Automatizujte úlohy, aby vaše úlohy byly jednodušší a konzistentní. Automatizace umožňuje, aby provozní a technické týmy byly efektivnější, protože jim poskytuje více času na práci na dalších vylepšeních. Automatizace je výkonný nástroj ve všech aspektech správy úloh. Promyšleně implementujte automatizaci, abyste podpořili vaši organizaci.

Klíčové strategie návrhu

Při vývoji úloh hledejte příležitosti, jak využít výhod automatizace, abyste snížili zatížení správy a minimalizovali lidské chyby. Vyhodnoťte tyto příležitosti a zvažte, jak přínosné pro vaši organizaci přinesou. Pokud chcete maximalizovat hodnotu investice do automatizace, upřednostněte úkoly, které jsou jednoduché, procedurální a mají dlouhou životnost. Použití automatizace není taktika "vše nebo nic". Existují pracovní toky, které můžou mít operace vyžadující lidský zásah, například body pro rozhodování. Tyto pracovní toky můžou dál využívat automatizaci při provádění dalších úloh.

Cílení na úlohy k automatizaci

Zvažte následující doporučení, abyste měli jistotu, že dáváte přednost úkolům, které automatizaci nejvíce využívají:

  • Zaměřte se na snadnou výhru. Zaměřte se na úkoly, které jsou vysoce procedurální a náchylné k lidské chybě. Tyto úlohy jsou vysoce automatizované. Jsou jasně definované, nemají proměnné, které přidávají na složitosti, a provádějí se jako součást normálního provozu. Naopak, nedávejte prioritu automatizaci úloh, které vyžadují psaní složitých skriptů, které zohledňují proměnlivé jevy, nebo úlohy, ke kterým dochází jen zřídka.

    Mezi příklady vysoce automatizovaných úloh patří restartování serverů, vytváření účtů a přenos protokolů do úložiště dat. Tyto úlohy můžou probíhat podle plánu, jako reakce na událost nebo monitorovací výstrahu nebo podle potřeby na základě externích faktorů.

  • Hledejte způsoby, jak posílit možnosti operátorů a uvolnit své msp. Ve vaší organizaci můžete mít odborníky, kteří jsou závislí na eskalaci, která může být zbytečná. Správci databází například můžou pravidelně dostávat požadavky na vytvoření nových databází, když nasadíte nové zákazníky do víceklientských řešení. Pokud pro svůj tým helpdesku vytvoříte samoobslužný portál, můžete mu umožnit, aby sami bezpečně vytvořili prázdnou databázi. Nebo jako zprostředkující krok můžete požadavky a kroky, které má SME provést, automatizovat vytvořením skriptů ke spuštění.

  • Zaměřte se na návratnost investic. Automatizace s vysokou hodnotou vyžaduje minimální režijní náklady na správu a zvyšuje prokazatelný stupeň efektivity. Pokud můžete provoznímu týmu ušetřit hodinu každý den například automatizací databázových položek, dáte mu čas najít další oblasti pro zlepšení.

Oblasti pro implementaci automatizace

Osvojte si automatizaci v celém životním cyklu úloh, od vývoje až po každodenní správu. Následující seznam příkladů vám pomůže zvážit široké oblasti životního cyklu úloh, pro které může automatizace přinést výhody. Můžete automatizovat:

  • Definice, spouštění a správa kanálu: Pomocí nástrojů pro kontinuální integraci a průběžné doručování (CI/CD), jako je Azure DevOps a další nástroje DevOps, můžete automaticky definovat kanál a způsob jeho běhu. Tyto nástroje vám můžou pomoct automatizovat úlohy CI/CD nebo jiné úlohy, jako je vytváření sestav.

  • Nasazení: Pomocí nástrojů, jako jsou šablony Azure Resource Manager, Bicep, Terraform a Ansible, můžete automatizovat procesy vývoje a vydávání úloh. Nasaďte a aktualizujte infrastrukturu se stejnými automatizačními platformami pomocí přístupu infrastruktury jako kódu (IaC).

  • Testování: K dispozici je mnoho nástrojů pro automatizaci testovacích procesů. Tyto nástroje mohou výrazně snížit zatížení týmu pro kontrolu kvality a zajistit standardizované a spolehlivé testy.

  • Škálování: Použijte funkce poskytované platformou a další nástroje, jako jsou nástroje pro orchestraci, k automatickému škálování infrastruktury při zvýšení nebo snížení zatížení.

  • Monitorování a upozorňování: Pomocí nástrojů dostupných ve vašem řešení pro monitorování můžete automaticky registrovat nově nasazené prostředky a konfigurovat akce aktivované výstrahou, které pomůžou usnadnit nápravu v případě, že dojde k problémům.

  • Samoopravení: Pomocí výstrah generovaných monitorovacím systémem můžete automatizovat akce a obnovit nefunkční součásti nebo úlohy. Další informace najdete v tématu Doporučení pro sebeopravení a sebezáchovu.

  • Správa konfigurace: Pomocí nástrojů pro orchestraci a zásady můžete zajistit, aby všechny vaše prostředky běžely se stejnou konfigurací a aby se v rámci úloh vynucují požadavky na dodržování předpisů.

  • Další úlohy správy: Použijte skripty k automatizaci opakovaných úloh, jako je aktualizace databázových záznamů nebo záznamů DNS.

  • Schválení: Umožňuje systémům automaticky rozhodovat o schvalování na základě předdefinovaných pravidel a zvýšit tak efektivitu pracovních postupů, které mají schvalovací brány. Tato metoda podporuje používání standardizovaných formulářů a šablon, což zvyšuje efektivitu procesů. Automatické schvalování v prostředích s vysokým využitím může být rizikové. Pečlivě se zaměřte na automatická schválení a otestujte je, abyste se ujistili, že jsou definována konkrétní kritéria pro udělení schválení.

  • Onboarding nového uživatele a nového zaměstnance: Můžete automatizovat řadu úloh spojených s onboardingem nových uživatelů aplikace nebo nových zaměstnanců, jako jsou aktualizace databáze a vytváření přihlašovacích údajů.

  • Monitorování a upozorňování: Využijte výhod funkcí automatizace, které poskytuje vaše platforma pozorovatelnosti. Automatická registrace nových zařízení pro monitorování a upozorňování na anomálie

Volba vhodného nástroje pro automatizaci

Vývoj vlastní automatizace interně je časově náročný a může váš vývojový tým zatěžovat správu. Potřebují udržovat nástroj pro interní automatizaci stejně jako jakýkoli jiný interní software. Vždy, když budou vyhovovat vašim potřebám, doporučujeme používat nechybné nástroje. Mezi komerčními, open source a cloudovými nástroji poskytovanými platformou je k dispozici mnoho možností. K vytvoření automatizace, kterou potřebujete, budete pravděpodobně používat různé nástroje. Při vyhodnocování nástrojů se můžete spolehnout na své interní znalosti, které vám pomůžou při rozhodování. Váš tým může být lépe obeznámen s některými vývojovými jazyky a architekturami. Můžete se zpočátku zaměřit na nástroje, které se dají použít bez vysoké křivky učení. Zamyslete se nad úlohami, které plánujete řešit pomocí automatizace, a investujte do nástrojů, které tyto úlohy konkrétně řeší. Nezajádej nástroje, kterým obecně dáváte přednost, a pak zvažte úkoly.

Mějte na paměti faktory, které můžou komplikovat vaše operace při sestavování automatizace, jako je uzamčení verze a nadměrné používání modulu plug-in. Moduly plug-in, jako jsou Jenkins nebo Moduly plug-in Azure DevOps, představují skvělý způsob, jak přidat funkce. Moduly plug-in byste měli přijmout, pokud získají výhody pro vaše cíle automatizace. Pokud ale k provedení jedné úlohy použijete více modulů plug-in, může to ztížit aktualizace automatizace a řešení potíží. Buďte uvážliví při používání pluginů. Vyhněte se také řešením, která mají závislosti na verzích architektury, protože jejich údržba v průběhu času představuje zátěž. Pokud chcete minimalizovat riziko těchto typů problémů, standardizujte výběr automatizačních nástrojů a modulů plug-in a pro všechny projekty automatizace použijte správu zdrojového kódu.

Integrace automatizace do úloh

U jakéhokoli nástroje, který použijete k vytvoření automatizace, je třeba, aby byla snadno přístupná a spravovatelná pro vaše operátory. Poskytněte týmu úloh přehledná a snadno použitelná rozhraní. Můžete poskytnout přístup ke kanálům CI/CD, rozhraním API a knihovnám. Stejně jako úlohy, které automatizace podporuje, musíte automatizaci spravovat holisticky. Zabezpečte automatizaci ve stejném rozsahu jako ostatní komponenty úloh. Monitorujte automatizaci a podrobte ji stejným testovacím protokolům jako ostatní součásti úloh.

Požadavky

  • V některých případech efektivita, kterou získáte z automatizace, převáží režijní zátěž spojenou s vývojem vlastního řešení, pokud vašim požadavkům nevyhovují žádná předchycená řešení. V těchto případech buďte při vývoji uvážliví. Úzce se zaměřte na vývoj pouze toho, co potřebujete, abyste pokryli mezery, které nemůžete vyřešit pomocí předprodejních řešení, a minimalizovali složitosti, jako jsou závislosti.

  • Složitá automatizace, která vyžaduje vysoký stupeň údržby, může být pro provozní týmy obtížná při správě a odstraňování potíží. Udržujte automatizované úlohy úzce zaměřené pouze na provádění samostatných úloh. Zkuste minimalizovat závislosti na jiných nástrojích nebo komponentách.

  • Zamyslete se nad používáním ručních procesů. Pokud se rozhodnete operaci neautomatizovat, důkladně zdokumentujte ruční proces vytvořením podrobného kontrolního seznamu pro operátory. Tento postup snižuje pravděpodobnost lidské chyby, jako když operátor omylem spustí nesprávný proces. Tato dokumentace vám také pomůže navrhnout automatizaci pro tento proces v budoucnu.

  • Pokud používáte hybridní ruční a automatizovaný přístup, musíte být zvlášť opatrní. Pokud skript spustí většinu procesu, ale pak se odkáže na člověka o určitou část nebo rozhodnutí, je důležité, abyste dané osobě poskytli potřebný kontext a informace, aby se mohli informovaně rozhodnout.

Usnadnění Azure

Azure nabízí řadu nástrojů, které vám pomůžou automatizovat úlohy.

Nástroje IaC: Pro nasazení IaC můžete použít Terraform, Bicep a Azure Resource Manager. V závislosti na vašich požadavcích a znalosti nástrojů vašeho týmu můžete jeden nebo více z těchto nástrojů použít pro nasazení a správu prostředků.

Azure Functions: Azure Functions je nástroj bez serveru, který můžete použít k automatizaci úloh pomocí preferovaného vývojového jazyka. Functions poskytuje komplexní sadu triggerů a vazeb řízených událostmi, které propojují vaše funkce s jinými službami. Nemusíte psát další kód.

GitHub Actions pro Azure: K automatizaci procesů CI/CD můžete použít GitHub Actions pro Azure. GitHub Actions se integruje s Azure, aby se zjednodušila nasazení. Můžete vytvořit pracovní postupy, které sestavují a testují každou žádost o přijetí změn v úložišti, nebo můžete nasadit sloučené žádosti o přijetí změn do produkčního prostředí.

GitHub Actions nejde jen o DevOps a umožňuje spouštět pracovní postupy, když v úložišti dojde k jiným událostem. Můžete například spustit pracovní postup, který automaticky přidá příslušné popisky, když někdo ve vašem úložišti vytvoří nový problém.

Azure Automation: PowerShell a Python jsou oblíbené programovací jazyky pro automatizaci provozních úloh. Tyto jazyky můžete použít k provádění operací, jako je restartování služeb, přenos protokolů mezi úložišti dat a škálování infrastruktury podle požadavků. Tyto operace můžete vyjádřit v kódu a spouštět je na vyžádání. Tyto jazyky samy o sobě nenabízely platformu pro centralizovanou správu, správu verzí ani historii spuštění. Jazyky také nemají nativní mechanismus pro reakci na události, jako jsou výstrahy řízené monitorováním. K zajištění těchto možností potřebujete automatizační platformu.

Automation poskytuje platformu hostované v Azure pro hostování a spouštění kódu PowerShellu a Pythonu napříč cloudovými a místními prostředími, a to jak v Azure, tak i mimo Azure. Kód PowerShellu a Pythonu je uložený v runbooku Automation. Pomocí služby Automation můžete:

  • Aktivujte runbooky na vyžádání, podle plánu nebo prostřednictvím webhooku.

  • Historie spuštění a protokolování.

  • Integrace úložiště tajných kódů

  • Integrace správy zdrojového kódu

Správce aktualizace Azure: Update Manager je jednotná služba, která pomáhá spravovat a řídit aktualizace virtuálních počítačů. V rámci úloh můžete monitorovat dodržování předpisů pro aktualizace windows a Linuxu. Pomocí Správce aktualizací můžete také provádět aktualizace v reálném čase nebo je naplánovat v rámci definovaného časového období údržby. Pomocí Správce aktualizací můžete:

  • Dohlížejte na dodržování předpisů u celé flotily počítačů.
  • Plánování opakujících se aktualizací
  • Nasazení důležitých aktualizací

Prostředí pro nasazení Azure: Prostředí pro nasazení umožňují vývojovým týmům rychle vytvářet konzistentní infrastrukturu aplikací pomocí šablon založených na projektech. Tyto šablony minimalizují dobu instalace a maximalizují zabezpečení, dodržování předpisů a nákladovou efektivitu. Prostředí pro nasazení je kolekce prostředků Azure, které se nasazují v předdefinovaných předplatných. Správci vývojové infrastruktury můžou vynucovat podnikové zásady zabezpečení a poskytovat kurátorovanou sadu předdefinovaných šablon IaC.

Správci vývojové infrastruktury definují prostředí nasazení jako položky katalogu. Položky katalogu jsou hostované v úložišti GitHub nebo Azure DevOps, kterému se říká katalog. Položka katalogu se skládá ze šablony IaC a souboru manifest.yaml.

Vytváření prostředí nasazení můžete vytvořit skriptem a programově je spravovat.

Azure Logic Apps a Microsoft Power Automate: Při vytváření vlastní automatizace digitálních procesů (DPA) pro zpracování úloh, jako jsou toky schvalování nebo vytváření integrací ChatOps, zvažte použití Logic Apps nebo Power Automate. Pracovní postupy můžete vytvářet z předdefinovaných konektorů a šablon. Logic Apps a Power Automate jsou založené na stejné základní technologii a jsou vhodné pro úlohy založené na triggeru nebo úlohy založené na čase.

Automatické škálování: Řada technologií Azure má integrované funkce automatického škálování. Pomocí rozhraní API můžete také naprogramovat další služby, které se automaticky škálují. Další informace najdete v tématu Doporučení pro návrh spolehlivé strategie škálování.

Skupiny akcí Azure Monitoru: Pokud chcete při aktivaci upozornění automaticky spouštět operace samoopravení, použijte skupiny akcí služby Azure Monitor. Tyto operace můžete definovat pomocí runbooku, funkce Azure nebo webhooku.

Příklad

Příklad použití automatizace v kombinaci s dalšími službami Azure najdete v tématu Automatizace operací pomocí Azure Event Grid. Tento příklad používá Logic Apps a Event Grid k automatizaci provozních úloh.

Kontrolní seznam efektivity provozu

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