Sdílet prostřednictvím


Doporučení pro návrh strategie testování spolehlivosti

Platí pro toto doporučení kontrolního seznamu spolehlivosti pro Well-Architected Power Platform:

RE:06 Otestujte odolnost a dostupnost podle principů chaosinženýrství ve vašem testovacím a provozním prostředí. Použijte testování, abyste zajistili, že vaše strategie implementace elegantní degradace budou účinné, a to provedením aktivní poruchy a simulovaného zátěžového testování.

Tato příručka popisuje doporučení pro návrh strategie testování spolehlivosti k ověření a optimalizaci spolehlivosti vaší úlohy. Testování spolehlivosti se zaměřuje na odolnost a dostupnost úlohy, konkrétně na kritické toky, které identifikujete při návrhu řešení. Tato příručka poskytuje obecné pokyny pro testování a pokyny, které jsou specifické pro injektáž chyb a chaosinženýrství.

Definice

Pojem definice
Dostupnost Doba, po kterou úloha aplikace běží ve správném stavu bez významných prostojů.
Chaosinženýrství Postup, kdy jsou aplikace a služby vystaveny reálné zátěži a selháním. Cílem chaosinženýrství je vybudovat a ověřit odolnost při nespolehlivých podmínkách a chybějících závislostech.
Injektáž chyb Úkon zavedení chyby do systému za účelem testování odolnosti systému.
Zotavitelnost Synonymum pro odolnost.
Odolnost Schopnost úlohy aplikace odolat a zotavit se z režimů selhání.

Klíčové strategie návrhu

Testování je nezbytné k zajištění, aby vaše úloha splňovala cíle spolehlivosti a dokázala bez problémů zvládnout selhání. Injektáž chyb je typ testování, které záměrně zavádí chyby nebo zátěž do vašeho systému za účelem simulace reálných situací. Pomocí technik injektáže chyb a chaosinženýrství můžete aktivně objevovat a opravovat problémy dříve, než ovlivní vaše provozní prostředí. Tato část poskytuje obecné pokyny ohledně testování, injektáže chyb a chaosinženýrství pro vaši úlohu.

Obecné pokyny pro testování

Testování provádějte rutinně, abyste ověřili stávající prahové hodnoty, cíle a předpoklady. Když dojde k zásadní změně ve vaší úloze, provádějte pravidelné testování. Většinu testování provádějte v testovacích a přípravných prostředích. Je také užitečné spustit podmnožinu testů v provozním systému.

Automatizujte testování, abyste zajistili konzistentní pokrytí a reprodukovatelnost testů. Automatizujte běžné testovací úlohy a integrujte je do procesů sestavování. Ruční testování softwaru je zdlouhavé a náchylné k chybám, ale můžete provádět ruční průzkumné testování. V případech, kdy potřebujete vyvinout automatické testování, použijte ruční testování k určení rozsahu testů, které mají být vyvinuty.

Osvojte si přístup testování v brzké fázi vývoje a testování odolnosti a dostupnosti provádějte na začátku vývojového cyklu.

Zaveďte jednoduchý formát dokumentace, aby každý snadno porozuměl procesu a výsledkům každého pravidelného testu.

Sdílejte zdokumentované výsledky s příslušnými týmy, jako jsou provozní týmy, technologické vedení, obchodní účastníci a účastníci zotavení po havárii. Výsledky by měly informovat o upřesnění cílů spolehlivosti, jako jsou cíle na úrovni služeb (SLO), smlouvy o rozsahu služeb (SLA), cíle doby obnovy (RTO) a cíle bodů obnovení (RPO).

Vytvořte pravidelnou testovací kadenci svých záloh. Obnovte data do izolovaných systémů, abyste pomohli zajistit, že zálohy jsou platné a obnovená data jsou funkční.

Zdokumentujte a sdílejte metriky doby obnovy pro zotavení po havárii se svými účastníky, abyste zajistili, že očekávání ohledně obnovy jsou přiměřená.

Použijte standardní postupy pro testování nasazení, abyste zajistili, že proces nasazení je automatizovaný, předvídatelný a efektivní.

Otestujte schopnost vaší úlohy odolat přechodným selháním. Další informace viz Doporučení pro zpracování přechodných selhání.

Otestujte, jak vaše úloha zpracovává selhání v závislých službách nebo jiných závislostech prostřednictvím injektáže chyb.

Otestujte svůj plán zotavení po havárii, abyste mohli reagovat na katastrofická selhání a další závažné incidenty.

Pomocí injektáže chyb otestujte schopnost vaší úlohy hladce snížit výkonnost a minimalizovat rádius dopadu při chybné funkci komponent.

Využijte plánované i neplánované výpadky

Když je vaše úloha offline kvůli plánované údržbě nebo neplánovanému výpadku, máte jedinečnou příležitost provést testování a zlepšit porozumění své úlohy. Následující sekce poskytují doporučení pro každou situaci.

