Wat is hoge beschikbaarheid (High Availability) en hoe werkt het?

Wat is hoge beschikbaarheid (High Availability) en hoe werkt het?

Wanneer de populariteit van je website, webshop of webapplicatie groeit krijg je te maken met nieuwe technische uitdagingen. Je gehoste applicatie moet om kunnen gaan met meer verkeer (load), het verminderen van downtime en het elimineren van ‘single points of failures’. Met High Availability (HA), een manier om je infrastructuur in te richten, kun je dit bereiken. In dit artikel zoomen we in het concept High Availability. Wat is het? En wat komt er allemaal bij kijken?

Wat is beschikbaarheid?

Voordat we de term High Availabillity uit kunnen leggen moeten we eerst stilstaan bij de term availability (beschikbaarheid). In de computerwereld wordt availability vaak in één adem genoemd met de tijd die sytemen bereikbaar en beschikbaar moeten zijn. Vaak wordt dit principe aangeduid met een percentage, zoals de hoeveelheid % uptime dat een systeem heeft. 100% uptime betekent bijvoorbeeld dat het systeem nooit offline is.

In de praktijk komt een uptime van 100% eigenlijk nooit voor. Elk systeem, of het nou een server is of een applicatie, heeft te maken met downtime (onbeschikbaarheid). Dat kan zijn omdat er onderhoud gepleegd wordt (updates, patches) of omdat er een calamiteit plaatsvindt (stroomuitval, security-incident).

Voor sommige systemen is het echter nodig om garanties te hebben over de uptime. En als we het over garanties hebben, dan hebben we het ook over ‘High Availability (HA)’.

Wat is High Availability (HA)?

High Availability (HA) kun je het best zien als een garantie die een hosting- of cloudprovider je geeft over de uptime van je website, webshop of webapplicatie.

Je kunt namelijk bij een hosting- of cloudserviceprovider een Service Level Agreement (SLA) afsluiten. In zo’n overeenkomst staat onder andere (vaak per server) hoeveel % uptime je als klant mag verwachten. De % uptime kun je doorvertalen naar dagen, aantal uren of zelfs milliseconden downtime per jaar.

Een bekende manier om de beschikbaarheid aan te duiden is met de ‘nines’. Het % beschikbaarheid in tijd kan dan omgerekend worden naar het aantal negens achter de komma.

Zie bijvoorbeeld dit schema:

Availability % Downtime per jaar

AvailabilityDowntime per jaar
99,9%8,77 uur
99,9952,60 minuten
99,9995,26 minuten
99,999931,56 seconden

Bron:Wikipedia

Hoe meer negens er achter de komma van de 99, hoe beter zou je denken. Er valt hier veel over te zeggen. Elke hostingprovider hanteert namelijk zijn eigen interpretaties.

Je kunt echter van één ding uitgaan: als het over HA gaat dan kun je daar met je hostingprovider afspraken over vastleggen in een SLA.

Wanneer is High Availability belangrijk?

High Availability is met name belangrijk als je websites, webshops of webapplicaties hebt waar uitval tot serieuze omzetverlies of reputatieschade kan leiden. Als de website vaak een hoge prioriteit heeft voor een organisatie, is het belangrijk om ook na te denken over hoge beschikbaarheid. Pas je dit niet toe, dan kunnen je applicaties – hoe robuust ze ook zijn opgezet – alsnog te maken krijgen met uitval.

Het toepassen van een High Availability strategie zorgt ervoor dat je de impact van uitval kunt reduceren. Reduceren, omdat voorkomen niet altijd mogelijk is. Zoals gezegd is 100% uptime niet realistisch en is het altijd mogelijk dat er onverwachts een situatie voordoet.

Vaak kunnen HA systemen ook automatisch herstellen bij uitval, zonder dat er een mens bij komt kijken. Handig, omdat webomgevingen steeds complexer worden. Het kan veel tijd schelen als er de systemen bij uitval zelf een oplossing kunnen genereren, want de oorzaak van is door een mens niet altijd gelijk te vinden. Door dit te automatiseren kan het probleem sneller opgelost worden.

Is voor jouw bedrijf enkele minuten of uren downtime een behoorlijke calamiteit? Dan is het verstandig om na te denken over een HA strategie.

Wat maakt systemen High Available?

Een van de doelen van HA is om ‘single points of failures’ te elimeren in alle lagen van de infrastructuur en hostingomgeving.

‘Single points of failures’ zijn componenten in je infrastructuur of hostingomgeving die voor een interruptie kunnen zorgen als er een fout plaatsvindt. Denk aan een enkele load balancer (komen we zo op terug), de opslag van data of een verkeerde configuratie in een webserver. In de basis geldt dat er bij single points of failures geen sprake is van redudantie. Redundantie is een ander woord voor ‘meervoudig’. In het geval van systemen betekent het dat je altijd een soort reservecomponent hebt op op terug te vallen als het eerste component uitvalt.

Single points of failures tackelen

Om alle ‘single points of failures’ te tackelen is het belangrijk om naar alle lagen van de infrastructuur en hostingomgeving te bekijken. Je kunt bijvoorbeeld beginnen met de fysieke laag (het datacenter) en vanaf daar elke keer een niveau omlaaggaan.

Wat gebeurt er bijvoorbeeld als een datacenter geen stroom meer krijgt? Wat gebeurt er als er een enkele server uitvalt? Wat gebeurt er als we daar een load balancer voor zetten? Voor elk component in de infrastructuur of hostingomgeving vallen vragen te stellen over ‘single points of failures’.

Waar bestaat een High Available setup uit?

Er zijn vele single points of failures en ook vele verschillende manieren om ze op te lossen. We behandelen een paar begrippen.

Server clustering

Server clustering is het samenbrengen van verschillende servers zodat ze als één geheel werken. Met server clustering verdeel je de workloads en minimaliseer je onderbrekingen van een van je diensten, omdat de rest van het cluster de taken overneemt als er bijvoorbeeld een onderdeel uitvalt.

Server clustering wordt met name ingezet als een bedrijf garanties wil hebben over de beschikbaarheid. Het is dus voor de meeste HA-set-ups een noodzakelijkheid. Aan een cluster zijn doorgaans nieuwe (virtuele) webservers toe te voegen, zodat het ook berekent is op meer capaciteit. Verwacht je bijvoorbeeld piekverkeer door bijvoorbeeld een promotie, dan valt zo’n cluster uit te brengen.

Er zijn verschillende manieren om servers met elkaar te clusteren. In de basis is het vaak een verdubbeling van het aantal machines (servers) rondom dezelfde taken. Door servers te clusteren vermijd je een ‘single point of failure’, omdat er altijd iets is om op terug te vallen.

voorbeeld van een server cluster

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *