Rekommendationer för analys av felläge

Gäller för denna checklista för Azure Well-Architected Framework Reliability:

RE:03 Använd analys av felläge (FMA) för att identifiera och prioritera potentiella fel i lösningskomponenterna. Utför FMA för att hjälpa dig att bedöma risken och effekten av varje felläge. Fastställa hur arbetsbelastningen svarar och återställs.

Den här guiden beskriver metodtipsen för att utföra analys av felläge (FMA) för din arbetsbelastning. FMA är en metod för att identifiera potentiella felpunkter i din arbetsbelastning och tillhörande flöden och planera åtgärder i enlighet med detta. I varje steg i flödet identifierar du blastradien för flera feltyper, vilket hjälper dig att utforma en ny arbetsbelastning eller omstrukturera en befintlig arbetsbelastning för att minimera den utbredda effekten av fel.

En viktig grundsats i FMA är att fel inträffar oavsett hur många lager av återhämtning du tillämpar. Mer komplexa miljöer exponeras för fler typer av fel. Med den här verkligheten kan du med FMA utforma din arbetsbelastning så att den klarar de flesta typer av fel och återställa korrekt när ett fel inträffar.

Om du hoppar över FMA helt eller utför en ofullständig analys riskerar din arbetsbelastning att få ett oförutsägbart beteende och potentiella avbrott som orsakas av en underoptimal design.

Definitioner

Period Definition
Feltillstånd En typ av problem som kan orsaka att en eller flera arbetsbelastningskomponenter försämras eller påverkas allvarligt till den grad att de inte är tillgängliga.
Åtgärd De aktiviteter som du har identifierat för att åtgärda problem antingen proaktivt eller reaktivt.
Identifiering Dina processer och procedurer för infrastruktur, data och appövervakning och aviseringar.

Viktiga designstrategier

Förutsättningar

Granska och implementera rekommendationerna för att identifiera flöden. Det förutsätts att du har identifierat och prioriterat användar- och systemflöden baserat på kritiskhet.

De data som du har samlat in och de artefakter som du har skapat i ditt arbete ger dig en konkret beskrivning av dina datasökvägar som ingår i flödena. För att du ska lyckas med fma-arbetet är noggrannhet och noggrannhet i artefakterna avgörande.

FMA-metod

När du har fastställt de kritiska flödena kan du planera de komponenter som krävs. Följ sedan varje flöde steg för steg för att identifiera beroenden, inklusive tjänster från tredje part och potentiella felpunkter, och planera dina riskreduceringsstrategier.

Dela upp arbetsbelastningen

När du går från idé till design måste du identifiera de komponenttyper som krävs för att stödja din arbetsbelastning. Din arbetsbelastning avgör vilka komponenter som krävs som du måste planera för. Normalt behöver du planera för ingresskontroll, nätverk, beräkning, data, lagring, stödtjänster (t.ex. autentisering, meddelanden och hemlighetshantering eller nyckelhantering) och utgående kontroll. I det här skedet av designarbetet kanske du inte känner till de specifika tekniker som du distribuerar, så din design kan se ut som i följande exempel.

Diagram som visar designexemplet.

När du har skapat din ursprungliga arkitekturdesign kan du lägga över dina flöden för att identifiera de diskreta komponenter som används i dessa flöden och skapa listor eller arbetsflödesdiagram som beskriver flöden och deras komponenter. Om du vill förstå komponenternas allvarlighetsgrad använder du de kritiska definitioner som du har tilldelat till flödena. Överväg effekten av ett komponentfel på dina flöden.

Identifiera beroenden

Identifiera dina arbetsbelastningsberoenden för att utföra din analys av enskilda felpunkter. Genom att dela upp dina arbetsbelastnings- och överläggsflöden får du insikt i beroenden som är interna och externa för arbetsbelastningen.

Interna beroenden är komponenter i arbetsbelastningsomfånget som krävs för att arbetsbelastningen ska fungera. Vanliga interna beroenden är API:er eller lösningar för hemlighets-/nyckelhantering som Azure Key Vault. För dessa beroenden samlar du in tillförlitlighetsdata, till exempel serviceavtal för tillgänglighet och skalningsgränser. Externa beroenden krävs komponenter utanför arbetsbelastningens omfång, till exempel ett annat program eller en tjänst från tredje part. Vanliga externa beroenden är autentiseringslösningar som Microsoft Entra ID och molnanslutningslösningar, till exempel Azure ExpressRoute.

Identifiera och dokumentera beroendena i din arbetsbelastning och inkludera dem i flödesdokumentationens artefakter.

Felpunkter