Plánovaná údržba

Když máte naplánováno časové období údržby pro aktualizace nebo opravy, můžete testovat komponenty a toky, které nejsou součástí údržby. Provádějte testy bez potenciálního rizika neočekávaného snížení výkonu úlohy nebo jejího úplného vypnutí. Pokud máte během časového období údržby dostatek času, po dokončení údržby můžete také otestovat komponenty a toky, které jsou součástí údržby.

Neplánovaný výpadek

Využijte každý výpadek jako příležitost dozvědět se více o své úloze a zlepšit její odolnost podle následujících kroků, které jsou seřazeny podle priority:

  1. Úlohu vraťte do režimu online pro své uživatele. Možná budete muset provést náhradní řešení problému, vyřešit problém nebo zahájit procesy obnovy.

  2. Určete hlavní příčinu výpadku a vyřešte ji. Pokud můžete v rámci vyšetřování opravit hlavní příčinu, zdokumentujte hlavní příčinu a opatření, která jste k jejímu odstranění přijali. Pokud problém vyžaduje pozdější provedení dalšího časového období údržby, ujistěte se, že vaše opatření pro zmírnění rizik zvládnou očekávané zatížení, a to tak, že je důkladně otestujete. Ujistěte se, že jste nastavili dostatečné monitorování, které pokryje opatření k nápravě.

  3. Pokud je to možné, vyhledejte stejný problém nebo slabá místa konfigurace, která by mohla být ovlivněna podobnými problémy, ve všech komponentách vaší úlohy. Využijte tuto příležitost k proaktivnímu vyřešení těchto komponent. Nahlédněte do historie incidentů a hledejte vzorce podobných problémů v rámci vaší úlohy.

  4. Získané poznatky použijte ke zlepšení strategie testování. Ujistěte se, že jste úspěšně vyřešili hlavní příčinu a podobné problémy přímým testováním stejného selhání.

Průvodce injektáží chyb a chaosinženýrstvím

Testování pomocí injektáže chyb se řídí principy chaosinženýrství zdůrazňováním schopnosti úlohy reagovat na selhání komponent. Provádějte testování pomocí injektáže chyb v předprovozním a provozním prostředí. Informace, které jste se naučili z provádění analýzy režimu selhání, použijte k zajištění, že budete testovat pouze chyby, které upřednostňujete, a že máte strategie nápravy, které řeší selhání.

Klíčové zásady chaosinženýrství jsou:

  • Buďte proaktivní. Nečekejte, až dojde k selhání. Pokuste se předvídat selhání prováděním chaotických experimentů, abyste odhalili a opravili problémy dříve, než ovlivní vaše provozní prostředí.

  • Přijměte selhání. Přijměte selhání, ke kterým ve vašem systému dochází, a poučte se z nich. Vnímejte selhání jako přirozenou součást komplexních systémů a využijte je jako příležitosti k učení a zlepšování spolehlivosti systému.

  • Rozbíjejte systém. Záměrně zaveďte do systému chyby nebo zátěž, abyste otestovali jeho odolnost. Simulujte reálná selhání nebo narušení, abyste otestovali a zlepšili možnosti obnovy svojí úlohy.

  • Budujte imunitu. Prostřednictvím experimentů chaosinženýrství zlepšujte schopnosti vaší úlohy předcházet selháním a zotavovat se z nich.

Chaosinženýrství je nedílnou součástí kultury týmů spravujících úlohy a průběžným postupem, nikoli krátkodobou taktickou akcí v reakci na jediný výpadek. Při navrhování chaotických experimentů postupujte podle této standardní metody:

  1. Začněte hypotézou. Každý experiment by měl mít jasný cíl, jako je testování schopnosti toku odolat ztrátě konkrétní komponenty.

  2. Změřte základní chování. Zajistěte, že máte konzistentní metriky spolehlivosti a výkonu pro tok a komponenty zapojené do experimentu, abyste je mohli porovnat se zhoršeným stavem při spuštění experimentu.

  3. Proveďte injektáž chyby nebo chyb. Experiment by měl být vědomě zaměřen na konkrétní komponenty, které lze rychle obnovit, a měli byste mít informované očekávání o účinku, který způsobí injektáž chyby, abyste mohli řídit rozsah dopadu experimentu.

  4. Monitorujte výsledné chování. Shromážděte telemetrii o jednotlivých komponentách toku a kompletním chováním toku, na který se experiment zaměřuje, abyste správně porozuměli dopadům poruchy. Porovnejte metriky, které shromáždíte, se základními metrikami, abyste získali úplný obrázek o výsledcích injektáže chyb.

  5. Zdokumentujte proces a pozorování. Na podrobných záznamech vašich experimentů budou stát budoucí rozhodnutí o návrhu úlohy a zajistí, že vyřešíte nedostatky, které byly v průběhu času odhaleny.

  6. Berte v potaz výsledky a jednejte podle nich. Naplánujte kroky k nápravě, které lze přidat do nevyřízených položek úlohy jako vylepšení. Zajistěte, aby byly plány pro vylepšení návrhu přezkoumány a testovány v neprovozních prostředích podle stejných procesů jako u jiných nasazení.

