Ett effektivt sätt att öka tillgängligheten och förbättra prestandan för en applikation är att implementera en lastbalanserare (LB).
Generellt sett finns det tre huvudkategorier av lastbalanserare:
- Hårdvarubaserade
- Molnbaserade
- Mjukvarubaserade
En hårdvarubaserad lastbalanserare är en dedikerad enhet som utför lastfördelning och relaterade uppgifter. Några välkända leverantörer av hårdvaru-LB är bland annat:
Dessa är kostsamma men ger fullständig kontroll.
Molnbaserade lastbalanserare är mer populära än någonsin.
Att använda en moln-LB är ett ekonomiskt sätt att dra nytta av alla funktioner utan att behöva investera i en fysisk enhet. Du betalar endast för din faktiska användning. Här följer några populära moln-LB:
Du kan börja använda en molnbaserad LB för så lite som 20 dollar per månad.
Den tredje typen är mjukvarubaserad, där du själv installerar, underhåller och konfigurerar LB-programvaran. Denna programvara kan vara kommersiell eller öppen källkod/gratis.
Om du har en begränsad budget eller vill testa en kostnadsfri lastbalanseringslösning, kan följande alternativ vara intressanta.
Seesaw
Används av Google. Seesaw är en pålitlig, Linux-baserad virtuell lastbalanserare som tillhandahåller nödvändig lastfördelning i samma nätverk.
Seesaw är utvecklat i språket Go och fungerar väl på Ubuntu/Debian-distributioner. Det stödjer anycast och DSR (Direct Server Return) och kräver två Seesaw-noder, som kan vara antingen fysiska eller virtuella.
Det är värt att notera att Seesaw opererar på nätverkslager fyra. Om du behöver lastbalansering på lager sju, bör du utforska andra alternativ.
KEMP
En GRATIS avancerad applikationsleveranskontroller från KEMP stöds på alla stora hypervisorer. Du kan antingen ladda ner och använda den i ditt datacenter eller distribuera den i moln-DC som AWS eller Azure.
Även om den är gratis, erbjuder KEMP en kommersiell nivå av funktioner, inklusive följande:
- Lager 4-lastbalansering för TCP/UDP med round-robin eller minsta anslutningsalgoritmer
- Balansering på lager 7
- Integrerad brandvägg för webbapplikationer (WAF)
- Inbyggd motor för intrångsskydd (IPS)
- Äkta global lastbalansering för flera platser
- Cachning, komprimering av innehåll, innehållsbyte
- Webbcookie-persistens
- IPSec-tunnling
- Förhandsautentisering
- Let’s Encrypt
- Kubernetes
KEMP LB används av flera stora företag som Apple, Sony, JP Morgan, Audi, Hyundai, med flera. Den kostnadsfria versionen erbjuder tillräckligt med funktioner, men om du behöver mer kan du undersöka deras kommersiella licens.
Om du eller din organisation väljer att testa KEMP LB och behöver onlineutbildning, kan du ta del av den här onlinekursen från Mike Walton.
HAProxy
En populär lösning på marknaden för att tillhandahålla hög tillgänglighet, proxy, TCP/HTTP-lastbalansering. HAProxy används av många välkända företag världen över.
Några av de viktigaste funktionerna är:
- Stöd för IPv6 och UNIX-sockets
- Deflate- och Gzip-komprimering
- Hälsokontroller
- Sessionsklibbighet baserad på käll-IP
- Inbyggd statistikrapportering (demo)
HAProxy finns också i Enterprise Edition, samt som hårdvara och virtuell enhet.
Det bästa sättet att utvärdera HAProxy är att prova den själv. Community Edition är fullspäckad med funktioner och är dessutom GRATIS.
ZEVENET
Zevenet stöder L3, L4 och L7. Den finns tillgänglig som källkod, IOS-bild och i ett Docker-förråd.
Den stöder avancerad hälsokontroll, vilket snabbt avlägsnar felaktiga servrar/tjänster för att säkerställa en bra användarupplevelse. Zevenet, tidigare känt som Zen, fungerar bra med TCP-baserade protokoll som FTP, SIP, SSL, HTTP, med flera.
Om du letar efter Zevenet-hosting kan du testa Kamatera.
Neutrino
Neutrino används av eBay och är byggt med Scala & Netty. Det stödjer minsta anslutnings- och round-robin-algoritmer med följande växlingsfunktioner:
- Använder kanoniska namn
- Kontextbaserad
- L4 med TCP-portnummer
Neutrino har testats för att hantera över 300 förfrågningar per sekund på en 2-kärnig virtuell dator. En fördel med Neutrino jämfört med HAProxy är dess L7-växling.
Som alltid är det bäst att prova båda och se vad som fungerar bäst i din miljö.
Balance
Balance från Inlab networks är en TCP-proxy med round-robin LB som stöder IPv6 på lyssningssidan. Det innebär att du kan ha IPv4 på framsidan och IPv6 på baksidan.
Den har alla grundläggande LB-funktioner.
Pen
Pen är testat på Linux, FreeBSD, HP-UX, Solaris och Windows, men det finns ingen anledning att det inte skulle fungera på andra Unix-distributioner. Det stöder UDP- och TCP-baserade protokoll som HTTP, SNMP, DNS, med flera.
Några av funktionerna utöver de grundläggande är:
- GeoIP-filter
- SSL-terminering
- IPv4- och IPv6-kompatibilitet
Nginx
Jag vet vad du tänker. Nginx är en webbserver, proxyserver, med mera. Men Nginx med öppen källkod stöder en grundläggande nivå av innehållsväxling och distribution av begäran över flera servrar.
Nginx Plus-versionen är dock mycket mer omfattande.
Nginx Plus är en komplett lösning för webbapplikationer inklusive lastbalansering, innehållscache, webbserver, WAF, övervakning med mera. Den ger en högpresterande lastbalanseringslösning för att skala applikationer och hantera miljontals förfrågningar per sekund.
Traefik
En modern och snabb HTTP-reverse proxy och LB byggd med Go. Traefik stöder flera backend-tjänster, som Amazon ECS, Docker, Kubernetes, Rancher och många fler.
Den stödjer WebSockets, HTTP/2, automatisk förnyelse av SSL-certifikat med Let’s encrypt, samt ett användarvänligt gränssnitt för att hantera och övervaka resurser.
Gobetween
Gobetween är en minimalistisk men kraftfull L4 TCP, TLS & UDP-baserad lastbalanserare med hög prestanda.
Den fungerar på olika plattformar som Windows, Linux, Docker, Darwin, och du kan bygga den från källkoden om du vill. Lastbalansering sker med hjälp av följande algoritmer som du konfigurerar:
- IP-hash
- Round-robin
- Minst bandbredd
- Minst anslutning
- Vikt
Enligt detta riktmärke är Go-between snabbare än HAProxy men inte lika snabb som Nginx.
Om du söker en modern L4-balanseringslösning med automatisk upptäckt för en dynamisk miljö, verkar Go-between lovande. Det kan vara värt att testa för att se hur den presterar.
Sammanfattning
Jag hoppas att denna genomgång av lastbalanseringsprogram med öppen källkod hjälper dig att välja en lösning för din applikation. De är alla GRATIS, så det bästa sättet att hitta den som passar dig är att testa dem.
Om du vill lära dig nya färdigheter, kolla in Udemy där det finns tusentals videokurser tillgängliga.