Eine schnelle und unkomplizierte Methode, um eine Applikation hochverfügbar zu gestalten und die Leistung zu steigern, ist der Einsatz eines Load Balancers (LB).
Grob gesagt, existieren drei Haupttypen von Load Balancern:
- Hardwarebasiert
- Cloudbasiert
- Softwarebasiert
Ein Hardware-Load-Balancer ist ein spezialisiertes Gerät, das die Lastverteilung und zugehörige Funktionen übernimmt. Einige namhafte Anbieter von LB-Hardware sind:
Diese Lösungen sind kostspielig, bieten aber umfassende Kontrolle.
Cloud-Load-Balancer gewinnen immer mehr an Bedeutung.
Der Einsatz eines Cloud-LB ist eine wirtschaftliche Möglichkeit, alle Funktionen zu nutzen, ohne in eine Hardware-Appliance investieren zu müssen. Die Abrechnung erfolgt nutzungsabhängig. Hier einige bekannte Cloud-LB:
Die Nutzung kann bereits ab etwa 20 Dollar pro Monat beginnen.
Die dritte Option sind softwarebasierte Load Balancer, bei denen die LB-Software selbst installiert, verwaltet und konfiguriert wird. Diese können kommerziell oder als Open-Source/kostenlos verfügbar sein.
Falls kein Budget vorhanden ist oder eine kostenlose Load-Balancer-Lösung getestet werden soll, sind die folgenden Optionen hilfreich.
Seesaw
Verwendet von Google, ist Seesaw ein zuverlässiger, Linux-basierter virtueller Load-Balancer-Server, der für die notwendige Lastverteilung im gleichen Netzwerk sorgt.
Seesaw wurde in der Programmiersprache Go entwickelt und funktioniert gut auf Ubuntu/Debian-Systemen. Es unterstützt Anycast und DSR (Direct Server Return) und benötigt zwei Seesaw-Knoten, die entweder physisch oder virtuell sein können.
Seesaw operiert auf Layer-4-Netzwerken. Wer Layer-7-Load-Balancing benötigt, sollte alternative Optionen in Betracht ziehen.
KEMP
Ein KOSTENLOSER Advanced Application Delivery Controller von KEMP wird auf allen gängigen Hypervisoren unterstützt. Er kann heruntergeladen und im eigenen Rechenzentrum eingesetzt oder in Cloud-Datacentern wie AWS oder Azure bereitgestellt werden.
Obwohl kostenlos, bietet er kommerzielle Funktionen, darunter:
- Layer-4-Load-Balancing für TCP/UDP mit Round-Robin- oder Least-Connection-Algorithmen
- Layer-7-Balancing
- Integrierte Web Application Firewall (WAF)
- Eingebaute Intrusion Prevention Engine (IPS)
- True Global Server Load Balancing, unterstützt Multi-Site
- Caching, Inhaltskomprimierung, Inhaltsumschaltung
- Persistenz von Web-Cookies
- IPSec-Tunneling
- Vorauthentifizierung
- Let’s Encrypt-Integration
- Kubernetes-Unterstützung
KEMP LB wird von bekannten Unternehmen wie Apple, Sony, JP Morgan, Audi, Hyundai usw. eingesetzt. Die kostenlose Version bietet bereits einen großen Funktionsumfang; für erweiterte Anforderungen steht eine kommerzielle Lizenz zur Verfügung.
Wer KEMP LB näher kennenlernen und eine Online-Schulung benötigt, kann sich an den Online-Kurs von Mike Walton wenden.
HAProxy
HAProxy ist eine sehr beliebte Lösung für Hochverfügbarkeit, Proxy und TCP/HTTP-Lastverteilung. HAProxy wird von zahlreichen renommierten Unternehmen weltweit genutzt.
Zu den bemerkenswerten Funktionen gehören:
- Unterstützung für IPv6 und UNIX-Sockets
- Deflate- & Gzip-Komprimierung
- Gesundheitsprüfungen
- Quellenbasierte Sitzungsaffinität
- Integrierte Statistikberichte (Demo ansehen)
HAProxy bietet auch eine Enterprise Edition, Hardware und virtuelle Appliances.
Der beste Weg, HAProxy kennenzulernen, ist, es selbst auszuprobieren. Die Community Edition bietet viele Funktionen und ist kostenlos verfügbar.
ZEVENET
Zevenet unterstützt L3, L4 und L7. Es ist als Quellcode, IOS-Image und in einem Docker-Repository erhältlich.
Es bietet eine ausgeklügelte Zustandsüberwachung, sodass fehlerhafte Server/Dienste schnell deaktiviert werden, um ein reibungsloses Benutzererlebnis zu gewährleisten. Zevenet, früher bekannt als Zen, funktioniert gut mit TCP-basierten Protokollen wie FTP, SIP, SSL, HTTP usw.
Für Zevenet-Hosting kann Kamatera in Betracht gezogen werden.
Neutrino
Neutrino wird von eBay eingesetzt und mit Scala & Netty entwickelt. Es unterstützt Least-Connection- und Round-Robin-Algorithmen sowie folgende Switching-Funktionen:
- Verwendung kanonischer Namen
- Kontextbasiert
- L4 mit TCP-Portnummern
Neutrino wurde getestet und kann einen Durchsatz von über 300 Anfragen pro Sekunde auf einer VM mit zwei Kernen verarbeiten. Im Vergleich zu HAProxy ist ein großer Vorteil von Neutrino das L7-Switching.
Es empfiehlt sich, beide auszuprobieren, um zu sehen, welche Lösung am besten für die eigene Umgebung geeignet ist.
Balance
Balance von In Lab Networks ist ein TCP-Proxy-Round-Robin-LB, der IPv6 auf der lauschenden Seite unterstützt. Das ermöglicht die Verwendung von IPv4 am Frontend und IPv6 am Backend.
Es bietet alle grundlegenden LB-Funktionen.
Pen
Pen wurde auf Linux, FreeBSD, HP-UX, Solaris und Windows getestet, sollte aber auch auf anderen Unix-basierten Systemen funktionieren. Es unterstützt UDP- und TCP-basierte Protokolle wie HTTP, SNMP, DNS usw.
Neben grundlegenden Funktionen bietet Pen:
- GeoIP-Filter
- SSL-Terminierung
- IPv4- und IPv6-Kompatibilität
Nginx
Nginx ist bekannt als Webserver und Proxyserver. Die Open-Source-Version unterstützt auch grundlegende Funktionen zur Inhaltsverteilung und Anforderungsweiterleitung über mehrere Server.
Die Nginx Plus Edition bietet jedoch weit mehr.
Nginx Plus ist eine Komplettlösung für die Bereitstellung von Webanwendungen, inklusive Lastverteilung, Inhalts-Caching, Webserver, WAF, Überwachung usw. Es ermöglicht eine leistungsstarke Lastverteilung zur Skalierung von Anwendungen, um Millionen von Anfragen pro Sekunde zu verarbeiten.
Traefik
Traefik ist ein moderner und schneller HTTP-Reverse-Proxy und LB, entwickelt mit GO. Traefik unterstützt zahlreiche Backend-Dienste wie Amazon ECS, Docker, Kubernetes, Rancher usw.
Traefik unterstützt WebSockets, HTTP/2, automatische SSL-Zertifikatserneuerung mit Let’s Encrypt sowie eine benutzerfreundliche Oberfläche zur Verwaltung und Überwachung von Ressourcen.
GoBetween
GoBetween ist ein minimalistischer, aber leistungsstarker L4 TCP-, TLS- und UDP-basierter Load Balancer.
GoBetween läuft auf verschiedenen Plattformen wie Windows, Linux, Docker, Darwin und kann aus dem Quellcode erstellt werden. Die Lastverteilung erfolgt basierend auf wählbaren Algorithmen:
- IP-Hash
- Round-Robin
- Geringste Bandbreite
- Geringste Verbindungen
- Gewichtung
Laut Benchmark ist Go-between schneller als HAProxy, jedoch nicht schneller als Nginx.
Wer eine moderne L4-Balancing-Lösung mit automatischer Erkennung für dynamische Umgebungen sucht, sollte Go-between in Betracht ziehen. Es ist ratsam, es selbst zu testen, um die Performance zu beurteilen.
Fazit
Diese Auflistung von Open-Source-Load-Balancern soll bei der Auswahl einer geeigneten Lösung für Ihre Anwendung helfen. Alle genannten Optionen sind kostenlos nutzbar. Am besten lässt sich die Eignung durch Ausprobieren feststellen.
Für Interessierte gibt es auf Udemy Tausende von Videokursen zum Erwerb neuer Fähigkeiten.