Översikt över grundpelaren för tillförlitlighet
Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör mot dina kunder. Genom att skapa återhämtning i programramverket säkerställer du att dina arbetsbelastningar är tillgängliga och kan återställas från fel i valfri skala.
Att skapa för tillförlitlighet omfattar:
- Säkerställa en arkitektur med hög tillgänglig
- Återställning från fel, till exempel dataförlust, större avbrottstid eller incidenter med utpressningstrojaner
Om du vill utvärdera tillförlitligheten för din arbetsbelastning med hjälp av de grundsatsersom finns i Microsoft Azure Well-Architected Framework går du Microsoft Azure Well-Architected Granska.
Om du vill ha mer information kan du titta närmare på följande video om hur du fördjupar dig i tillförlitligheten för Azure-arbetsbelastningar:
I traditionell programutveckling har man fokuserat på att öka genomsnittstiden mellan fel (MTBF – mean time betwen failures). Man försökte förhindra att fel uppstod i systemet. Inom molnbaserad databehandling krävs ett annat tänkesätt på grund av flera faktorer:
- Distribuerade system är komplexa, och ett fel på en plats kan potentiellt störa hela systemet.
- Kostnaderna för molnmiljöer hålls nere på grund av maskinvara, så tillfälliga maskinvarufel måste förväntas.
- Programmen är ofta beroende av externa tjänster som kan bli tillfälligt otillgängliga eller vara begränsande för användare med stora volymer.
- Dagens användare förväntar sig ett programmen ska vara tillgängliga dygnet runt utan att någonsin vara offline.
Alla de här faktorerna gör att molntillämpningar måste utforma så att fel då och då förväntas, och tillämpningarna kan återställa sig själva efteråt. I Azure finns många återhämtningsfunktioner redan inbyggda i plattformen. Ett exempel:
- Azure Storage, SQL Database och Cosmos DB tillhandahåller inbyggd datareplikering över tillgänglighetszoner och regioner.
- Hanterade diskar i Azure placeras automatiskt i olika lagringsskalningsenheter för att begränsa effekterna av maskinvarufel.
- Virtuella datorer (VM) i en tillgänglighetsuppsättning sprids över flera feldomäner. En feldomän är en grupp virtuella datorer som delar en gemensam strömkälla och nätverkss switch. Detta begränsar effekten av potentiella fel på fysisk maskinvara, nätverksstörningar och strömavbrott.
- Tillgänglighetszoner är fysiskt separata platser i varje Azure-region. Varje zon består av ett eller flera datacenter som är utrustade med oberoende infrastruktur för ström, kylning och nätverk. Med tillgänglighetszoner kan du utforma och använda program och databaser som automatiskt övergår mellan zoner utan avbrott, vilket garanterar återhämtning om en zon påverkas. Mer information finns i Regioner och Tillgänglighetszoner i Azure.
Du måste ändå bygga in återhämtning i ditt program. Återhämtningsstrategier kan användas på alla nivåer i arkitekturen. Vissa åtgärder är mer taktiska till sin natur– till exempel att försöka utföra ett fjärrsamtal igen efter ett tillfälligt nätverksfel. Andra åtgärder är mer strategiska, som att redundansväxla hela tillämpningen till en sekundär region. Taktiska åtgärder kan göra stor skillnad. Även om det är ovanligt att en hel region drabbas av störningar är tillfälliga problem som överbelastning vanligare, så du bör rikta in dig på de här problemen först. Det är också viktigt att ha rätt övervakning och diagnostik, både för att upptäcka fel när de inträffar och för att hitta rotorsaken.
När du skapar ett program med återhämtningsförmåga måste du utvärdera kraven på tillgänglighet. Hur stora driftstopp är okej? Mängden stilleståndstid är delvis en kostnadsfunktion. Hur mycket kostar eventuell nedtid för företaget? Hur mycket bör du investera i hög tillgänglighet för programmet?
Ämnen och metodtips
Grundpelaren för tillförlitlighet omfattar följande ämnen och metodtips som hjälper dig att skapa en motståndskraftig arbetsbelastning:
| Ämne om tillförlitlighet | Description |
|---|---|
| Tillförlitlighetsprinciper | Dessa viktiga principer används som objektiv för att utvärdera tillförlitligheten för ett program som distribueras i Azure. |
| Design för tillförlitlighet | Överväg hur system använder Tillgänglighetszoner, utför skalbarhet, svarar på fel och andra strategier som optimerar tillförlitligheten i programdesignen. |
| Checklista för återhämtning för specifika Azure-tjänster | Varje teknik har sina egna specifika fellägen, som du måste tänka på när du utformar och implementerar ditt program. Använd den här checklistan för att granska återhämtningsöverväganden för specifika Azure-tjänster. |
| Mål- och icke-funktionella krav | Målkrav och icke-funktionella krav som tillgänglighetsmål och återställningsmål gör att du kan mäta drifttid och stilleståndstid för dina arbetsbelastningar. Att ha tydligt definierade mål är viktigt att ha ett mål att arbeta och mäta mot. |
| Återhämtning och beroenden | Återställning av fel i systemet bör ingå i arkitektur- och designfaserna från början för att undvika risken för fel. Beroenden krävs för att programmet ska fungera fullt ut. |
| Tillgänglighetszoner | Tillgänglighetszoner kan användas för att sprida en lösning över flera zoner inom en region, så att ett program kan fortsätta att fungera när en zon slutar fungera. |
| Tillgänglighet för tjänster | Tillgängligheten för tjänster mellan Azure-regioner beror på en regions typ. Azures allmänna princip för att distribuera tjänster till en viss region styrs främst av regiontyp, tjänstkategorier och kundefterfrågan. |
| Terminologi för tillgänglighetszon | För att bättre förstå regioner och tillgänglighetszoner i Azure hjälper det till att förstå viktiga termer eller begrepp. |
| Bästa praxis | Under arkitekturfasen ska du fokusera på att implementera metoder som uppfyller företagets behov, identifiera eventuella felpunkter och minimera omfånget för fel. |
| Testning för tillförlitlighet | Regelbundna tester bör utföras som en del av varje större ändring för att verifiera befintliga tröskelvärden, mål och antaganden. |
| Övervakning av tillförlitlighet | Få en övergripande bild av programmets hälsotillstånd. Om något misslyckas måste du veta att det misslyckades, när det misslyckades och varför. |
| Tillförlitlighetsmönster | Program måste utformas och implementeras för att maximera tillgängligheten. |