Door gebruik te maken van Load Balancing kan de ser­ver­toe­gang ge­lijk­ma­tig worden verdeeld over ver­schil­len­de hard­wa­re­bron­nen via een tech­ni­sche instantie die Load Balancer wordt genoemd. Dit zorgt voor stabiele toe­gangs­snel­he­den, wat cruciaal is voor het genereren van leads en klanten.

Wat is load balancing?

Load balancing is vooral populair in ser­ver­tech­no­lo­gie en be­schrijft een methode waarbij verzoeken op de ach­ter­grond worden verdeeld over ver­schil­len­de servers zonder dat ge­brui­kers dit merken. De load balancer die hiervoor wordt gebruikt, kan worden ge­ïm­ple­men­teerd als hardware of software. Deze wijst meerdere servers toe aan een domein zonder adres­con­flic­ten te ver­oor­za­ken en is toe­gan­ke­lijk onder het openbare domein.

De on­der­ge­schik­te web­ser­vers worden benoemd met de do­mein­toe­voe­gin­gen www1, www2, www3, enz. Hierdoor kan load balancing een website be­schik­baar maken onder dezelfde URL, ook al staan er meerdere servers achter. Dit voorkomt over­be­las­ting van de server, omdat externe verzoeken worden verdeeld over ver­schil­len­de fysieke machines binnen het cluster. Ge­brui­kers merken hier over het algemeen niets van, omdat de verdeling van verzoeken op basis van complexe al­go­rit­men op de ach­ter­grond plaats­vindt.

Load balancing kan ook een rol spelen buiten web­ser­vers, bij­voor­beeld bij computers die met meerdere pro­ces­sors werken. In der­ge­lij­ke gevallen zorgt de load balancer ervoor dat de belasting ge­lijk­ma­tig over de ver­schil­len­de pro­ces­sors wordt verdeeld om meer re­ken­kracht te genereren. Load balancers zijn ook gewild bij het gebruik van con­tai­ner­soft­wa­re zoals Ku­ber­ne­tes. Hier zorgen ze ervoor dat de werklast efficiënt over ver­schil­len­de pods wordt verdeeld.

Hoe werkt load balancing?

Verzoeken aan een webserver, bij­voor­beeld in de vorm van pa­gi­na­weer­ga­ven, worden eerst uit­ge­voerd op de load balancer. Deze neemt ver­vol­gens de verdeling van de belasting over door de toe­gangs­ver­zoe­ken door te sturen naar ver­schil­len­de servers. De load balancer zelf kan worden ge­ïm­ple­men­teerd als hardware of software, maar het principe blijft hetzelfde: een verzoek komt bij de load balancer terecht en, af­han­ke­lijk van de gebruikte methode, stuurt het apparaat of de software de gegevens door naar de relevante server.

De tech­ni­sche basis is de DNS-procedure: ge­brui­kers hebben alleen via een URL toegang tot een website. Deze wordt met behulp van het DNS omgezet in een IP-adres, dat ver­vol­gens naar de load balancer verwijst. Idealiter merken ge­brui­kers niets van dit proces.

Afbeelding: Diagram of how load balancing works
A load balancer dis­tri­bu­tes the load of client accesses over the internet or web to various servers.

Wat zijn de voordelen van even­wich­ti­ge load balancing?

De drie be­lang­rijk­ste voordelen van een goed ge­ïm­ple­men­teer­de load balancer zijn:

  • Ge­op­ti­ma­li­seer­de toe­gangs­tij­den: Door het verkeer over meerdere servers te verdelen, kunnen de toe­gangs­tij­den worden verkort, zelfs wanneer er veel verzoeken te­ge­lij­ker­tijd worden gedaan.
  • Hogere fout­to­le­ran­tie: een load balancer verhoogt de fout­to­le­ran­tie omdat het verkeer van een trage server au­to­ma­tisch wordt omgeleid naar andere servers in het cluster. Als een server niet be­schik­baar is, blijft de gehoste website toe­gan­ke­lijk.
  • Ver­een­vou­digd sys­teem­on­der­houd: Load balancing on­der­steunt het onderhoud van een ser­ver­sys­teem in hoge mate. Con­fi­gu­ra­ties en updates kunnen worden uit­ge­voerd terwijl de servers draaien, zonder merkbaar pres­ta­tie­ver­lies. De load balancer de­tec­teert on­der­houds­sta­tus­sen en leidt verzoeken dien­over­een­kom­stig om.

