paint-brush
Decoderen van load balancing primitievendoor@fairday
39,939 lezingen
39,939 lezingen

Decoderen van load balancing primitieven

door Aleksei4m2024/02/26
Read on Terminal Reader
Read this story w/o Javascript

Te lang; Lezen

Bij het schalen van uw systeem om meer verkeer en gebruikers te accommoderen, kunt u kiezen tussen verticale schaling, wat de serverkracht vergroot, en horizontale schaling, wat het dupliceren van servers inhoudt. Hoewel verticale schaling eenvoudiger is, heeft het beperkingen zoals hardwarebeperkingen. Horizontale schaling met load balancers biedt flexibiliteit, maar vereist het beheer van statelessness en implementatiestrategieën. Het begrijpen van L4- en L7-load balancers is essentieel, waarbij L4 veiliger en performanter is, terwijl L7 intelligente routing biedt ten koste van efficiëntie. De juiste aanpak kiezen hangt af van systeemvereisten en het in evenwicht brengen van beveiligings- en prestatieoverwegingen.

People Mentioned

Mention Thumbnail
featured image - Decoderen van load balancing primitieven
Aleksei HackerNoon profile picture
0-item


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 schaalvergroting

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

  1. Hardwarelimiet omdat het onmogelijk is om oneindig veel bronnen toe te voegen
  2. Gebrek aan failover en redundantie verhoogt het risico op langdurige downtime en gegevensverlies


Horizontale schaalvergroting

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:


  1. Round-robin
  2. Gewogen round-robin
  3. IP-hash-gebaseerde benaderingen
  4. Minste verbindingsmethode
  5. Gewogen minst-verbindingsmethode
  6. De minst-responsmethode, en nog veel meer.


Er kleven echter ook een aantal nadelen aan:


  1. Servers moeten stateloos zijn
  2. Sessies moeten worden opgeslagen in een gecentraliseerde gegevensopslag
  3. Ingewikkelder strategieën implementeren kan nodig zijn
  4. Een load balancer kan een prestatiebottleneck worden als deze verkeerd is geconfigureerd en er niet voldoende resources zijn
  5. Het introduceert extra complexiteit in het systeem en vormt een potentieel enkelvoudig punt van falen, waarvoor failoverstrategieën moeten worden toegepast


L4 / L7-lastbalancers

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.


Belangrijkste voordelen van L4 load balancer

  • 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


Belangrijkste nadelen van de L4-loadbalancer

  • Intelligente routering is onmogelijk omdat de inhoud niet wordt gedecodeerd
  • Stateful protocol brengt extra complexiteit met zich mee
  • Toewijzing tussen openbare en privéadressen
  • Geen caching omdat de inhoud op dit niveau niet beschikbaar is
  • Niet mogelijk om te gebruiken voor microservicesarchitectuur omdat omleiding van verkeer niet beschikbaar is op basis van URL-pad


Aan de andere kant werkt de L7-loadbalancer op applicatieniveau in het OSI-model


Belangrijkste voordelen van L7 load balancer

  • Er kunnen slimme beslissingen worden genomen op basis van URL-pad, headers en inhoud

  • Cachen


Belangrijkste nadelen van L7 load balancer

  • Extra overhead vanwege het onderhouden van twee TCP-verbindingen, één tussen client en load balancer, de tweede tussen de load balancer en server. Ook moet de TCP-verbindingslimiet van de load balancer in acht worden genomen
  • Minder veilig omdat de load balancer certificaten moet kennen om gegevens te kunnen decoderen en routeringsbeslissingen te kunnen nemen


Conclusie

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.


  1. L4-loadbalancer is veel veiliger en performanter vanwege de beperkingen bij het nemen van slimme beslissingen

  2. 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.