Návrh pro odolnost
Úloha musí dál fungovat s plnou nebo omezenou funkčností. |
---|
Měli byste očekávat selhání komponent, výpadky platformy, snížení výkonu a další chyby. Vytvářejte odolnost v systému tak, aby byla odolná proti chybám a mohlo by se elegantně snížit.
Ukázkový scénář
Contoso Air je komerční letecká společnost, která má interní vývojové oddělení. Hlavní obchodní aplikace je rezervační řešení, které zákazníkům umožňuje rezervovat lety přímo se společností Contoso Air. Aplikace je integrovaná v Azure a používá Aplikace Azure Service, Cosmos DB, Azure Functions, Azure Logic Apps a Azure Service Bus.
Určení rizik selhání
Identifikujte potenciální body selhání v systému, zejména pro důležité komponenty, a určete vliv na toky uživatelů a systémů.
Analyzujte případ selhání, poloměr výbuchu a intenzitu chyby pro každý potenciální bod selhání. Případy selhání a jejich intenzita můžou být v rozsahu od relativně nízkých scénářů dopadu, jako je dočasná ztráta back-endového procesu, až po výpadky v plném rozsahu způsobené katastrofami. Provedení této analýzy vám pomůže určit návrh možností zpracování chyb na úrovni komponenty.
Výzva společnosti Contoso
- Obchodní aplikace poskytuje mnoho klíčových funkcí od marketingu až po obchodování. Tok uživatele nákupu lístku byl identifikován jako nejdůležitější tok. Tým úloh zjistil, že by se měla implementovat větší míra spolehlivosti, aby se zajistilo, že tok je optimalizovaný pro odolnost.
- Tým má časový rozpočet na vylepšení, jako je oddělení komponent a změna návrhu toků, ale chce zajistit, aby tento čas používal k zaměření na vylepšení nejvyšší hodnoty.
Použití přístupu a výsledků
- Tým identifikuje externí platební bránu jako potenciální bod selhání. Brána je vysoce dostupná, ale existuje potenciál pro uživatele, u kterých dochází k občasným přechodným chybám způsobeným problémy se sítí nebo nárůsty extrémně vysokých požadavků. Brána může některé žádosti odmítnout, když je přetížená několika souběžnými požadavky.
- Tým určí, že uživatelé musí požadavky znovu odeslat, když brána odmítne počáteční požadavky, což způsobí negativní uživatelské prostředí.
Implementace mechanismů samoobslužného uchovávání
Vytvářejte schopnosti samozáchozího chování pomocí vzorů návrhu správně a modularizace návrhu, aby se izolovaly chyby.
Když do systému vytvoříte možnosti samoobslužné ochrany, budete moct zabránit problému v ovlivnění podřízených komponent. Systém dokáže zmírnit přechodné a trvalé selhání, kritické body výkonu a další problémy, které by mohly ovlivnit spolehlivost. Budete také schopni minimalizovat poloměr výbuchu.
Výzva společnosti Contoso
- Tým chce minimalizovat riziko přechodných selhání, které způsobují odmítnutí žádostí uživatelů platební bránou. Vzhledem k přechodné povaze některých chybových podmínek existuje vysoká pravděpodobnost, že stejný požadavek bude úspěšný, pokud se znovu odešle.
Použití přístupu a výsledků
- Tým vyvíjí v toku vlastní logiku, která bude opakovat transakci po krátké prodlevě, když se zjistí selhání, které se dá opakovat.
- Návrh řešení se upraví tak, aby zahrnoval vzor opakování, mírně se zvýší doba čekání mezi opakovanými pokusy, dokud se požadavek úspěšně nezpracuje nebo se dosáhne maximálního počtu selhání.
- Tým se také rozhodne oddělit interakci uživatele a funkce zpracování back-endových plateb tohoto toku pomocí přístupu řízeného událostmi se službou Azure Service Bus. Pokud při zpracování zprávy (po maximálním počtu opakovaných pokusů) dojde k neopravitelným selháním, procesor back-end opustí zpracování tohoto požadavku a zprávu ve frontě opustí, aby ji bylo možné později znovu zpracovat.
Sestavování komplexní redundance a odolnosti
Vytvářejte redundanci ve vrstvách a odolnosti na různých aplikačních úrovních.
Zaměřte se na redundanci fyzických nástrojů a okamžité replikace dat. Snažte se také o redundanci ve funkční vrstvě, která se zabývá službami, provozem a pracovníky. Redundance pomáhá minimalizovat jednotlivé body selhání. Pokud dojde například k výpadku jedné nebo více komponent, zóny dostupnosti nebo celé oblasti, redundantní (aktivní nebo aktivní-pasivní) nasazení umožňuje splnit cíle doby provozu.
Přidání zprostředkovatelů brání přímé závislosti mezi součástmi a zlepšuje ukládání do vyrovnávací paměti. Obě tyto výhody podporují odolnost systému.
Výzva společnosti Contoso
- Implementace opakování a oddělení volání platební brány z uživatelského rozhraní pomocí služby Service Bus výrazně zvýšilo spolehlivost tohoto toku, ale obchodní účastníci se stále bojí o ztrátu dat, ke které může dojít v důsledku závažného selhání v primární oblasti.
Použití přístupu a výsledků
- Tým se rozhodne upgradovat na úroveň Premium služby Service Bus. Díky tomu můžou využít výhod funkcí podpory této úrovně Zóny dostupnosti. Díky této funkci se více kopií dat ukládá ve třech fyzicky oddělených zařízeních (zónách dostupnosti) a služba má dostatek rezerv kapacity pro okamžité zvládnutí úplné katastrofické ztráty datacentra.
- Kromě toho tým nakonfiguruje geografické zotavení po havárii Služby Azure Service Bus tak, aby nepřetržitě replikovávala data do sekundární oblasti, která se použije v nepravděpodobném případě úplné selhání primární oblasti.