Wat zijn de ver­schil­len­de soorten load balancing?

Hoe inkomende verzoeken worden verdeeld, hangt af van de keuze van het algoritme. Populaire al­go­rit­men voor load balancing zijn: Round Robin, Weighted Round Robin, Least Con­nec­ti­ons en Weighted Least Con­nec­ti­ons.

Ronde Robin

Round Robin be­schrijft een procedure waarbij inkomende ser­ver­ver­zoe­ken door de load balancer in een wachtrij worden verwerkt en over een reeks servers worden verdeeld. Elk nieuw verzoek wordt toe­ge­we­zen aan de volgende server in de reeks. Hierdoor kunnen toe­gangs­ver­zoe­ken ge­lijk­ma­tig over het load balancing-cluster worden verdeeld. Ongeacht de urgentie van het verzoek of de ernst van de ser­ver­be­las­ting, behandelt Round Robin alle processen op dezelfde manier. Load balancers die werken volgens het round-robin-principe zijn vooral geschikt voor om­ge­vin­gen waar alle in­stan­ties ongeveer dezelfde resources be­schik­baar hebben.

Gewogen Round Robin

De zwakke punten van het klassieke round-robin-algoritme in he­te­ro­ge­ne ser­ver­clus­ters kunnen worden ge­com­pen­seerd met een gewogen round-robin-verdeling. Inkomende verzoeken worden verdeeld op basis van de statische weging van elke server. Deze weging wordt vooraf door de beheerder bepaald.

De krach­tig­ste server kan bij­voor­beeld de waarde ‘100’ krijgen, terwijl minder ef­fi­ci­ën­te servers de waarde ‘50’ krijgen. In een der­ge­lij­ke op­stel­ling zou de server met een gewicht van ‘100’ twee verzoeken per ronde ontvangen van de load balancer, terwijl de server met een gewicht van ‘50’ slechts één verzoek zou ontvangen. Weighted Round Robin moet voor­na­me­lijk worden gebruikt bij load balancing wanneer de servers in het cluster over ver­schil­len­de resources be­schik­ken.

Minste ver­bin­din­gen

Beide round-robin-al­go­rit­men houden tijdens de seriële dis­tri­bu­tie van ser­ver­ver­zoe­ken door de load balancer geen rekening met het aantal ver­bin­din­gen dat de on­der­ge­schik­te servers gedurende een bepaalde periode moeten on­der­hou­den. Dit kan ertoe leiden dat er zich meerdere ver­bin­din­gen op­sta­pe­len op één server in het cluster. Dit leidt tot over­be­las­ting van de server, zelfs als deze minder ver­bin­din­gen verwerkt dan andere. Het algoritme met de minste ver­bin­din­gen biedt hiertegen be­scher­ming. Het verdeelt verzoeken op basis van de bestaande ver­bin­din­gen van elke server: de servermet de minste actieve ver­bin­din­gen krijgt het volgende verzoek van de load balancer. Deze methode voor load balancing wordt aan­be­vo­len voor homogene ser­ver­clus­ters waarin alle computers over ver­ge­lijk­ba­re resources be­schik­ken.

Gewogen minste ver­bin­din­gen

Als een ser­ver­clus­ter ver­schil­len­de ca­pa­ci­tei­ten heeft, moet in plaats van het algoritme voor het minste aantal ver­bin­din­gen, load balancing worden gebruikt op basis van de gewogen verdeling van bestaande ver­bin­din­gen. Hierbij wordt zowel rekening gehouden met het aantal actieve ver­bin­din­gen dat een server heeft als met de door de beheerder ge­de­fi­ni­eer­de weging. Dit zorgt voor een even­wich­ti­ge verdeling van de belasting binnen het ser­ver­clus­ter. Nieuwe verzoeken worden au­to­ma­tisch door de load balancer toe­ge­we­zen aan die servers waarvan de ver­hou­ding tussen actieve ver­bin­din­gen en hun res­pec­tie­ve ser­ver­we­ging de laagste huidige belasting sug­ge­reert.

