‘Load balancer’ betekende heel lang zoiets als: een gespecialiseerd stuk hardware voor het versnellen van applicatieverkeer. Load balancers werden ongeveer twee decennia geleden populair, ten tijde van de opkomst van internet. Doel was om de prestaties van nieuwe websites te optimaliseren en te verzekeren dat eindgebruikers een responsieve ervaring hadden tijdens hun bezoek.
De load balancer is een essentieel deel van webservers en -applicaties. De technologie speelt verkeersagent en gebruikt algoritmes om de distributie van het verkeer naar de backend-servers in goede banen te leiden. Tegenwoordig hebben ontwikkelingen met Intel-architectuurservers de weg vrij gemaakt voor software-only-oplossingen voor applicatielevering. Deze software-gebaseerde aanpak, indien juist vormgegeven, zorgt voor een superieur platform voor het bedienen van moderne applicaties. Wat is het verschil tussen software en hardware-gebaseerde load balancers?
Hardware load balancers
Hardware load balancers vereisen een speciaal stuk fysieke hardware. In de late jaren negentig en begin 2000 waren alleen deze load balancers beschikbaar. Een bepalend kenmerk van een hardware load balancer is dat het een harde limiet heeft qua aantallen ssl-verbindingen en de hoeveelheid data die het ondersteunt. Als deze limiet wordt overschreden stopt de load balancer simpelweg met het accepteren van nieuwe verbindingen. Dus om nieuwe servercapaciteit aan te spreken, moeten er meer fysieke load balancers worden geïnstalleerd. Dit verhoogt de kosten.
Organisaties raakten gewend aan het aanschaffen van load balancers gebaseerd op de verwachte groei in verkeer. De belangrijkste reden dat load balancers met hardware werden gemaakt, was dat deze sneller waren dan pure software-gebaseerde balancers. Deze verschillen zijn de afgelopen jaren kleiner geworden door de vooruitgang van Intel-architectuurservers.
Speicifiek doel
Hardware gebouwd met een specifiek doel is wellicht sneller dan software die draait op een enkele x86-server. Maar de elasticiteit, programmeerbaarheid en horizontale schaalbaarheid van software load balancers zijn redenen om toch voor software te kiezen. Software load balancers zijn verticaal op te schalen door x86-servers te gebruiken met een hoger aantal processorkernen of horizontaal door veel servers toe te voegen. Dat is nodig om het vele verkeer dat een website of applicatie te verwerken krijgt in goede banen te leiden. Los daarvan zijn er nog meer redenen om een software-gebaseerde load balancer te gebruiken in plaats van een hardware load balancer.
Bare metal
Moderne applicaties worden gebouwd om te opereren in alle datacenters en cloud-omgevingen. Ze profiteren van infrastructuren die draaien op bare metal servers, virtual machines of containers. Software load balancers bevatten deze functionaliteiten en zijn de enige geschikte oplossing voor microservices en container-gebaseerde applicaties.
Moderne applicaties vereisen bovendien schaalbaarheid. Software load balancers zijn in staat om omhoog en omlaag te schalen, omdat ze gebruikmaken van x86-servervoorzieningen in plaats van separate stukken hardware. Deze flexibiliteit biedt mogelijkheden voor betere capaciteitsplanning en on-demand schaalbaarheid gebaseerd op realtime-behoeftes van applicaties.
Op maat
Een significant voordeel van een software-defined load balancing-strategie is dat administratoren op maat gemaakte applicatiediensten kunnen uitrollen per applicatie. Zo hoeft men niet meer meerdere applicaties op een enkel monolithisch stuk hardware te plaatsen om kosten te besparen. Deze strategie levert voordelen op als isolatie, betere beschikbaarheid en kostenbesparing door te voorkomen dat er te veel load balancer-voorzieningen aanwezig zijn. Software load balancers bieden een architectuur voor consistente applicatielevering over verschillende cloud-omgevingen. Dit elimineert de noodzaak van het opnieuw instellen van applicaties als deze migreren naar de cloud of tussen verschillende clouds.
Pool members
Software load balancing-platforms, gebouwd met een aparte data en control plane, leveren een enkel ‘pane of glass’ voor het beheer van een gedistribueerde data plane van software load balancers. Administratoren hebben hierdoor gecentraliseerd inzicht en controle over alle geconfigureerde virtuele diensten en de bijbehorende pools en pool members. Applicatie-eigenaren kunnen gebruikmaken van selfservice en zijn in staat software load balancers te installeren op elke server op elke locatie of omgeving zonder tijd en moeite te steken in het aanvragen van een supportticket om hardware te installeren.
Onderhoud en eenvoud
Door de strategische positionering van software load balancers tussen het applicatieverkeer kunnen ze patronen in het verkeer analyseren en inzicht bieden in de staat van applicaties. Zo is eenvoudig te zien hoe de applicatie wordt gebruikt en waar het misgaat. Omdat er geen fysieke hardware aanwezig is om te onderhouden of te upgraden, worden doorlopende procedures versimpeld en is er minder onderhoud nodig. Als een individuele software load balancer of x86-server uitvalt, kan de control plane een andere voorziening opspinnen en in gebruik nemen. Omdat er geen hardware geconfigureerd of geïnstalleerd hoeft te worden, is het uitrollen van nieuwe load balancers eenvoudig van afstand te regelen binnen enkele minuten. Configuratie is te automatiseren met rest api’s en applicatie-uitrol is behoorlijk te versnellen. Dit staat tegenover het normale proces waarbij je meerdere dagen of weken moet wachten om nieuwe load balancers in gebruik te nemen.
De businesscase voor software load balancers is overtuigend en het is geen verrassing dat veel vendoren de laatste jaren begonnen zijn met het aanbieden van software-gebaseerde oplossingen. Echter, in de toegenomen complexiteit van de it-wereld moet je je niet afvragen of een software- beter is dan een hardware-oplossing. Organisaties hebben vooral behoefte aan oplossingen die analytics en machine learning-technologieën inzetten om de snelheid van de business bij te benen. Software load balancing stelt organisaties in staat snel en eenvoudig microservices in gebruik te nemen en te schalen. Zo leggen ze de fundering voor toekomstig gebruik van een service mesh waarmee applicaties verbinden met de diensten die vereist zijn.