High availability vs fault tolerance – wat houden deze begrippen precies in? Het zijn twee IT-concepten die nauw met elkaar samenhangen maar andere eisen stellen en andere resultaten opleveren. In dit artikel bespreken we het verschil tussen high availability (HA) en fault tolerance (FT) binnen de IT-infrastructuur. We lichten de belangrijkste verschillen, use cases en voordelen van beide toe zodat u ervoor kunt zorgen dat uw infrastructuur voldoet aan de specifieke eisen op het gebied van betrouwbaarheid en beschikbaarheid.
Wat is high availability (HA)?
“Beschikbaarheid” betekent in deze context of gebruikers of services toegang hebben tot een systeem. Is een systeem niet beschikbaar, dan kan het zijn taak niet uitvoeren. Beschikbaarheid wordt gemeten aan de hand van de totale tijd dat een service per jaar beschikbaar is: een applicatie met 99% beschikbaarheid hoort 361,35 dagen per jaar beschikbaar te zijn (0,99 vermenigvuldigd met 365 dagen in een jaar). Veel bedrijven leveren hun onlinediensten met een contract waarin het geboden beschikbaarheidsniveau is vastgelegd als onderdeel van hun service level agreement (SLA).
High availability is een architectuur waarin systemen en software zo worden uitgerold en geconfigureerd dat uptime en het vermogen om op verzoeken te reageren voorrang krijgen. Van high availability is doorgaans sprake bij een uptime van 99% of hoger. Een eventuele onderbreking van de dienstverlening hoort kortstondig en zeldzaam te zijn, als die al optreedt – een applicatie die 99% beschikbaarheid belooft, hoort niet dagen of zelfs maar minuten achter elkaar offline te zijn, ook al blijft ze daarmee binnen de afgesproken marge.
Ook als u geen diensten aan andere bedrijven levert, hebben veel organisaties high availability nodig om de ononderbroken werking van hun eigen bedrijfsvoering te garanderen. Heeft u bijvoorbeeld servers die uw verkoop- of e-commercesoftware hosten, dan moeten die gericht zijn op high availability zodat klanten nooit worden belemmerd om geld bij u uit te geven.
Wat is fault tolerance (FT) en waarin verschilt het van HA?
Fault tolerance gaat een stap verder dan high availability en streeft naar een infrastructuur die helemaal geen onderbrekingen kent. Het doel is hetzelfde als bij high availability – onderbreking van de dienstverlening voorkomen – maar de mechanismen om systemen fouttolerant te maken zijn veel complexer en duurder.
Daarom besluiten veel technische teams dat een bepaald niveau van high availability praktischer en kosteneffectiever is dan een volledig fouttolerant systeem of dat 100% uptime de overhead niet waard is. Dat een webshop die op high availability is ontworpen een paar seconden offline gaat op een moment zonder klanten (om een bug te verhelpen of een update te installeren) is bijvoorbeeld acceptabel, maar een luchtverkeersleidingssysteem dat periodiek enige tijd uitvalt is volstrekt onaanvaardbaar: alle betrokken systemen moeten nul uitvaltijd hebben.
Hoe werken ze?
High availability
High availability maakt gebruik van een aantal belangrijke mechanismen, afhankelijk van het soort diensten dat wordt geleverd:
- Replicatie en mirroring: Replicatie zorgt ervoor dat er meerdere actuele kopieën van gegevens staan op servers die op aparte hardware draaien (en zelfs op aparte locaties). Valt er één uit, dan kunnen gebruikers snel naar een andere server worden omgeleid. Gegevensintegriteit moet over alle systemen heen worden gecontroleerd zodat alle gegevens actueel, volledig en juist zijn.
- Clustering en load balancers: Webservers, databases en andere services kunnen op meerdere servers worden gehost en zo worden geconfigureerd dat het verkeer erover wordt verdeeld en geen enkele server overbelast raakt. Valt door een probleem één server in een cluster uit, dan blijft de dienstverlening ononderbroken doordat de andere servers blijven draaien.
- Redundantie en back-up: Regelmatige back-ups zorgen er, naast gerepliceerde kopieën, voor dat bij beschadigde of corrupte gegevens of bij een onherstelbaar systeem alles kan worden teruggezet naar een bekende goede staat.
- Redundante hardware: RAID is een veelgebruikte technologie om tegen schijfuitval te beschermen. Op netwerkniveau voorkomt de beschikbaarheid van meerdere failover-apparaten (bijvoorbeeld een tweede router en internetverbinding mocht de primaire verbinding wegvallen) dat problemen zoals stroompieken en doorgesneden kabels de werking stilleggen.
Fault tolerance
Fault tolerance voegt extra redundantie en foutdetectie toe voor volledige weerbaarheid tegen onderbrekingen. In feite combineert een fouttolerant systeem meerdere high-availabilitysystemen zodat uitvaltijd als geheel volledig kan worden vermeden, zelfs als een van die HA-systemen volledig uitvalt:
- Redundante HA-systemen (inclusief geografische redundantie): Bij een storing kan direct worden overgeschakeld naar meerdere hoogbeschikbare systemen: volledige duplicaten van een complete applicatie-infrastructuur of van de afzonderlijke onderdelen daarvan. Idealiter staan een of meer van die redundante systemen in een andere geografische regio als bescherming tegen natuurrampen of andere noodsituaties waardoor een heel datacenter offline kan gaan.
- Geautomatiseerde foutdetectie en terugkeer: Fouttolerante systemen moeten problemen kunnen signaleren zodra ze zich voordoen en ze onmiddellijk beperken, bijvoorbeeld door over te schakelen naar een redundant systeem terwijl het probleem wordt onderzocht en verholpen. Zodra het probleem is opgelost, hoort het systeem automatisch terug te keren naar de bedoelde staat.
- Single points of failure wegnemen: Een FT-systeem mag geen enkel single point of failure hebben. De architectuur van het systeem en van alle onderdelen moet regelmatig worden gecontroleerd op volledige redundantie (en op de werking van de redundante onderdelen).
- Fouten indammen: Sommige fouten kunnen andere infrastructuur raken en zich als een cascade door systemen verspreiden. Onverwachte datawaarden in een datapijplijn kunnen er bijvoorbeeld voor zorgen dat applicaties niet goed werken terwijl die waarden worden doorgegeven. FT-systemen horen op niet-kritieke fouten te monitoren en die te isoleren (bijvoorbeeld door foute berichten in een dead letter queue te plaatsen in plaats van ze mogelijk kritieke fouten te laten veroorzaken die de uptime kunnen raken).
Een van de belangrijkste technologieën voor zowel HA- als FT-systemen is geautomatiseerde monitoring en alarmering: doet zich een probleem voor, dan moeten technische teams een melding krijgen zodat ze direct kunnen reageren en onderbreking van de dienstverlening uitblijft.
High availability vs fault tolerance: voordelen en nadelen
Wanneer u bepaalt welk niveau van high availability u voor uw systeem wilt bereiken of volledige fault tolerance zinvol is, moet u rekening houden met de kosten, de prestaties en de technische gevolgen.
Fouttolerante systemen zijn veel duurder en complexer om te implementeren en te onderhouden dan systemen die alleen op high availability zijn ontworpen. Elk systeem moet immers meerdere redundante duplicaten hebben en bij elk duplicaat vermenigvuldigen zowel de implementatiekosten als de doorlopende hosting- en onderhoudskosten zich. Bovendien geldt: hoe groter uw IT-infrastructuur, hoe lastiger die met een klein team te beheren is zonder de juiste tools.
Prestaties en schaalbaarheid zijn nog twee overwegingen. Redundante onderdelen in FT dragen niet bij aan de prestaties (ze worden alleen ingezet bij een storing). Bij HA kunnen andere draaiende instanties, wanneer clustering voor failover wordt gebruikt, via een load balancer een deel van de werklast overnemen en zo de prestaties verbeteren. Dat valt in FT-systemen natuurlijk ook op te lossen door meerdere redundante high-availabilitysystemen in te zetten (tegen hoge kosten).
Zowel in high-availability- als in fouttolerante systemen kost het onderhouden van redundante gegevenskopieën extra resources, omdat die moeten worden overgedragen en geverifieerd – mogelijk een punt van zorg in use cases waarin latency telt (bijvoorbeeld geautomatiseerde effectenhandel).
High availability en volledig redundante infrastructuur worden met twee hoofdfactoren in gedachten ontworpen: uitvaltijd vermijden en snel herstel als er toch iets misgaat. De recovery time objective (RTO) van fouttolerante applicaties hoort nul te zijn, dus herstel moet direct plaatsvinden. Voor direct herstel moet de gegevensintegriteit van replica’s absoluut zijn. FT-systemen leggen daarom doorgaans meer nadruk op de integriteit van live datareplica’s, terwijl HA-systemen even kunnen pauzeren en een paar minuten de tijd kunnen nemen om te herstellen vanaf een bekende goede back-up.
Bouw kogelvrije systemen. Bekijk High availability vs fault tolerance: de belangrijkste verschillen uitgelegd voor meer veerkracht in uw systemen.
High availability en fault tolerance: beste praktijken
Wanneer u zelf high-availability- of fouttolerante systemen implementeert, zorg er dan voor dat u de volgende belangrijke technologieën en processen op orde heeft:
- Volledige redundantie: Zorg dat er geen enkel single point of failure bestaat.
- Geautomatiseerde detectie en respons: Implementeer systemen die problemen automatisch signaleren en beperken en die engineeringteams waarschuwen bij mogelijke problemen.
- Geografische weerbaarheid: Zorg bij FT-systemen dat er redundante systemen in een andere regio beschikbaar zijn. Zorg bij HA dat er in elk geval een actuele datamirror in een andere regio staat waaruit snel kan worden hersteld.
- Let op uw kosten: Onderschat de oplopende kosten van uitrol en onderhoud niet, zeker niet bij fouttolerante systemen.
Misschien besluit u dat high availability of fault tolerance de hogere kosten en inspanningen voor de use case van uw organisatie niet waard zijn. Dat betekent echter niet dat een van de tools waarop ze leunen niet absoluut cruciaal is: back-ups. Hoe complex (of eenvoudig) uw IT-infrastructuur ook is, u heeft een solide back-upplan nodig zodat ongelukken, diefstal of rampen de waardevolle informatie waarop u vertrouwt niet wegvagen.