Wat is een http load balancer?
Load balancing is een term die het verdelen van netwerkverkeer over meerdere servers omschrijft. Belangrijk, aangezien je zo zorgt dat geen enkele server overbelast raakt en alle servers optimaal reageren op verzoeken van gebruikers. Een http load balancer verbetert niet alleen de reactietijd van webapplicaties en databases, maar ook de beschikbaarheid voor eindgebruikers. Als een server overbelast raakt, kan die de beschikbaarheid van je webapplicatie of webshop immers in gevaar brengen.
Waarvoor kun je load balancing inzetten?
In de basis is load balancing gericht op het verdelen en distribueren van netwerkverkeer over meerdere servers. Http load balancers omvatten echter ook allerlei andere relevante functionaliteiten. Denk aan mogelijkheden voor het vergroten van de beschikbaarheid van applicaties en workloads. Is een server bijvoorbeeld onbereikbaar, bijvoorbeeld door technische problemen? Dan verwijst de load balancer webserver verzoeken automatisch door naar een andere server, zodat eindgebruikers in de praktijk niets van de problemen merken.
Load balancing biedt ook op het gebied van security voordelen. Denk hierbij aan Distributed Denial of Service aanvallen (DDoS), waarbij aanvallers een server overspoelen met malafide verzoeken. De server raakt hierdoor overbelast en kan legitieme verzoeken niet meer verwerken. Een webapplicatie of dienst raakt hierdoor onbereikbaar voor eindgebruikers. Een load balancer webserver voorkomt en stuurt verzoeken van gebruikers automatisch door naar een server die wel voldoende capaciteit beschikbaar heeft. Dit vergroot je weerbaarheid tegen DDoS-aanvallen.
Een load balancer zorgt daarnaast voor flexibiliteit. Zo kun je op ieder moment een server aan je cluster toevoegen of juist verwijderen. Richt je bijvoorbeeld een nieuwe server in? Dan voeg je deze toe aan de http load balancer, die vervolgens automatisch verzoeken naar de server doorstuurt. Verwijder je een server? Dan zorgt de load balancer dat verzoeken voortaan bij andere servers terecht komen.
Hoe werkt load balancing?
Een load balancer webserver kun je vergelijken met een verkeersregelaar die het verkeer naar je servers in goede banen leidt. In de praktijk plaats je een http load balancer dan ook vóór je servers, zodat het inkomende verzoeken naar je servers kan opvangen. Het verwijst verzoeken van gebruikers door naar een server die voldoende capaciteit heeft voor het afhandelen van deze verzoeken. Een load balancer kan op een fysieke server draaien, maar ook op een virtuele machine.
Welke load balancing-algoritmes zijn er?
Http load balancers zijn in de praktijk algoritmes, waarvan allerlei soorten beschikbaar zijn. Ieder algoritme kent zijn eigen voordelen en kenmerken. Welk load balancing-algoritme het beste aansluit op jouw organisatie, is afhankelijk van jouw specifieke behoeften. Voorbeelden van mogelijkheden:
- Hash: Distribueert verzoeken op basis van een door jou gedefinieerde sleutel. Dit kan een IP-adres van de client zijn of een opgevraagde URL.
- Least Connections: De server met de minste connecties naar clients ontvangt het nieuwe verzoek. Het algoritme houdt hierbij ook de rekenkracht van iedere server in het oog.
- Least Time/Least Response Time: Een algoritme dat kijkt naar de snelste reactietijd en het laagste aantal connecties voor het bepalen van de server waarnaar de load balancer webserver het verzoek doorstuurt. De naam van dit algoritme varieert per aanbieder.
- IP Hash: Het IP-adres van de client bepaalt welke server het verzoek ontvangt.
- Random with Two Choices: Het algoritme kiest twee willekeurige servers en past op deze twee server het Least Connections-algoritme toe. De server met de minste connecties ontvangt het binnengekomen verzoek.
- Round Robin: De load balancer webserver stuurt verzoeken achtereenvolgens door naar alle servers die onderdeel uitmaken van een specifieke servergroep.
- Weighted Round Robin: Een variant van het Round Robin-algoritme waarbij beheerders een bepaald gewicht toekennen aan servers. Zo kun je onderscheid maken tussen servers die meer belasting aankunnen en servers met minder resources.
Wat is het verschil met een Application Delivery Controller?
Op het eerste oog lijken een load balancer webserver en een Application Delivery Controller (ADC) veel op elkaar. Er zijn echter enkele belangrijke verschillen. Je kunt een ADC in de praktijk zien als een geavanceerde versie van een http load balancer, die extra functionaliteiten omvat. Waar een load balancer verzoeken geautomatiseerd doorzet naar een server die deze kan afhandelen, kan een ADC onder meer verzoeken analyseren. Zo achterhaalt een ADC bijvoorbeeld het doel of het soort verzoek, en zoekt op basis hiervan de meest geschikte server voor het specifieke verzoek.
Een ADC omvat ook andere aanvullende functies ten opzichte van load balancer webserver. Denk daarbij aan web application firewalls (WAF’s) voor het beschermen van applicaties en SSL offloading waarbij je binnenkomend SSL-verkeer ontsleutelt. Ook biedt een ADC vaak caching-mogelijkheden, waarmee je content lokaal op de ADC opslaat. Dit zorgt voor prestatiewinst.
Wat komt er verder kijken bij managed hosting?
Benieuwd wat er naast load balancing verder komt kijken bij managed hosting? Je leest het in onze managed hosting gids!