High availability in de cloud: wat betekent het voor je architectuur?
High availability draait om uitval opvangen met redundantie, zones en automatische failover; de kosten en complexiteit nemen toe met de ambitie.
High availability betekent dat een dienst blijft werken wanneer een onderdeel uitvalt. Je bereikt het met redundantie, spreiding over zones, gezondheidscontroles en automatische failover. Kies het niveau op basis van wat uitval je kost; elke extra laag voegt complexiteit en kosten toe.
Voor wie: Ontwikkelaars, devops-engineers en technische kopers die de beschikbaarheid van een cloudtoepassing ontwerpen of beoordelen.
Wat betekent high availability?
Beschikbaarheid is het deel van de tijd dat een dienst bruikbaar is. High availability (HA) is een ontwerpdoel: geen enkel onderdeel mag een storingspunt zijn waardoor de hele dienst stilvalt. Een single point of failure is een onderdeel waarvan uitval de dienst stopt.
HA is iets anders dan disaster recovery. HA vangt storingen van onderdelen op, zonder merkbare onderbreking. Disaster recovery herstelt na een grote verstoring, zoals het verlies van een hele locatie, met een bepaalde herstel- en dataverliestijd.
Welke bouwstenen gebruik je?
Redundantie is het meervoudig uitvoeren van onderdelen. Een load balancer verdeelt verkeer over meerdere servers en slaat defecte over op basis van gezondheidscontroles. Een beschikbaarheidszone is een afgescheiden locatie binnen een regio met eigen stroom en netwerk; door onderdelen over zones te spreiden, overleef je het wegvallen van een zone.
De moeilijkste laag is data. Een stateless applicatie (zonder lokale toestand) is eenvoudig te vermenigvuldigen. Een database vraagt replicatie en een keuze tussen synchroon, met zekerheid over de laatste schrijfactie maar meer latency, en asynchroon, sneller maar met kans op verlies van de laatste wijzigingen.
Hoe bepaal je het niveau?
Vertaal beschikbaarheid naar zakelijke termen: wat kost een uur uitval, en hoeveel data mag je verliezen? Twee begrippen helpen. RTO (recovery time objective) is de maximale hersteltijd die je accepteert. RPO (recovery point objective) is de maximale hoeveelheid dataverlies, uitgedrukt in tijd.
Lees beschikbaarheidsbeloften van aanbieders kritisch. Vraag waarop een toezegging betrekking heeft, hoe wordt gemeten, wat de compensatie is en welke onderdelen uitgesloten zijn. Een dienst heeft pas HA als je eigen ontwerp dat benut; één server in één zone blijft kwetsbaar.
Hoe toets je het?
Oefen storingen. Zet een onderdeel bewust uit en kijk of de dienst doorloopt en alarmen afgaan. Test ook failover van de database en het herstel van een zone. Een ontwerp dat niet is beproefd, is een aanname.
Begrippen rond beschikbaarheid
| Begrip | Wat betekent het | Controlevraag |
|---|---|---|
| Redundantie | Onderdelen dubbel uitvoeren | Welke onderdelen zijn nog een storingspunt? |
| Beschikbaarheidszone | Afgescheiden locatie in een regio | Staat alles in één zone of verspreid? |
| Failover | Overschakeling naar een reserve | Automatisch of handmatig, en hoe snel? |
| RTO | Maximale hersteltijd | Is de tijd getest en haalbaar? |
| RPO | Maximaal acceptabel dataverlies | Past de replicatiewijze bij deze waarde? |
Voor wie is dit minder geschikt?
- Volledige HA over meerdere regio's is vaak overdreven voor interne of niet-kritieke toepassingen, vanwege kosten en complexiteit.
- HA vervangt geen back-up: een fout of aanval wordt snel naar alle kopieën gerepliceerd.
- Een team zonder ervaring met gedistribueerde systemen kan beter beginnen met een eenvoudiger ontwerp en dat stap voor stap uitbreiden.
Veelgestelde vragen
Wat is het verschil tussen HA en fault tolerance?
Fault tolerance probeert uitval volledig onzichtbaar te maken, vaak met dure dubbele uitvoering. HA accepteert een korte onderbreking bij failover.
Heb ik meerdere regio's nodig?
Alleen als verlies van een hele regio onacceptabel is. Voor veel toepassingen volstaan meerdere zones in een regio.
Wat is split brain?
Een toestand waarbij twee onderdelen elkaar niet zien en zich allebei als leider gedragen, wat tot conflicterende data leidt. Goede clusters voorkomen dat met een quorum.
Hoe zit het met onderhoud?
HA maakt onderhoud zonder onderbreking mogelijk: werk een onderdeel tegelijk bij terwijl de rest doorloopt.