I arbetsbelastningens kritiska flöden bör du överväga varje komponent och avgöra hur komponenten och dess beroenden kan påverkas av ett felläge. Kom ihåg att det finns många fellägen att tänka på när du planerar för återhämtning och återställning. En komponent kan påverkas av fler än ett felläge vid en viss tidpunkt. Dessa fellägen omfattar:

  • Regionalt avbrott. En hel Azure-region är inte tillgänglig.

  • Avbrott i tillgänglighetszonen. En Azure-tillgänglighetszon är inte tillgänglig.

  • Avbrott i tjänsten. En eller flera Azure-tjänster är inte tillgängliga.

  • Distribuerad överbelastningsattack (DDoS) eller annan skadlig attack.

  • Felaktig konfiguration av appar eller komponenter.

  • Operatorfel.

  • Planerat underhållsstopp.

  • Komponentöverlagring.

Analysen bör alltid finnas i kontexten för det flöde som du försöker analysera, så se till att dokumentera effekten på användaren och det förväntade resultatet av flödet. Om du till exempel har ett e-handelsprogram och analyserar ditt kundflöde kan effekten av ett visst felläge på en eller flera komponenter vara att alla kunder inte kan slutföra kassan.

Överväg sannolikheten för varje typ av felläge. Vissa är mycket osannolika, till exempel avbrott i flera zoner eller flera regioner, och att lägga till åtgärdsplanering utöver redundans är inte en bra användning av resurser och tid.

Åtgärd

Riskreduceringsstrategier delas in i två breda kategorier: skapa mer återhämtning och design för försämrade prestanda.

Att skapa mer återhämtning omfattar att lägga till redundans till dina komponenter, till exempel infrastruktur, data och nätverk, och att se till att programdesignen följer bästa praxis för hållbarhet, till exempel att dela upp monolitiska program i isolerade appar och mikrotjänster. Mer information finns i Rekommendationer för redundans och rekommendationer för självbevarelsedrift.

Om du vill utforma för försämrad prestanda kan du identifiera potentiella felpunkter som kan inaktivera en eller flera komponenter i ditt flöde, men inte helt inaktivera flödet. Om du vill behålla funktionerna i flödet från slutpunkt till slutpunkt kan du behöva omdirigera ett eller flera steg till andra komponenter eller acceptera att en misslyckad komponent kör en funktion, så att funktionen inte längre är tillgänglig i användarupplevelsen. Om du vill återgå till exemplet med e-handelsprogram kan en misslyckad komponent som en mikrotjänst göra att rekommendationsmotorn inte är tillgänglig, men kunderna kan fortfarande söka efter produkter och slutföra transaktionen.

Du måste också planera åtgärder kring beroenden. Starka beroenden spelar en viktig roll i programfunktionen och tillgängligheten. Om de är frånvarande eller upplever ett fel kan det finnas betydande effekt. Frånvaron av svaga beroenden kan bara påverka specifika funktioner och inte påverka den övergripande tillgängligheten. Den här skillnaden återspeglar kostnaden för att upprätthålla relationen med hög tillgänglighet mellan tjänsten och dess beroenden. Klassificera beroenden som antingen starka eller svaga för att hjälpa dig att identifiera vilka komponenter som är viktiga för programmet.

Om programmet har starka beroenden som det inte kan fungera utan, bör tillgänglighets- och återställningsmålen för dessa beroenden överensstämma med själva programmets mål. Minimera beroenden för att få kontroll över programmets tillförlitlighet. Mer information finns i Minimera samordningen mellan programtjänster för att uppnå skalbarhet.

Om programmets livscykel är nära kopplad till livscykeln för dess beroenden kan programmets driftseffektivitet vara begränsad, särskilt för nya versioner.

Identifiering

Felidentifiering är viktigt för att säkerställa att du korrekt har identifierat felpunkter i analysen och planerat dina åtgärdsstrategier korrekt. Identifiering i det här sammanhanget innebär övervakning av din infrastruktur, dina data och ditt program samt aviseringar när problem uppstår. Automatisera identifieringen så mycket som möjligt och skapa redundans i dina driftsprocesser för att säkerställa att aviseringar alltid fångas och besvaras tillräckligt snabbt för att uppfylla dina affärskrav. Mer information finns i Rekommendationer för övervakning.

Resultat

För resultatet av analysen skapar du en uppsättning dokument som effektivt kommunicerar dina resultat, de beslut som du har fattat i förhållande till flödeskomponenterna och begränsningen samt effekten av felet på din arbetsbelastning.

I din analys prioriterar du de fellägen och åtgärdsstrategier som du har identifierat baserat på allvarlighetsgrad och sannolikhet. Använd den här prioriteringen för att fokusera dokumentationen på de fellägen som är vanliga och tillräckligt allvarliga för att garantera att du lägger tid, ansträngning och resurser på att utforma strategier för att minska riskerna. Det kan till exempel finnas vissa fellägen som är mycket sällsynta vid förekomst eller identifiering. Att utforma riskreduceringsstrategier runt dem är inte värt kostnaden.

I följande exempeltabell finns en startpunkt för dokumentationen.

Under den första FMA-övningen kommer de dokument som du producerar främst att vara teoretisk planering. FMA-dokumenten bör granskas och uppdateras regelbundet för att säkerställa att de är uppdaterade med din arbetsbelastning. Kaostestning och verkliga upplevelser hjälper dig att förfina dina analyser över tid.

Azure-underlättande

Använd Azure Monitor och Log Analytics för att identifiera problem i din arbetsbelastning. Mer information om problem som rör din infrastruktur, dina appar och databaser finns i verktyg som Application Insights, Container Insights, Network Insights, VM Insights och SQL Insights.

Azure Chaos Studio är en hanterad tjänst som använder kaosteknik för att hjälpa dig att mäta, förstå och förbättra din molnprogram- och tjänstresiliens.

Information om hur du tillämpar FMA-principer på vanliga Azure-tjänster finns i Analys av felläge för Azure-program.

Exempel

Följande tabell visar ett FMA-exempel för en e-handelswebbplats som finns på Azure App Service-instanser med Azure SQL databaser och som frontas av Azure Front Door.

Användarflöde: Användarinloggning, produktsökning och kundvagnsinteraktion

Komponent Risk Sannolikheten Effekt/riskreducering/anmärkning Avbrott
Microsoft Entra ID Tjänstavbrott Låg Fullständigt avbrott i arbetsbelastningen. Beroende av Microsoft för att åtgärda. Fullständig
Microsoft Entra ID Felaktig konfiguration Medel Användare kan inte logga in. Ingen nedströmseffekt. Supportavdelningen rapporterar konfigurationsproblem till identitetsteamet. Ingen
Azure Front Door Tjänstavbrott Låg Fullständigt avbrott för externa användare. Beroende av Microsoft för att åtgärda. Endast extern
Azure Front Door Regionalt avbrott Mycket låg Minimal effekt. Azure Front Door är en global tjänst, så global trafikdirigering dirigerar trafik via icke-påverkade Azure-regioner. Ingen
Azure Front Door Felaktig konfiguration Medel Felkonfigurationer bör fångas under distributionen. Om dessa inträffar under en konfigurationsuppdatering måste administratörer återställa ändringarna. Konfigurationsuppdateringen orsakar ett kort externt avbrott. Endast extern
Azure Front Door DDOS-attack Medel Risk för avbrott. Microsoft hanterar DDoS-skydd (L3 och L4) och Azure Web Application Firewall blockerar de flesta hot. Potentiell risk för effekt från L7-attacker. Risk för partiellt avbrott
Azure SQL Tjänstavbrott Låg Fullständigt avbrott i arbetsbelastningen. Beroende av Microsoft för att åtgärda. Fullständig
Azure SQL Regionalt avbrott Mycket låg Redundansväxlingsgruppen redundansväxlar till den sekundära regionen. Potentiellt avbrott under redundansväxling. Mål för återställningstid (RTO) och mål för återställningspunkter som ska fastställas under tillförlitlighetstestning. Potentiell fullständig
Azure SQL Avbrott i tillgänglighetszonen Låg Ingen effekt Ingen
Azure SQL Skadlig attack (inmatning) Medel Minimal risk. Alla Azure SQL instanser är virtuella nätverk som är bundna via privata slutpunkter och nätverkssäkerhetsgrupper (NSG:er) lägger till ytterligare skydd för intra-virtuella nätverk. Potentiell låg risk
App Service Tjänstavbrott Låg Fullständigt avbrott i arbetsbelastningen. Beroende av Microsoft för att åtgärda. Fullständig
App Service Regionalt avbrott Mycket låg Minimal effekt. Svarstid för användare i regioner som påverkas. Azure Front Door dirigerar automatiskt trafik till icke-påverkade regioner. Ingen
App Service Avbrott i tillgänglighetszonen Låg Ingen effekt. Apptjänster har distribuerats som zonredundanta. Utan zonredundans finns det en potentiell effekt. Ingen
App Service DDOS-attack Medel Minimal effekt. Inkommande trafik skyddas av Azure Front Door och Azure Web Application Firewall. Ingen

Checklista för tillförlitlighet

Se den fullständiga uppsättningen rekommendationer.