Designprinciper för tillförlitlighet

Att skapa ett tillförlitligt program i molnet skiljer sig från traditionell programutveckling. Tidigare har du kanske köpt nivåer av redundant maskinvara på högre nivå för att minimera risken för att en hel programplattform inte fungerar.

I molnet bekräftar vi att fel inträffar. Målet är att minimera effekten av en enda komponent som havererar snarare än att förhindra fel helt och hållet.

Om du vill utvärdera din arbetsbelastning med hjälp av de grundsatser som finns i Azure Well-Architected Framework kan du läsa Microsoft Azure Well-Architected Granskning.

Följande designprinciper ger:

  • Kontext för frågor
  • Varför en viss aspekt är viktig
  • Hur en aspekt gäller för tillförlitlighet

Dessa viktiga designprinciper används som objektiv för att utvärdera tillförlitligheten för ett program som distribueras i Azure. Dessa objektiv utgör ett ramverk för frågor om programutvärdering.

Design för affärskrav

Tillförlitlighet är ett subjektivt begrepp. För att ett program ska vara korrekt tillförlitligt måste det återspegla de affärskrav som omger det.

Till exempel kräver ett verksamhetskritiskt 99.999% program med ett serviceavtal (SLA) en högre nivå av tillförlitlighet än ett annat program med ett serviceavtal på 95%.

Kostnadskonsekvenser är oundvikliga när du inför större tillförlitlighet och hög tillgänglighet. Den här avvägningen bör övervägas noggrant.

Design för fel

Det går inte att undvika fel i en mycket distribuerad miljö och miljö för flera innehavare som Azure.

Genom att förutse fel, från enskilda komponenter till hela Azure-regioner, kan du utveckla en lösning på ett motståndskraftigt sätt för att öka tillförlitligheten.

Observera programmets hälsa

Innan du kan åtgärda problem som påverkar programmets tillförlitlighet måste du först identifiera dessa problem.

Genom att övervaka driften av ett program i förhållande till ett felfritt tillstånd kan du identifiera och förutsäga tillförlitlighetsproblem.

Med övervakning kan du vidta snabba och korrigerande åtgärder.

Automatisering av enhet

En av de främsta orsakerna till programavbrott är mänskliga fel på grund av distributionen av otillräckligt testad programvara eller felaktig konfiguration.

För att minimera risken för och konsekvenserna av mänskliga fel är det viktigt att sträva efter automatisering i alla aspekter av en molnlösning.

Automatiseringen förbättras:

  • Tillförlitlighet
  • Automatiserad testning
  • Distribution
  • Hantering

Design för självåterställning

Självreläkning beskriver systemets förmåga att hantera fel automatiskt. Hanteringsfel sker via fördefinierade reparationsprotokoll. Dessa protokoll ansluter till fellägen i lösningen.

Det är ett avancerat begrepp som kräver en hög nivå av systemmognad med övervakning och automatisering.

Från början bör självreläkning vara en önskan att maximera tillförlitligheten.

Design för utskalning

Utskalning är ett begrepp som fokuserar på ett systems förmåga att svara på efterfrågan genom horisontell tillväxt. När trafiken växer läggs fler resursenheter till parallellt, i stället för att öka storleken på de befintliga resurserna.

Genom skalningsenheter kan ett system hantera förväntade och oväntade trafikökningar, vilket är viktigt för övergripande tillförlitlighet.

Skalningsenheter minskar ytterligare effekterna av ett enskilt resursfel.

Nästa steg