Doporučení pro implementaci automatizace
Platí pro toto doporučení kontrolního seznamu pro efektivitu provozu v architektuře:
OE:09 | Automatizace všech úloh, které nemají prospěch z přehledu a adaptability lidského zásahu, jsou vysoce procedurální a mají životnost, která přináší návratnost investic do automatizace. Pokud je to možné, zvolte software mimo police pro automatizaci a vlastní implementace. Zacházejte se se všemi automatizacemi stejně jako s komponentami úloh a na jejich návrh a implementaci použijte pilíře dobře architektuře. |
---|
Tato příručka popisuje doporučení pro přijetí automatizace ve vaší úloze. Můžete automatizovat úlohy, které jsou opakující se a náchylné k lidské chybě, aby vaše týmy získaly efektivitu a dodržovaly standardy. Automatizujte úlohy, aby vaše úlohy byly efektivnější a konzistentní. Automatizace umožňuje, aby provozní a technické týmy byly efektivnější, protože jim dává 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, která vaší organizaci umožní.
Klíčové strategie návrhu
Při vývoji úloh hledejte příležitosti k využití automatizace, abyste snížili zatížení správy a minimalizovali lidské chyby. Vyhodnoťte tyto příležitosti a zvažte hodnotu, kterou přináší vaší organizaci. 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 typu all-or-nothing. Existují pracovní proudy, které můžou mít operace, které vyžadují lidský zásah, jako jsou rozhodovací body. Tyto pracovní proudy můžou stále těžit z automatizace a provádět další úlohy.
Vyhodnocení úloh pro automatizaci
Zvažte následující doporučení, abyste měli jistotu, že upřednostňujete úlohy, které využívají největší výhody automatizace:
Snažte se o snadné výhry. Zaměřte se na úlohy, které jsou vysoce procedurální a náchylné k lidské chybě. Tyto úlohy jsou vysoce automatizovatelné. Jsou jasně definované, jsou bezplatné z proměnných, které přidávají složitost a provádějí se jako součást normálních operací. Naopak nepoužívejte prioritu automatizace úloh, které vyžadují psaní složitých skriptů pro zohlednění proměnných jevů nebo zřídka dochází k úlohám.
Mezi příklady vysoce automatizovatelných úloh patří restartování serverů, vytváření účtů a přenos protokolů do úložiště dat. K těmto úlohám může dojít podle plánu, jako reakce na událost nebo monitorování výstrahy nebo podle potřeby na základě externích faktorů.
Hledejte způsoby, jak umožnit operátorům a uvolnit své msp. Možná máte odborníky ve vaší organizaci, kteří se spoléhají na eskalace, které by mohly být zbytečné. Správci databází můžou například pravidelně získávat požadavky na vytváření nových databází, když do svého víceklientských řešení připojíte nové zákazníky. Pokud pro svůj tým helpdesku vytvoříte samoobslužný portál, můžete jim umožnit bezpečné vytvoření prázdné databáze. Nebo jako zprostředkující krok můžete automatizovat požadavky a kroky, které má SME provést, vytvořením skriptů, které se mají spustit.
Zaměřte se na návratnost investic. Automatizace s vysokou hodnotou vyžaduje minimální režii správy a přidává demonstrovatelný stupeň efektivity. Pokud můžete provoznímu týmu každý den ušetřit hodinu tím, že automatizujete položky databáze, například dáte jim čas najít další oblasti pro zlepšení.
Oblasti pro implementaci automatizace
Přijměte automatizaci po celý životní cyklus úloh– od vývoje po každodenní správu. Následující seznam příkladů vám pomůže vzít v úvahu široké oblasti životního cyklu úloh, které můžou využívat automatizaci. Můžete automatizovat:
Definice kanálu, spouštění a správa: K automatickému definování kanálu a způsobu spuštění kanálu použijte nástroje kontinuální integrace a průběžného doručování (CI/CD), jako jsou Azure DevOps a další nástroje DevOps. 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 Manageru, Bicep, Terraform a Ansible, můžete automatizovat procesy vývoje a vydávání úloh. Nasaďte a aktualizujte infrastrukturu stejnými automatizačními platformami pomocí přístupu infrastruktury jako kódu (IaC).
Testování: K dispozici je mnoho nástrojů pro automatizaci procesů testování. Tyto nástroje mohou zmírnit významnou zátěž od týmu pro zajištění kvality a zajistit, aby testy byly standardizované a spolehlivé.
Škálování: Pomocí funkcí poskytovaných platformou a dalších nástrojů, jako jsou nástroje orchestrace, můžete automaticky škálovat infrastrukturu při zvýšení nebo snížení zatížení.
Monitorování a upozorňování: Pomocí nástrojů dostupných v řešení monitorování můžete automaticky zaregistrovat nově nasazené prostředky a nakonfigurovat akce aktivované výstrahou, které vám pomůžou vyřešit problémy.
Samoopravení: Pomocí výstrah generovaných systémem monitorování můžete automatizovat akce a obnovit chybné součásti nebo úlohy. Další informace naleznete v tématu Doporučení pro samoopravení a sebezáchování.
Správa konfigurace: Pomocí nástrojů pro orchestraci a zásady zajistěte, aby všechny vaše prostředky běžely stejnou konfiguraci a aby se požadavky na dodržování předpisů vynutily napříč vaší úlohou.
Další úlohy správy: Pomocí skriptů můžete automatizovat opakující se úlohy, jako je aktualizace záznamů databáze nebo záznamů DNS.
Schválení: Umožňuje systémům automaticky rozhodovat o schválení na základě předdefinovaných pravidel, aby se zlepšila efektivita 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í ve vysokých prostředích může být rizikové. Úzce se zaměřte a otestujte automatizovaná schválení, abyste zajistili, že jsou pro udělení schválení definována konkrétní kritéria.
Připojování nových uživatelů a nových zaměstnanců: Můžete automatizovat mnoho úkolů 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 funkce automatizace, které poskytuje 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 je časově náročný a může vašemu vývojovému týmu zatížit správu. Potřebují udržovat interní automatizační nástroj stejně jako jakýkoli jiný interní software. Doporučujeme, abyste používali nástroje mimo police, kdykoli můžou vyhovovat vašim potřebám. Mezi komerčními, opensourcovými a cloudovými nástroji poskytovanými platformami je k dispozici mnoho možností. Je pravděpodobné, že k sestavení potřebné automatizace použijete celou řadu nástrojů. Při vyhodnocování nástrojů se spolehněte na své interní znalosti, které vám pomůžou při rozhodování. Váš tým může být obeznámenější s určitými vývojovými jazyky a architekturami. Zpočátku se můžete zaměřit na nástroje mimo police, které můžou používat bez vysoké křivky učení. Zamyslete se nad úkoly, které plánujete řešit pomocí automatizace, a investujte do nástrojů, které můžou tyto úkoly konkrétně řešit. Nevyučujte nástroje, které obecně dáváte přednost, a pak je zvažte.
Mějte na paměti faktory, které můžou komplikovat vaše operace při sestavování automatizace, jako je uzamčení verzí a nadměrné využití 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 jsou pro vás přínosem vašich cílů automatizace. Pokud ale k provedení jedné úlohy použijete více modulů plug-in, může být aktualizace automatizace a řešení potíží obtížné. Buďte uvážliví při používání modulů plug-in. 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ěž. Chcete-li minimalizovat riziko těchto typů problémů, standardizujte výběr automatizačních nástrojů a modulů plug-in a použijte správu zdrojového kódu pro všechny projekty automatizace.
Integrace automatizace do úloh
Pro jakýkoli nástroj, který používáte k vytvoření automatizace, zpřístupněte a spravujte ho pro své operátory. Poskytuje jasné a snadno použitelné rozhraní pro tým úloh. Můžete poskytnout přístup ke kanálům CI/CD, rozhraním API a knihovnám. Stejně jako úloha, kterou automatizace podporuje, je potřeba spravovat automatizaci holisticky. Zabezpečte automatizaci do stejného stupně jako ostatní součásti úloh. Monitorujte automatizaci a podrobte ji stejným testovacím protokolům jako ostatní součásti úloh.
Důležité informace
Někdy efektivita, kterou získáte z automatizace, převáží zatížení správy při vývoji vlastního řešení, pokud vaše požadavky nevyhovují. V těchto případech buďte v úsilí o vývoj uvážliví. Úzce se zaměřte na vývoj jenom toho, co potřebujete k pokrytí mezer, které nemůžete řešit s řešeními mimo police, a minimalizujte složitosti, jako jsou závislosti.
Složitá automatizace, která vyžaduje vysokou míru údržby, může být pro provozní týmy obtížné spravovat a řešit potíže. Udržujte automatizované úlohy úzce zaměřené jenom na provádění samostatných úloh. Pokuste se minimalizovat závislosti na jiných nástrojích nebo součástech.
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 je například operátor, který omylem spouští nesprávný proces. Tato dokumentace vám také pomůže navrhnout automatizaci tohoto procesu v budoucnu.
Pokud používáte hybridní ruční a automatizovaný přístup, musíte být obzvláště opatrní. Pokud skript spustí většinu procesu, ale pak se vyhýbá člověku pro určitou část nebo rozhodnutí, je důležité, abyste osobě poskytli potřebný kontext a informace, aby bylo možné provést informované rozhodnutí.
Usnadnění azure
Azure nabízí mnoho 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 vašeho týmu s nástroji můžete pro nasazení a správu prostředků použít jeden nebo více těchto nástrojů.
Azure Functions: Azure Functions je bezserverový nástroj, 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 za účelem zjednodušení nasazení. Můžete vytvářet pracovní postupy, které sestavují a testují všechny žádosti o přijetí změn v úložišti nebo nasazují sloučené žádosti o přijetí změn do produkčního prostředí.
GitHub Actions přesahuje jen 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á odpovídající 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. Pomocí těchto jazyků můžete provádět operace, jako je restartování služeb, přenos protokolů mezi úložišti dat a škálování infrastruktury podle poptávky. Tyto operace můžete vyjádřit v kódu a spustit je na vyžádání. Tyto jazyky nenabízí 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 v cloudových i místních prostředích, a to jak v Azure, tak i mimo Azure. Kód PowerShellu a Pythonu je uložený v runbooku Automation. Použití služby Automation k:
Aktivujte runbooky na vyžádání, podle plánu nebo prostřednictvím webhooku.
Historie spuštění a protokolování
Integrujte úložiště tajných kódů.
Integrace správy zdrojového kódu
Azure Update Manager: Update Manager je jednotná služba, která pomáhá spravovat a řídit aktualizace pro virtuální počítače. Dodržování předpisů aktualizací pro Windows a Linux můžete monitorovat napříč svou úlohou. Pomocí Update Manageru můžete provádět aktualizace v reálném čase nebo je naplánovat v rámci definovaného časového období údržby. Pomocí Update Manageru můžete:
- Dohled nad dodržováním předpisů na celém vašem portfoliu strojů.
- Plánování opakujících se aktualizací
- Nasazení důležitých aktualizací
Prostředí nasazení Azure: Prostředí nasazení umožňují vývojovým týmům rychle vytvářet konzistentní infrastrukturu aplikací pomocí šablon založených na projektu. Tyto šablony minimalizují dobu nastavení a maximalizují zabezpečení, dodržování předpisů a nákladovou efektivitu. Prostředí nasazení je kolekce prostředků Azure nasazených 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 označované jako katalog. Položka katalogu se skládá ze šablony IaC a souboru manifest.yaml.
Můžete skriptovat vytváření prostředí nasazení a programově spravovat prostředí.
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 schválení nebo vytváření integrací ChatOps, zvažte použití Logic Apps nebo Power Automate. Pracovní postupy můžete vytvářet z integrovaných konektorů a šablon. Logic Apps a Power Automate jsou založené na stejné základní technologii a jsou vhodné jak pro úlohy založené na triggerech, tak pro úlohy založené na čase.
Automatické škálování: Mnoho technologií Azure má integrované možnosti automatického škálování. Pomocí rozhraní API můžete také naprogramovat další služby, které se mají automaticky škálovat. Další informace najdete v tématu Doporučení pro návrh spolehlivé strategie škálování.
Skupiny akcí Služby Azure Monitor: Pokud chcete automaticky spouštět operace samoopravení při aktivaci výstrahy, 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í služby Automation společně s dalšími službami Azure najdete v tématu Automatizace operací pomocí Azure Event Gridu. V tomto příkladu se k automatizaci provozních úloh používá Logic Apps a Event Grid.
Související odkazy
- Automation
- Azure Update Manager
- Azure Functions
- Skupiny akcí služby Azure Monitor
- Prostředí nasazení
- GitHub Actions pro Azure
- Logic Apps
- Automatizace operací pomocí Event Gridu
- Power Automate
- Doporučení pro návrh strategie testování spolehlivosti
- Doporučení pro návrh spolehlivé strategie škálování
- Doporučení pro samoopravení a sebezáchování
Kontrolní seznam pro efektivitu provozu
Projděte si kompletní sadu doporučení.