Rekommendationer för att utforma redundans
Gäller för denna checklista för Azure Well-Architected Framework Reliability:
RE:05 | Lägg till redundans på olika nivåer, särskilt för kritiska flöden. Tillämpa redundans på beräknings-, data-, nätverks- och andra infrastrukturnivåer i enlighet med de identifierade tillförlitlighetsmålen. |
---|
Relaterade guider: Multiregional design | med hög tillgänglighet Med hjälp av tillgänglighetszoner och regioner
Den här guiden beskriver rekommendationerna för att lägga till redundans i kritiska flöden i olika arbetsbelastningslager, vilket optimerar återhämtning. Uppfylla kraven för dina definierade tillförlitlighetsmål genom att tillämpa rätt redundansnivåer på dina beräknings-, data-, nätverks- och andra infrastrukturnivåer. Använd den här redundansen för att ge din arbetsbelastning en stark och tillförlitlig grund att bygga vidare på. När du skapar din arbetsbelastning utan infrastrukturredundans finns det en hög risk för längre stilleståndstid på grund av potentiella fel.
Definitioner
Period | Definition |
---|---|
Redundans | Implementeringen av flera identiska instanser av en arbetsbelastningskomponent. |
Flerspråkig persistens | Konceptet att använda olika lagringstekniker med samma program eller lösning för att dra nytta av de bästa funktionerna för varje komponent. |
Datakonsekvens | Måttet på hur en viss datauppsättning är synkroniserad eller osynkroniserad finns i flera butiker. |
Partitionering | Processen att fysiskt dela upp data i separata datalager. |
Fragment | En horisontell databaspartitioneringsstrategi som stöder flera lagringsinstanser med ett gemensamt schema. Data replikeras inte i alla instanser. |
Viktiga designstrategier
När det gäller tillförlitlighet använder du redundans för att innehålla problem som påverkar en enskild resurs och ser till att dessa problem inte påverkar hela systemets tillförlitlighet. Använd den information som du har identifierat om dina kritiska flöden och tillförlitlighetsmål för att fatta välgrundade beslut som krävs för varje flödes redundans.
Du kan till exempel ha flera webbservernoder som körs samtidigt. Det kritiska flödet som de stöder kan kräva att alla har repliker som är redo att acceptera trafik om det finns ett problem som påverkar hela poolen, till exempel ett regionalt avbrott. Eftersom storskaliga problem är sällsynta och det är kostsamt att distribuera en hel uppsättning repliker kan du distribuera ett begränsat antal repliker så att flödet fungerar i ett degraderat tillstånd tills du löser problemet.
När du utformar för redundans i samband med prestandaeffektivitet distribuerar du belastningen över flera redundanta noder för att säkerställa att varje nod presterar optimalt. När det gäller tillförlitlighet skapar du extra kapacitet för att absorbera fel eller fel som påverkar en eller flera noder. Se till att den extra kapaciteten kan absorbera fel under hela den tid som behövs för att återställa de berörda noderna. Med denna skillnad i åtanke måste båda strategierna fungera tillsammans. Om du sprider trafik över två noder för prestanda och båda körs med 60 procents användning och en nod misslyckas riskerar den återstående noden att bli överbelastad eftersom den inte kan köras med 120 procent. Sprid ut belastningen med en annan nod för att säkerställa att dina prestanda- och tillförlitlighetsmål upprätthålls.
Kompromisser:
- Mer redundans för arbetsbelastningar motsvarar mer kostnader. Överväg att lägga till redundans och granska din arkitektur regelbundet för att säkerställa att du hanterar kostnader, särskilt när du använder överetablering. När du använder överetablering som en återhämtningsstrategi kan du balansera den med en väldefinierad skalningsstrategi för att minimera kostnadseffektiviteten.
- Det kan finnas prestandaavvägningar när du skapar en hög grad av redundans. Resurser som sprids över tillgänglighetszoner eller regioner kan till exempel påverka prestanda eftersom du måste skicka trafik över anslutningar med hög latens mellan redundanta resurser, till exempel webbservrar eller databasinstanser.
- Olika flöden inom samma arbetsbelastning kan ha olika tillförlitlighetskrav. Flödesspecifika redundansdesigner kan potentiellt medföra komplexitet i den övergripande designen.
Redundant arkitekturdesign
Överväg två metoder när du utformar en redundant arkitektur: aktiv-aktiv eller aktiv-passiv. Välj din metod beroende på hur kritiskt användarflöde och systemflöde som infrastrukturkomponenterna stöder. När det gäller tillförlitlighet hjälper en aktiv-aktiv design i flera regioner dig att uppnå högsta möjliga tillförlitlighetsnivå, men det är betydligt dyrare än en aktiv-passiv design. Att bestämma lämpliga geografiska regioner blir nästa viktiga val. Du kan också använda dessa designmetoder för en enda region med hjälp av tillgänglighetszoner. Mer information finns i Rekommendationer för design med hög tillgänglighet för flera regioner.
Distributionsstämplar och skalningsenheter
Oavsett om du distribuerar i en aktiv-aktiv eller aktiv-passiv modell följer du designmönstret Distributionsstämplar för att se till att du distribuerar arbetsbelastningen på ett repeterbart och skalbart sätt. Distributionsstämplar är de grupper av resurser som krävs för att leverera din arbetsbelastning till en viss delmängd av dina kunder. Delmängden kan till exempel vara en regional delmängd eller en delmängd med samma krav på datasekretess som din arbetsbelastning. Tänk på varje stämpel som en skalningsenhet som du kan duplicera för att skala arbetsbelastningen vågrätt eller för att utföra blågröna distributioner. Utforma arbetsbelastningen med distributionsstämplar för att optimera aktiv-aktiv eller aktiv-passiv implementering för återhämtning och hanteringsbelastning. Planering för utskalning i flera regioner är också viktigt för att övervinna potentiella tillfälliga resurskapacitetsbegränsningar i en region.
Tillgänglighetszoner i Azure-regioner
Oavsett om du distribuerar en aktiv-aktiv eller en aktiv-passiv design kan du dra nytta av tillgänglighetszoner i de aktiva regionerna för att helt optimera din återhämtning. Många Azure-regioner tillhandahåller flera tillgänglighetszoner, som är avgränsade grupper av datacenter i en region. Beroende på Azure-tjänsten kan du dra nytta av tillgänglighetszoner genom att distribuera element i din arbetsbelastning redundant över zoner eller fästa element i specifika zoner. Mer information finns i Rekommendationer för användning av tillgänglighetszoner och regioner.
Implementera zonredundans för beräkningsresurser
Välj lämplig beräkningstjänst för din arbetsbelastning. Beroende på vilken typ av arbetsbelastning du utformar kan det finnas flera tillgängliga alternativ. Utforska de tillgängliga tjänsterna och förstå vilka typer av arbetsbelastningar som fungerar bäst på en viss beräkningstjänst. Till exempel är SAP-arbetsbelastningar vanligtvis bäst lämpade för IaaS-beräkningstjänster (infrastruktur som en tjänst). För ett containerbaserat program fastställer du de specifika funktioner som du behöver ha kontroll över för att avgöra om du ska använda Azure Kubernetes Service (AKS) eller en PaaS-lösning (plattform som en tjänst). Din molnplattform hanterar fullständigt en PaaS-tjänst.
Använd PaaS-beräkningsalternativ om dina krav tillåter det. Azure hanterar PaaS-tjänster fullt ut, vilket minskar din hanteringsbörda och en dokumenterad grad av redundans är inbyggd.
Använd Skalningsuppsättningar för virtuella Azure-datorer om du behöver distribuera virtuella datorer (VM). Med Vm-skalningsuppsättningar kan du automatiskt sprida din beräkning jämnt över tillgänglighetszoner.
Håll beräkningslagret rent från alla tillstånd eftersom enskilda noder som hanterar begäranden kan tas bort, felas eller ersättas när som helst.
Använd zonredundanta tjänster där det är möjligt för att ge högre motståndskraft utan att öka driftbelastningen.
Överetablera kritiska resurser för att undvika fel i redundanta instanser, även innan automatiska skalningsåtgärder påbörjas, så att systemet fortsätter att fungera efter ett komponentfel. Beräkna den acceptabla effekten av ett fel när du införlivar överetablering i redundansdesignen. Precis som med beslutsprocessen för redundans avgör dina tillförlitlighetsmål och ekonomiska kompromissbeslut i vilken utsträckning du lägger till outnyttjad kapacitet med överetablering. Överetablering syftar specifikt på utskalning, vilket innebär att lägga till extra instanser av en viss beräkningsresurstyp i stället för att öka beräkningsfunktionerna för en enskild instans. Om du till exempel ändrar en virtuell dator från en SKU på lägre nivå till en SKU på högre nivå.
Distribuera IaaS-tjänster manuellt eller via automatisering i varje tillgänglighetszon eller region där du tänker implementera din lösning. Vissa PaaS-tjänster har inbyggda funktioner som replikeras automatiskt mellan tillgänglighetszoner och regioner.
Implementera zonredundans för dataresurser
Avgör om synkron eller asynkron datareplikering är nödvändig för din arbetsbelastnings funktioner. Information om hur du gör detta finns i Rekommendationer för användning av tillgänglighetszoner och regioner.
Överväg att öka datahastigheten. För kapacitetsplanering planerar du för datatillväxt, datakvarhållning och arkivering för att säkerställa att dina tillförlitlighetskrav uppfylls när mängden data i lösningen ökar.
Distribuera data geografiskt, vilket stöds av din tjänst, för att minimera effekten av geografiskt lokaliserade fel.
Replikera data mellan geografiska regioner för att ge motståndskraft mot regionala avbrott och katastrofala fel.
Automatisera redundans efter ett databasinstansfel. Du kan konfigurera automatisk redundans i flera Azure PaaS-datatjänster. Automatisk redundans krävs inte för datalager som stöder skrivningar i flera regioner, till exempel Azure Cosmos DB. Mer information finns i Rekommendationer för att utforma en strategi för haveriberedskap.
Använd det bästa datalagret för dina data. Använd flerspråkig persistens eller lösningar som använder en blandning av datalagertekniker. Data innehåller mer än bara beständiga programdata. De innehåller också programloggar, händelser, meddelanden och cacheminnen.
Överväg krav på datakonsekvens och använd eventuell konsekvens när kraven tillåter det. När data distribueras använder du lämplig samordning för att framtvinga starka konsekvensgarantier. Samordning kan minska dataflödet och göra systemen tätt kopplade, vilket kan göra dem mer spröda. Om en åtgärd till exempel uppdaterar två databaser, i stället för att placera den i ett enda transaktionsomfång, är det bättre om systemet kan hantera eventuell konsekvens.
Partitioneringsdata för tillgänglighet. Databaspartitionering förbättrar skalbarheten och kan också förbättra tillgängligheten. Om en shard slutar fungera kan de andra fragmenten fortfarande nås. Ett fel i en shard stör bara en delmängd av de totala transaktionerna.
Om horisontell partitionering inte är ett alternativ kan du använda mönstret Kommando- och frågeansvarssegregering (CQRS) för att separera skrivskyddade och skrivskyddade datamodeller. Lägg till fler redundanta skrivskyddade databasinstanser för att ge mer motståndskraft.
Förstå de inbyggda replikerings- och redundansfunktionerna i de tillståndskänsliga plattformstjänster som du använder. Specifika redundansfunktioner för tillståndskänsliga datatjänster finns i Relaterade länkar.
Implementera zonredundans för nätverksresurser
Besluta om en tillförlitlig och skalbar nätverkstopologi. Använd en hub-and-spoke-modell eller en Azure Virtual WAN-modell som hjälper dig att organisera din molninfrastruktur i logiska mönster som gör redundansdesignen enklare att skapa och skala.
Välj lämplig nätverkstjänst för att balansera och omdirigera begäranden inom eller mellan regioner. Använd globala eller zonredundanta lastbalanseringstjänster när det är möjligt för att uppfylla dina tillförlitlighetsmål.
Se till att du har allokerat tillräckligt med IP-adressutrymme i dina virtuella nätverk och undernät för att ta hänsyn till planerad användning, inklusive utskalningskrav.
Se till att programmet kan skalas inom portgränserna för den valda programvärdplattformen. Om ett program initierar flera utgående TCP- eller UDP-anslutningar kan det uttömma alla tillgängliga portar och orsaka sämre programprestanda.
Välj SKU:er och konfigurera nätverkstjänster som kan uppfylla dina krav på bandbredd och tillgänglighet. En VPN-gateways dataflöde varierar beroende på deras SKU. Stöd för zonredundans är endast tillgängligt för vissa SKU:er för lastbalanserare.
Se till att din design för hantering av DNS skapas med fokus på motståndskraft och har stöd för redundant infrastruktur.
Azure-underlättande
Azure-plattformen hjälper dig att optimera arbetsbelastningens återhämtning och lägga till redundans genom att:
Tillhandahålla inbyggd redundans med många PaaS- och saaS-lösningar (programvara som en tjänst), varav vissa kan konfigureras.
Gör att du kan utforma och implementera redundans mellan regioner med hjälp av tillgänglighetszoner och redundans mellan regioner.
Erbjuder replikmedvetna lastbalanseringstjänster som Azure Application Gateway, Azure Front Door och Azure Load Balancer.
Erbjuder enkelt implementerade geo-replikeringslösningar som aktiv geo-replikering för Azure SQL Database. Implementera global distribution och transparent replikering med hjälp av Azure Cosmos DB. Azure Cosmos DB erbjuder två alternativ för hantering av skrivningar i konflikt. Välj det bästa alternativet för din arbetsbelastning.
Erbjuder funktioner för återställning till tidpunkt för många PaaS-datatjänster.
Minska portöverbelastningen via Azure NAT Gateway eller Azure Firewall.
DNS-specifik Azure-underlättande
För interna namnmatchningsscenarier använder du privata Azure DNS-zoner som har inbyggd zonredundans och geo-redundans. Mer information finns i Återhämtning i privata Azure DNS-zoner.
För scenarier med extern namnmatchning använder du offentliga Azure DNS-zoner som har inbyggd zonredundans och geo-redundans.
Offentliga och privata Azure DNS-tjänster är globala tjänster som är motståndskraftiga mot regionala avbrott eftersom zondata är globalt tillgängliga.
För hybridnamnmatchningsscenarier mellan lokala miljöer och molnmiljöer använder du Azure DNS Private Resolver. Den här tjänsten stöder zonredundans om din arbetsbelastning finns i en region som stöder tillgänglighetszoner. Ett zonomfattande avbrott kräver ingen åtgärd under zonåterställning. Tjänsten återställer automatiskt och balanserar om för att dra nytta av den felfria zonen. Mer information finns i Återhämtning i Azure DNS Private Resolver.
Om du vill eliminera en enskild felpunkt och uppnå en mer elastisk hybridnamnmatchning mellan regioner distribuerar du två eller flera privata Azure DNS-matchare i olika regioner. DNS-redundans uppnås i ett scenario med villkorlig vidarebefordran genom att tilldela en matchare som din primära DNS-server. Tilldela den andra matcharen i en annan region som en sekundär DNS-server. Mer information finns i Konfigurera DNS-redundans med hjälp av privata matchare.
Exempel
Ett exempel på en redundant distribution i flera regioner finns i Baslinje med hög tillgänglighet zonredundant webbapp.
Följande diagram visar ett annat exempel:
Relaterade länkar
Mer information om redundans finns i följande resurser:
- Guide för Azure-regioner
- Redundans i Azure Storage
- Zonredundant lagring
- Aktiv geo-replikering i Azure SQL Database
- Konfigurera replikering mellan två hanterade instanser
Checklista för tillförlitlighet
Se den fullständiga uppsättningen rekommendationer.