Welke problemen kunnen zich voordoen bij het gebruik van load balancing?

Vooral in de e-com­mer­ce­sec­tor staat load balancing vaak voor uit­da­gin­gen. Hier volgt een voorbeeld: bezoekers van een website voegen artikelen die ze willen kopen toe aan hun win­kel­mand­je. Deze artikelen blijven gedurende de hele sessie op­ge­sla­gen, ongeacht naar welke pagina de ge­brui­kers binnen de online markt­plaats navigeren. Een typische load balancer zou de verzoeken over ver­schil­len­de servers verdelen. Dit betekent dat de inhoud van het win­kel­mand­je verloren zou gaan.

Om dit probleem op te lossen, zijn twee be­na­de­rin­gen denkbaar. Ten eerste kan de load balancer reageren op het IP-adres van de ge­brui­kers. Dan worden bij­voor­beeld verzoeken van hetzelfde IP-adres altijd naar dezelfde server gestuurd. Een andere methode zou zijn om een sessie-ID uit het verzoek zelf te lezen om te bepalen naar welke server het verzoek moet worden gestuurd.

Waarom zijn load balancers zo be­lang­rijk?

Als u uw geld via internet verdient, kan uw bedrijf zich geen ser­ver­sto­ring ver­oor­lo­ven. En als u slechts één server gebruikt en deze crasht door over­be­las­ting, is uw website niet langer toe­gan­ke­lijk voor po­ten­ti­ë­le klanten. Dit leidt tot ver­schil­len­de problemen: ten eerste kunt u tijdens de over­be­las­ting geen inkomsten genereren. Diensten kunnen niet worden geboekt en aankopen kunnen niet worden gedaan. Bovendien neemt het ver­trou­wen van (po­ten­ti­ë­le) klanten af. Het is dubbel zo erg voor ge­brui­kers die tijdens het be­stel­pro­ces te maken krijgen met een over­be­las­ting van de server. Er is vaak grote on­ze­ker­heid en de be­trok­ke­nen weten niet of de be­stel­ling daad­wer­ke­lijk is aan­ge­ko­men en in het systeem is ge­re­gi­streerd.

Zelfs als u geen diensten recht­streeks via internet aanbiedt, moet uw website te allen tijde toe­gan­ke­lijk zijn. Een website is een van de be­lang­rijk­ste kanalen voor toegang tot in­for­ma­tie. Als po­ten­ti­ë­le klanten online naar in­for­ma­tie over uw bedrijf zoeken en uw site niet kunnen bereiken, zullen ze eerder geneigd zijn om uw con­cur­ren­ten te overwegen. Met een load balancer kunt u der­ge­lij­ke risico’s mi­ni­ma­li­se­ren.

Hoe u load balancing in uw bedrijf kunt im­ple­men­te­ren

Load balancing kan worden ge­ïm­ple­men­teerd met behulp van zowel hardware- als soft­wa­reo­p­los­sin­gen op een virtuele server. Pro­fes­si­o­ne­le complete pakketten worden door talrijke providers aan­ge­bo­den, hetzij als In­fra­struc­tu­re-as-a-Service (IaaS), hetzij als net­werk­com­po­nent voor uw eigen IT-in­fra­struc­tuur.

Aangezien de aanschaf van eigen load balancers meestal hoge kosten met zich meebrengt, kiezen kleinere bedrijven vaak voor open-sour­ce­op­los­sin­gen zoals NGINX. Dit biedt een kos­ten­ef­fec­tie­ve manier om een hoge be­schik­baar­heid voor uw be­drijfs­web­si­te of andere web­pro­jec­ten te ga­ran­de­ren door middel van een ef­fi­ci­ën­te verdeling van de belasting binnen het ser­ver­net­werk. In de web­hos­ting­sec­tor wordt load balancing ook vaak aan­ge­bo­den als een extra functie voor cloud­ser­vers.

Ga naar hoofdmenu