Principes voor het ontwerpen van betrouwbaarheid
Een betrouwbare toepassing bouwen in de cloud is anders dan traditioneel toepassingen bouwen. In het verleden hebt u mogelijk niveaus van redundante hogere-endhardware aangeschaft om de kans te minimaliseren dat een volledig toepassingsplatform uitvallen.
In de cloud erkennen we dat er fouten optreden. In plaats van fouten helemaal te proberen te voorkomen, is het doel de effecten van een onderdeel met een storing te beperken.
Als u uw workload wilt beoordelen aan de hand van de basisrichtlijnen in het Azure Well-Architected Framework, verwijst u naar de Microsoft Azure Well-Architected Beoordeling.
De volgende ontwerpprincipes bieden:
- Context voor vragen
- Waarom een bepaald aspect belangrijk is
- Hoe een aspect van toepassing is op betrouwbaarheid
Deze kritieke ontwerpprincipes worden gebruikt als lenzen om de betrouwbaarheid te beoordelen van een toepassing die in Azure is geïmplementeerd. Deze lenzen bieden een framework voor de vragen over toepassingsevaluatie.
Ontwerpen voor zakelijke vereisten
Betrouwbaarheid is een subjectief concept. Een toepassing kan alleen op de juiste wijze betrouwbaar zijn als deze voldoet aan de bedrijfsvereisten eromheen.
Een bedrijfskritieke 99.999%
toepassing met een Service Level Agreement (SLA) vereist bijvoorbeeld een hoger betrouwbaarheidsniveau dan een andere toepassing met een SLA van 95%
.
Kosten zijn onvermijdelijk bij het introduceren van een grotere betrouwbaarheid en hoge beschikbaarheid. Deze afweging moet zorgvuldig worden overwogen.
Ontwerpen voor fout
Fouten kunnen niet worden vermeden in een zeer gedistribueerde omgeving met meerdere tenants, zoals Azure.
Door fouten te anticiperen, van afzonderlijke onderdelen tot volledige Azure-regio's, kunt u een oplossing ontwikkelen op een flexibele manier om de betrouwbaarheid te vergroten.
Toepassingstoestand observeren
Voordat u problemen kunt oplossen die van invloed zijn op de betrouwbaarheid van toepassingen, moet u deze problemen eerst detecteren.
Door de werking van een toepassing ten opzichte van een goede status te bewaken, kunt u betrouwbaarheidsproblemen detecteren en voorspellen.
Met bewaking kunt u snel en herstel ondernemen.
Automatisering van station
Een van de belangrijkste oorzaken van downtime van toepassingen is een menselijke fout vanwege de implementatie van onvoldoende geteste software of door onjuiste configuratie.
Om de mogelijkheid en het gevolg van menselijke fouten te minimaliseren, is het essentieel om te streven naar automatisering in alle aspecten van een cloudoplossing.
Automatisering verbetert:
- Betrouwbaarheid
- Geautomatiseerd testen
- Implementatie
- Beheer
Integreer zelfherstel in het ontwerp
Zelfherstel beschrijft de mogelijkheid van een systeem om automatisch fouten op te kunnen gaan. Het afhandelen van fouten vindt plaats via vooraf gedefinieerde herstelprotocollen. Deze protocollen maken verbinding met foutmodi binnen de oplossing.
Het is een geavanceerd concept dat een hoog niveau van systeemvolwassenheid met bewaking en automatisering vereist.
Vanaf het begin moet zelfherstel een streven zijn om de betrouwbaarheid te maximaliseren.
Ontwerpen voor uitschalen
Uitschalen is een concept dat is gericht op het vermogen van een systeem om te reageren op de vraag via horizontale groei. Naarmate het verkeer groeit, worden er meer resource-eenheden parallel toegevoegd, in plaats van de grootte van de bestaande resources te vergroten.
Via schaaleenheden kan een systeem verwachte en onverwachte toename van het verkeer verwerken, wat essentieel is voor de algehele betrouwbaarheid.
Schaaleenheden verminderen de gevolgen van één resourcefout nog verder.