Ontwerpprincipes voor betrouwbaarheid
Een betrouwbare toepassing bouwen in de cloud is anders dan traditioneel toepassingen bouwen. In het verleden hebt u mogelijk niveaus van redundante hogere hardware aangeschaft om de kans te minimaliseren dat een volledig toepassingsplatform uitvalt.
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.
Raadpleeg de Microsoft Azure Well-Architected Review om uw workload te beoordelen met behulp van de grondbeginselen in het Azure Well-Architected Framework.
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 toepassingsevaluatievragen.
Ontwerpen voor bedrijfsvereisten
Betrouwbaarheid is een subjectief concept. Een toepassing kan alleen betrouwbaar zijn als deze overeenkomt met de bedrijfsvereisten eromheen.
Een bedrijfskritieke toepassing met een 99.999%
Service Level Agreement (SLA) vereist bijvoorbeeld een hoger betrouwbaarheidsniveau dan een andere toepassing met een SLA van 95%
.
Gevolgen voor de kosten zijn onvermijdelijk bij het introduceren van een grotere betrouwbaarheid en hoge beschikbaarheid. Deze afweging moet zorgvuldig worden overwogen.
Ontwerpen voor fouten
Fouten kunnen niet worden vermeden in een zeer gedistribueerde omgeving met meerdere tenants, zoals Azure.
Door te anticiperen op fouten, van afzonderlijke onderdelen tot volledige Azure-regio's, kunt u een oplossing op een tolerante manier ontwikkelen om de betrouwbaarheid te vergroten.
Toepassingsstatus 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 te bewaken ten opzichte van een goede status, kunt u betrouwbaarheidsproblemen detecteren en voorspellen.
Met bewaking kunt u snel en herstellende maatregelen nemen.
Automatisering aandrijven
Een van de belangrijkste oorzaken van downtime van toepassingen is menselijke fouten als gevolg van de implementatie van onvoldoende geteste software of door onjuiste configuratie.
Om de kans 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 het vermogen van een systeem om fouten automatisch aan te pakken. Het verwerken van fouten vindt plaats via vooraf gedefinieerde herstelprotocollen. Deze protocollen maken verbinding met foutmodi in de oplossing.
Het is een geavanceerd concept dat een hoog niveau van systeemrijpheid vereist met bewaking en automatisering.
Vanaf het begin moet zelfherstel een streven zijn om de betrouwbaarheid te maximaliseren.
Ontwerpen voor uitschalen
Scale-out is een concept dat zich richt op het vermogen van een systeem om te reageren op de vraag door middel van horizontale groei. Naarmate het verkeer groeit, worden er meer resource-eenheden toegevoegd in plaats van de bestaande resources groter te maken.
Met schaaleenheden kan een systeem verwachte en onverwachte verkeerstoenames verwerken, wat essentieel is voor de algehele betrouwbaarheid.
Schaaleenheden verminderen de gevolgen van één resourcefout verder.