Pravidelně ověřujte svůj proces, výběr architektury a kód, abyste rychle odhalili technický dluh, integrovali nové technologie a přizpůsobili se měnícím se požadavkům.

Při provádění experimentů s injektáží chyb:

  • Ověřte, že je zavedeno monitorování a jsou nastaveny výstrahy.

  • Potvrďte svůj proces tak, že přidělíte přímo odpovědného jednotlivce (DRI), aby převzal vlastnictví incidentu.

  • Zajistěte, aby vaše dokumentace a procesy vyšetřování byly aktuální.

Integrujte následující doporučení a úvahy, abyste optimalizovali svou strategii testování chaosu:

  • Jděte proti očekáváním systému. Pomocí testování se snažíte zlepšit odolnost své úlohy a strategie návrhu úlohy. Hledejte příležitosti, jak injektovat chyby do komponent a toků, o kterých na základě minulých zkušeností předpokládáte, že jsou spolehlivé. Ve vaší nové úloze nemusí být spolehlivé.

  • Potvrďte změnu. Bez důkladného testování, včetně injektáže chyb, můžete mít po provedení změn neúplný obrázek o své úloze. Můžete například zavést nové závislosti, které nejsou okamžitě zřejmé.

  • Pohybujte se v hranicích smluv SLA. Omezte testování chaosu, abyste zůstali v rámci svých smluv SLA a vyhnuli se potenciálně nepříznivým účinkům výpadků. Cíle zotavení toků a komponent pomáhají definovat rozsah vašeho testování.

  • Vytvořte chybový rozpočet jako investici do chaosu a injektáže chyb. Váš chybový rozpočet je rozdíl mezi dosažením 100 % SLO a dosažením dohodnutého SLO.

  • Zastavte experiment, pokud se dostane mimo rozsah. Neznámé výsledky jsou očekávaným výsledkem chaotických experimentů. Snažte se dosáhnout rovnováhy mezi shromažďováním podstatných dat z výsledků a ovlivněním co nejmenšího počtu uživatelů v provozu.

  • Úzce spolupracujte s vývojovými týmy, abyste zajistili relevanci injektovaných chyb. Použijte minulé incidenty nebo problémy jako vodítko. Prozkoumejte závislosti a vyhodnoťte výsledky, když tyto závislosti odstraníte.

  • Identifikujte a zdokumentujte dříve neobjevené závislosti mezi různými komponentami v rámci vaší úlohy, které jsou odhaleny prostřednictvím testování chaosu.

  • Upravte plány zotavení podle potřeby, aby zohledňovaly závislosti, které byly objeveny během testování chaosu.

  • Použijte výsledky svých experimentů a testů jako základ pro nové experimenty a testy. Když se objeví neočekávané chování, nové testy se mohou zaměřit přímo na toto chování a dát vám příležitost pro ně navrhnout strategie nápravy.

Kompromis: Testování injektování chyb v produkčním prostředí může být rušivé a potenciálně způsobit výpadky. Buďte transparentní vůči účastníkům ohledně této eventuality a zaveďte ochranná opatření pro ukončení experimentů a plány vrácení, abyste rychle napravili selhání, která zavedete.

Usnadnění díky Power Platform

Můžete použít statické výsledky v Power Automate k vrácení pevného výsledku k otestování vaší úlohy.

Testovací modul Power Apps (Preview) je komponenta Power Platform CLI, kterou můžete použít k testování samostatných aplikací plátna v Power Apps.

Azure Test Plans je snadno použitelné řešení pro správu testů v prohlížeči, které poskytuje všechny funkce potřebné pro plánované ruční testování, testování přijetí uživateli, průzkumné testování a získávání názorů od účastníků.

Pokud vaše úloha zahrnuje prostředky Azure, můžete použít Azure Chaos Studio, což je spravovaná služba, která využívá chaosinženýrství, aby vám pomohla měřit, porozumět a zlepšovat odolnost cloudových aplikací a služeb.

Pokud vaše úloha obsahuje agenta Microsoft Copilot Studio, můžete ke konfiguraci agentů a testů použít sadu Power CAT Copilot Studio. Spusťte jednotlivé testy pro rozhraní API Copilot Studio (Direct Line) a vyhodnoťte odpovědi agenta oproti očekávaným výsledkům.

Kontrolní seznam spolehlivosti

Podívejte se na úplný soubor doporučení.