Wat is load balancing?
Load balancing is een technologie die ontworpen is om de werklast te verdelen over verschillende servers of toepassingen. Het doel: het optimaliseren van de algehele infrastructuurprestaties, het rendement en de capaciteit.

De load balancer: definitie
Het online verkeer groeide de laatste tien jaar exponentieel. Internetgebruikers worden steeds veeleisender en willen steeds meer snelheid en veiligheid. Daarom staan webservers onder grote druk. Tevens is er een strategie ontwikkeld om hun werklast te optimaliseren: load balancing. Hiermee kan een groep servers (cluster) pieken in dataverkeer opvangen, maar ook voor een back-upoplossing zorgen in geval van storing. Op dat moment komt de load balancer in actie. Hiermee wordt de werklast tussen de servers verdeeld, zodat hun capaciteit optimaal benut wordt. Als uw website met een load balancer op onze servers wordt gehost, zullen er daardoor minder servicevertragingen of -onderbrekingen optreden.
Een load balancer moet worden geïnstalleerd op een dedicated, fysieke of virtuele infrastructuur. Bij een fysiek platform zal een server als load balancer fungeren... waarvoor een aanzienlijke investering vereist is. Op een virtuele machine (virtual machine of VM) kan software voor load balancing worden geïnstalleerd. Dit is dan in de vorm van een controller voor applicatielevering (application delivery controller of ADC). In een virtuele uitvoering is de load balancer flexibeler. De gebruiker ervan kan de last automatisch laten schalen, afhankelijk van de verwachte hoeveelheid dataverkeer.
In beide gevallen wordt in realtime bepaald welke server het beste het verzoek kan beantwoorden, zodat het cluster stabiel presteren blijft. Als een machine uitvalt, zal deze load balancer ook de werklast moeten omleiden naar een andere server.
Wanneer een gebruiker een pagina van een website wil laden, is de load balancer een schakel tussen de gebruiker en de server. Hij analyseert dan welke machine het best aan dit verzoek kan voldoen en stuurt het vervolgens daarnaartoe door. Hij kan ook naar behoefte servers toevoegen of verwijderen, afhankelijk van de werklast.
Hoe werkt een load balancer?
Load balancing wordt uitgevoerd door een algoritme dat gebaseerd is op DNS (Domain Name System). De gebruiker gaat naar websites via een URL, die gekoppeld is aan een IP-adres. Deze neemt contact op met de load balancer, die het verzoek naar de server stuurt. De verdeling hangt af van het soort algoritme dat gebruikt wordt. De vier bekendste zijn: Round Robin, Weighted Round Robin, Least Connections en Weighted Least Connections.
Round Robin
Deze methode maakt een wachtrij voor inkomende verzoeken. Deze worden vervolgens beheerd door de load balancer, die ze verdeelt over de servers in het cluster. De verzoeken worden achtereenvolgens toegewezen, afhankelijk van de beschikbaarheid van de machines. Round Robin houdt geen rekening met de urgentie van het verzoek, noch met de workload die dit verzoek voor de betreffende server zal veroorzaken. Dit is dus geschikt voor omgevingen waar servers dezelfde resources hebben. Maar in een infrastructuur waar deze verschillen, kan het algoritme workloads toewijzen die niet geschikt zijn voor minder krachtige machines... wat tot overbelasting kan leiden.
Dit is de meest traditionele methode. Het dient als uitgangspunt voor andere algoritmen.
Weighted Round Robin
In tegenstelling tot de "klassieke" Round Robin werkt deze methode op een gewogen manier. Elke server krijgt vooraf een waarde, afhankelijk van zijn mogelijkheden en kracht. De krachtigste heeft bijvoorbeeld een waarde van 10 en de zwakste een waarde van 1. De load balancer zal dan meer werklast toewijzen aan de krachtigste machine. Deze methode is daarom beter geschikt voor een omgeving met servers met verschillende resources: de werklast wordt geoptimaliseerd op basis van hun mogelijkheden.
Least Connections
Bij de twee voorgaande methoden wordt tijdens het verdelen van taken door de load balancer geen rekening gehouden met het aantal verbindingen dat de servers in het cluster moeten verwerken. Een server kan dus soms meerdere verbindingen tegelijk moeten verwerken, waardoor deze overbelast kan raken. Least Connections is hier een oplossing voor. Het houdt tijdens de verdeling al rekening met de reeds bestaande verzoeken op de webserver. De machine met het kleinste aantal verzoeken ontvangt het volgende verzoek via de load balancer. Dit algoritme houdt daarentegen geen rekening met de technische mogelijkheden van de servers. Dit maakt het beter geschikt voor omgevingen met servers met identieke resources.
Weighted Least Connections
Dit algoritme is een aanvulling op dat van Least Connections. In een infrastructuur met heterogene serverresources houdt het rekening met het aantal verzoeken voor elke machine en de weging die de beheerder maakt. Net als bij Weighted Round Robin heeft de krachtigste server een grotere wegingsfactor. Dit zorgt voor een optimale verdeling van verzoeken in een cluster. Elk nieuw verzoek wordt toegewezen aan de server met de laagste verhouding tussen actieve connecties en wegingsfactor.
Voordelen en belang van de load balancer
Het belangrijkste voordeel van een load balancer is dat deze de responstijd vermindert waarmee een site op verzoeken van gebruikers reageert. Het optimaliseren van de werklast per server beperkt het risico van storingen als gevolg van overbelasting. Als een machine niet beschikbaar is, worden gebruikers doorgestuurd naar een andere server en hebben ze altijd toegang tot de pagina's. U kunt ze dus een optimale ervaring garanderen, dankzij een constante kwaliteit van dienstverlening: flexibele hosting, hoge beschikbaarheid, schaalbaarheid, enzovoorts. OVHcloud beperkt bovendien uw bandbreedte en uw maandelijkse dataverkeer niet.
De load balancer blijft bijzonder geschikt voor e-commerce, waar grote schommelingen in dataverkeer tot overbelasting kunnen leiden. Hiermee kunt u gelijkblijvende prestaties op uw sites behouden, uw online reputatie verzorgen en uw klanten gerust stellen. Concreet zullen er geen winkelmandjes kwijtraken of betalingstransacties onderbroken worden.