![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Wanneer uw systeem groeit, het verkeer toeneemt, meer en meer gebruikers uw producten gebruiken, servers trager beginnen te reageren, downtime uw bedrijf onder druk zet, begint u na te denken over opschalen.
Er zijn twee primaire strategieën voor opschaling: verticaal en horizontaal.
Verticaal schalen is bedoeld om de kracht van het systeem te vergroten door meer CPU en RAM aan uw servers toe te voegen.
Bij horizontale schaalbaarheid ligt de nadruk op het dupliceren (of klonen) van uw servers in de resourcepool.
Meer hierover:
Verticale schaalbaarheid is de beste optie voor een systeem met weinig verkeer, omdat het de meest toegankelijke aanpak is voor het verwerken van groei zonder extra complexiteit te introduceren. U hoeft zich geen zorgen te maken over het implementeren van strategieën voor een groep resources, de elasticiteit van de resourcepool, de stateloosheid van uw server, de gedistribueerde cache, enzovoort.
Verticale schaalvergroting kent echter ernstige nadelen
Door horizontaal te schalen worden deze problemen opgelost door uw applicatieservers te klonen en een component zoals een Load Balancer in te bouwen.
Een load balancer verdeelt het verkeer op uw servers met behulp van specifieke algoritmen, zoals:
Er kleven echter ook een aantal nadelen aan:
Om twee apparaten op het internet met elkaar te laten communiceren, moeten onderliggende systemen specifieke protocollen volgen. Iedereen heeft wel eens gehoord van het OSI-model, dat zeven lagen beschrijft die computersystemen gebruiken om via een netwerk te communiceren. Hoewel het moderne internet is gebaseerd op een eenvoudiger TCP/IP-protocolstackmodel, wordt het OSI-model veel gebruikt, omdat het helpt visualiseren en communiceren hoe netwerken werken en helpt bij het isoleren en oplossen van netwerkproblemen.
De meeste industriële oplossingen voor load balancing gebruiken de termen L4 en L7, waarbij L4 verwijst naar de transportlaag in het OSI-model en L7 naar de applicatielaag.
De L4-load balancer is nog steeds L2/L3, omdat deze gegevens uit de onderste lagen gebruikt, zoals het IP-adres en het poortnummer.
Het is veiliger en performanter omdat de inhoud van de data niet wordt meegenomen in de routeringsbeslissingen
Dezelfde TCP-verbinding geldt tussen client en server, wat helpt voorkomen dat de limiet van beschikbare TCP-verbindingen op een load balancer wordt overschreden
Aan de andere kant werkt de L7-loadbalancer op applicatieniveau in het OSI-model
Er kunnen slimme beslissingen worden genomen op basis van URL-pad, headers en inhoud
Cachen
Load balancer is een essentieel onderdeel wanneer horizontale schaling wordt toegepast om systemen met veel verkeer te verwerken. Er zijn twee hoofdtypen load balancers: L4 en L7.
L4-loadbalancer is veel veiliger en performanter vanwege de beperkingen bij het nemen van slimme beslissingen
De L7-loadbalancer werkt op een manier die intelligente routeringsbeslissingen biedt vanwege de kosten van efficiëntie en beveiliging
De keuze van het juiste type hangt af van de systeemvereisten en moet zorgvuldig worden overwogen, waarbij een goede balans moet worden gevonden tussen het toepassen van beveiligingsprincipes en het wegnemen van prestatieknelpunten.