Wat is load balancing en waarom heb je het nodig?
Deze maand hebben we HA-IP Pro gelanceerd: out of the box load balancers die inkomend verkeer gelijkmatig verdelen over je VPS’en. Hiermee bouw je in no time een schaalbare en highly available infrastructuur. Een mondvol belangrijke termen die ervoor zorgen dat jouw website of applicatie optimaal presteert en in de lucht blijft. In dit artikel lees je waarom dit zo is en gaan we in op de betekenis achter load balancing, high availability en alles wat daarmee te maken heeft.
Horizontaal bijschalen met een load balancer
Een vernoeming op Product Hunt of Hacker News, een lancering op Kickstarter of een aantrekkelijke Black Friday-actie kunnen ervoor zorgen dat het aantal bezoekers richting je website of applicatie explodeert. In deze situaties wil je natuurlijk dat je website bereikbaar blijft en je VPS niet overbelast raakt.
Het is daarom verstandig om je goed voor te bereiden op periodes van groot succes. Dit kan je doen door je infrastructuur verticaal bij te schalen en dus extra processorcores of geheugen toe te voegen. Maar zoals je zult merken is het aantrekkelijker om horizontaal bij te schalen. Hiermee vergroot je niet de capaciteit van een bepaalde VPS, maar juist het aantal VPS’en.
Makkelijk VPS’en toevoegen met load balancing
Om horizontaal bij te schalen, moeten alle VPS’en ten eerste qua configuratie en content op elkaar zijn afgestemd. Je wilt tenslotte dat alle bezoekers dezelfde website te zien krijgen. Daarnaast moet het verkeer richting je website ook werkelijk verdeeld worden over meerdere VPS’en. Dit gebeurt door middel van een load balancer, die al het verkeer gelijkmatig doorstuurt naar één van de onderliggende servers.
De wijze van verdeling gebeurt aan de hand van een loadbalancing-methode. Welke methode je kiest, zal afhangen van je specifieke use case. Met HA-IP Pro heb je de keuze uit de volgende drie methoden:
1. Round Robin
De meest voorkomende en bij HA-IP Pro standaard ingestelde loadbalancing-methode. Inkomend verkeer wordt op volgorde verdeeld over de beschikbare servers. Het eerste verzoek wordt toegewezen aan VPS 1, het tweede aan VPS 2 enzovoort. Wanneer de laatste server is aangesproken, zal het proces zich herhalen en een volgend verzoek opnieuw toegewezen worden aan VPS 1.
Verkeer verdelen op volgorde
2. Sticky Cookie
Via Round Robin is de kans klein dat een bezoeker bij elk bezoek op exact dezelfde VPS terechtkomt. Dit kan echter handig zijn als je website gebruikmaakt van bijvoorbeeld een winkelmandje of automatische logingegevens en je deze gegevens niet opslaat in een aparte databaseserver.
Om een bezoeker te laten ‘plakken’ aan de server waar zijn gegevens zijn opgeslagen, ook wel server affinity of session persistence genoemd, is daarom een ‘sticky’ methode vereist. Eén zo’n methode is Sticky Cookie, waarbij de load balancer op zoek gaat naar een cookie die tijdens een eerste bezoek geplaatst is. Wanneer deze cookie aanwezig is, zal een bezoeker naar de VPS worden doorgestuurd die hij voor het laatst heeft gebruikt.
Verkeer verdelen op basis van cookies
3. Source IP
Een alternatieve sticky methode is Source IP. Hierbij wordt een unieke code gegenereerd aan de hand van het IP-adres van een bezoeker en het aantal gekoppelde VPS’en. Op basis hiervan weet de load balancer op welke server een bezoeker thuishoort. Een minpunt van deze methode is, dat bij het uitschakelen of toevoegen van een VPS de code opnieuw gegenereerd wordt en de kans bestaat dat veel van je bezoekers opeens een andere server toegewezen krijgen. Anderzijds is het een goed alternatief wanneer je VPS-toepassing geen gebruikmaakt van HTTP-verkeer (een vereiste voor het gebruiken van Sticky Cookie).
Verkeer verdelen op basis van IP-adres
Een highly available infrastructuur bouwen
Horizontaal bijschalen in combinatie met load balancing heeft een belangrijk voordeel: de mogelijkheid om je infrastructuur highly available te maken.
High availability is een term die de maatregelen beschrijft om de bereikbaarheid en stabiliteit van je website of applicatie te vergroten. Dit gebeurt onder andere door het elimineren van elk single point of failure: componenten binnen je infrastructuur die een back-upplan missen. Denk bijvoorbeeld aan een website die enkel op één server draait. Wanneer deze onbereikbaar is, gebeurt hetzelfde met je website.
Met HA-IP Pro hoef jij je hier geen zorgen over te maken. Door middel van health checks via TCP of HTTP wordt continu de status van je gekoppelde VPS’en gecontroleerd. Mocht een server onverhoopt onbereikbaar worden, dan wordt het verkeer automatisch doorgestuurd naar de overige servers. Een bezoeker zal daarom altijd op een bereikbare website of applicatie terechtkomen.
Een highly available infrastructuur dankzij health checks
Maar met één load balancer is nog geen high availability bereikt. Het single point of failure verschuift dan slechts naar een hoger niveau binnen de infrastructuur, de load balancer zelf. Als daar iets mis mee is, zullen de onderliggende VPS’en hier ook last van hebben, ongeacht hoeveel dit er zijn. Het is dus gewenst om naast meerdere VPS’en ook meerdere load balancers te gebruiken.
Daarom hebben we er met HA-IP Pro voor gekozen om drie load balancers in te zetten. Door middel van het BGP-routing protocol zorgen we ervoor dat ze alle drie over hetzelfde IP-adres beschikken, waarmee inkomend verkeer contact maakt.
Voor het compleet elimineren van alle single points of failure maken uiteraard ook de niveaus boven de load balancers gebruik van meerdere redundante componenten. Dankzij Equal-Cost Multi Path routing (ECMP) wordt het inkomend verkeer eerlijk verdeeld over al deze componenten en in goede banen geleid richting je VPS’en. Hiermee is de cirkel van high availability rond.
Het highly available netwerk van TransIP
Goed voorbereid het internet op dankzij load balancing
Een load balancer biedt uitkomst wanneer je website een belangrijke rol in je bedrijfsvoering speelt. Met de optie om gemakkelijk bij te schalen en een highly available infrastructuur op te zetten, ben je ervan verzekerd dat tijdens onderhoud of piekmomenten je website of applicatie gewoon blijft draaien. Zo kan je voortaan met een gerust gevoel je website updaten of die nieuwe kortingsactie lanceren.
Wil je ook aan de slag met load balancing? Neem dan een kijkje op de productpagina van HA-IP Pro.