Dela via


Molndesignmönster som stöder tillförlitlighet

När du utformar arbetsbelastningsarkitekturer bör du använda branschmönster som hanterar vanliga utmaningar. Mönster kan hjälpa dig att göra avsiktliga kompromisser inom arbetsbelastningar och optimera för önskat resultat. De kan också bidra till att minska risker som härrör från specifika problem, vilket kan påverka säkerhet, prestanda, kostnader och åtgärder. Om de inte minimeras kommer dessa risker så småningom att orsaka tillförlitlighetsproblem. Dessa mönster backas upp av verkliga upplevelser, är utformade för molnskala och driftsmodeller och är i sig leverantörsoberoende. Att använda välkända mönster som ett sätt att standardisera din arbetsbelastningsdesign är en komponent i driftseffektivitet.

Många designmönster har direkt stöd för en eller flera arkitekturpelare. Designmönster som stöder tillförlitlighetspelare prioriterar arbetsbelastningstillgänglighet, självbevarelsedrift, återställning, data och bearbetningsintegritet samt inneslutning av fel.

Designmönster för tillförlitlighet

I följande tabell sammanfattas molndesignmönster som stöder tillförlitlighetsmålen.

Mönster Sammanfattning
Ambassadör Kapslar in och hanterar nätverkskommunikation genom att avlasta övergripande uppgifter som är relaterade till nätverkskommunikation. De resulterande hjälptjänsterna initierar kommunikation för klientens räkning. Den här medlingspunkten ger en möjlighet att lägga till tillförlitlighetsmönster för nätverkskommunikation, till exempel återförsök eller buffring.
Serverdelar för klienter Individualiserar tjänstlagret för en arbetsbelastning genom att skapa separata tjänster som är exklusiva för ett specifikt klientdelsgränssnitt. På grund av den här separationen kanske ett fel i tjänstlagret som stöder en klient inte påverkar tillgängligheten för en annan klients åtkomst. När du behandlar olika klienter på olika sätt kan du prioritera tillförlitlighetsarbetet baserat på förväntade klientåtkomstmönster.
Bulkhead Introducerar avsiktlig och fullständig segmentering mellan komponenter för att isolera explosionsradien för fel. Den här strategin för felisolering försöker innehålla fel på bara skottet som har drabbats av problemet, vilket förhindrar påverkan på andra skott.
Cachereservera Optimerar åtkomsten till ofta lästa data genom att introducera ett cacheminne som fylls i på begäran. Cachen används sedan för efterföljande begäranden för samma data. Cachelagring skapar datareplikering och kan på begränsade sätt användas för att bevara tillgängligheten för data som används ofta om ursprungsdatalagret är tillfälligt otillgängligt. Om det uppstår ett fel i cacheminnet kan arbetsbelastningen dessutom återgå till ursprungsdatalagret.
Kretsbrytare Förhindrar kontinuerliga begäranden till ett beroende som inte fungerar eller inte är tillgängligt. Genom att göra det förhindrar det här mönstret överlagring av ett felberoende. Du kan också använda det här mönstret för att utlösa en graciös försämring i arbetsbelastningen. Kretsbrytare kombineras ofta med automatisk återställning för att ge både självbevarelsedrift och självåterställning.
Anspråkskontroll Separerar data från meddelandeflödet, vilket ger ett sätt att separat hämta data som är relaterade till ett meddelande. Meddelandebussar ger inte samma tillförlitlighet och haveriberedskap som ofta finns i dedikerade datalager, så att separera data från meddelandet kan ge ökad tillförlitlighet för underliggande data. Den här separationen möjliggör också en återställningsmetod för meddelandeköer efter en katastrof.
Kompenserande transaktion Tillhandahåller en mekanism för att återställa från fel genom att återställa effekterna av tidigare tillämpade åtgärder. Det här mönstret åtgärdar fel i kritiska arbetsbelastningsvägar med hjälp av kompensationsåtgärder, vilket kan innebära processer som att direkt återställa dataändringar, bryta transaktionslås eller till och med köra inbyggt systembeteende för att vända effekten.
Konkurrerande konsumenter Tillämpar distribuerad och samtidig bearbetning för att effektivt hantera objekt i en kö. Den här modellen skapar redundans i köbearbetning genom att behandla konsumenter som repliker, så ett instansfel hindrar inte andra konsumenter från att bearbeta kömeddelanden.
Händelsekällor Behandlar tillståndsändring som en serie händelser och samlar in dem i en oföränderlig logg med tillägg. Du kan använda det här mönstret när en tillförlitlig historik över ändringar är avgörande i en komplex affärsprocess. Det underlättar också tillståndsrekonstruktion om du behöver återställa statliga butiker.
Federerade identiteter Delegerar förtroende till en identitetsprovider som är extern för arbetsbelastningen för att hantera användare och tillhandahålla autentisering för ditt program. Avlastning av användarhantering och autentisering flyttar tillförlitligheten för dessa komponenter till identitetsprovidern, som vanligtvis har ett högt serviceavtal. Under haveriberedskapen för arbetsbelastningen behöver autentiseringskomponenterna förmodligen inte åtgärdas som en del av återställningsplanen för arbetsbelastningen.
Gateway-samling Förenklar klientinteraktioner med din arbetsbelastning genom att aggregera anrop till flera serverdelstjänster i en enda begäran. Med den här topologin kan du flytta övergående felhantering från en distribuerad implementering mellan klienter till en centraliserad implementering.
Gateway-avlastning Avlastning av bearbetning av begäran till en gatewayenhet före och efter vidarebefordran av begäran till en serverdelsnod. Om du avlastar det här ansvaret till en gateway minskar du komplexiteten i programkoden på serverdelsnoder. I vissa fall ersätter avlastning helt funktioner med en tillförlitlig plattformsfunktion.
Gateway-routning Dirigerar inkommande nätverksbegäranden till olika serverdelssystem baserat på begärande avsikter, affärslogik och serverdelstillgänglighet. Med gatewayroutning kan du dirigera trafik till endast felfria noder i systemet.
Geode Distribuerar system som körs i aktiv-aktiva tillgänglighetslägen i flera geografiska områden. Det här mönstret använder datareplikering för att stödja idealet att alla klienter kan ansluta till valfri geografisk instans. Det kan hjälpa din arbetsbelastning att klara ett eller flera regionala avbrott.
Övervakning av slutpunktshälsa Ger ett sätt att övervaka hälsotillståndet eller statusen för ett system genom att exponera en slutpunkt som är särskilt utformad för det ändamålet. Du kan använda den här slutpunkten för att hantera din arbetsbelastnings hälsa och för aviseringar och instrumentpaneler. Du kan också använda det som en signal för självåterställningsreparation.
Indextabell Optimerar datahämtning i distribuerade datalager genom att göra det möjligt för klienter att söka efter metadata så att data kan hämtas direkt, så att du inte behöver göra fullständiga genomsökningar av datalager. Eftersom klienter pekas på sin shard, partition eller slutpunkt via en sökningsprocess kan du använda det här mönstret för att underlätta en redundansväxlingsmetod för dataåtkomst.
Val av ledare Etablerar en ledare för instanser av ett distribuerat program. Ledaren samordnar ansvarsområden som är relaterade till att uppnå ett mål. Det här mönstret minimerar effekten av nodfel genom att omdirigera arbetet på ett tillförlitligt sätt. Den implementerar även redundans via konsensusalgoritmer när en ledare slutar fungera.
Rör och filter Delar upp komplex databearbetning i en serie oberoende steg för att uppnå ett specifikt resultat. Det enskilda ansvaret för varje steg möjliggör fokuserad uppmärksamhet och undviker distraktion av komierad databehandling.
Prioritetskö Säkerställer att objekt med högre prioritet bearbetas och slutförs före objekt med lägre prioritet. Genom att separera objekt baserat på affärsprioritet kan du fokusera tillförlitlighetsarbetet på det mest kritiska arbetet.
Utgivare/prenumerant Frikopplar komponenter i en arkitektur genom att ersätta direkt kommunikation från klient till tjänst eller från klient till tjänst med kommunikation via en mellanliggande meddelandekoordinator eller händelsebuss.
Köbaserad belastningsutjämning Styr nivån för inkommande begäranden eller uppgifter genom att buffrar dem i en kö och låter köprocessorn hantera dem i kontrollerad takt. Den här metoden kan ge motståndskraft mot plötsliga toppar i efterfrågan genom att koppla bort ankomsten av uppgifter från bearbetningen. Det kan också isolera fel i köbearbetningen så att de inte påverkar intaget.
Hastighetsbegränsning Styr frekvensen för klientbegäranden för att minska begränsningsfel och undvika obundna scenarier för återförsök vid fel. Den här taktiken skyddar klienten genom att erkänna begränsningarna och kostnaderna för att kommunicera med en tjänst när tjänsten är utformad för att undvika att nå angivna gränser. Det fungerar genom att styra antalet och/eller storleken på de åtgärder som skickas till tjänsten under en viss tidsperiod.
Försök igen Åtgärdar fel som kan vara tillfälliga eller tillfälliga genom att försöka utföra vissa åtgärder igen på ett kontrollerat sätt. Att minimera tillfälliga fel i ett distribuerat system är en viktig teknik för att förbättra en arbetsbelastnings motståndskraft.
Saga för distribuerade transaktioner Samordnar långvariga och potentiellt komplexa transaktioner genom att dela upp arbetet i sekvenser av mindre, oberoende transaktioner. Varje transaktion måste också ha kompenserande åtgärder för omvända fel vid körning och upprätthålla integritet. Eftersom monolitiska transaktioner i flera distribuerade system vanligtvis är omöjliga, ger det här mönstret konsekvens och tillförlitlighet genom att implementera atomicitet och kompensation.
Scheduler-agentövervakare Distribuerar och distribuerar uppgifter effektivt över ett system baserat på faktorer som kan observeras i systemet. Det här mönstret använder hälsomått för att identifiera fel och omdirigera uppgifter till en felfri agent för att minimera effekterna av ett fel.
Sekventiell konvoj Upprätthåller samtidiga inkommande meddelanden samtidigt som bearbetningen stöds i en definierad ordning. Det här mönstret kan eliminera konkurrensförhållanden som är svåra att felsöka, omtvistad meddelandehantering eller andra lösningar för att hantera felaktigt ordnade meddelanden som kan leda till fel.
Horisontell partitionering Dirigerar inläsningen till ett specifikt logiskt mål för att hantera den specifika begäran, vilket aktiverar samlokalisering för optimering. Eftersom data eller bearbetning är isolerad till fragmentet förblir ett fel i ett fragment isolerat till fragmentet.
Strangler-figur Tillhandahåller en metod för att systematiskt ersätta komponenterna i ett system som körs med nya komponenter, ofta under en migrering eller modernisering av systemet. Det här mönstrets inkrementella metod kan bidra till att minska riskerna under en övergång.
Begränsning Begränsar hastigheten eller dataflödet för inkommande begäranden till en resurs eller komponent. Du kan utforma gränserna för att förhindra resursöverbelastning som kan leda till fel. Du kan också använda det här mönstret som en kontrollmekanism i en graciös nedbrytningsplan.

Nästa steg

Granska de molndesignmönster som stöder de andra Grundpelarna i Azure Well-Architected Framework: