Ein Absturz einer App mitten beim Einkaufen ist frustrierend.
Es kann viele Gründe für den Absturz geben, einschließlich unsachgemäßer Arbeitslastverwaltung. Eine cloudbasierte Anwendung wird schnell überlastet, wenn nur ein Server dahinter steht, was zu Dienstausfällen, Ausfallzeiten und sogar Abstürzen führt.
Zu viele Benutzer, die gleichzeitig auf dieselben Daten oder Software innerhalb der IT-Infrastruktur eines Unternehmens zugreifen, verursachen einen Absturz, insbesondere wenn der Anwendungstraffic nicht richtig ausbalanciert ist. Aber wie balancieren Unternehmen den Traffic aus? Hier kommt Load-Balancing-Software ins Spiel.
Was ist ein Load Balancer?
Ein Load Balancer ist ein Netzwerkgerät oder eine Software, die das Load Balancing erleichtert – den Prozess der methodischen und effizienten Verteilung des Netzwerkverkehrs über mehrere Backend-Server in einem Serverpool. Er reduziert den Verwaltungs- und Wartungsaufwand für Anwendungen, indem er als Reverse-Proxy fungiert. Dies macht Anwendungen zuverlässiger und fähiger, gleichzeitige Benutzer und Netzwerksitzungen zu handhaben.
Ein Load Balancer agiert wie ein unsichtbarer Vermittler für Benutzer. Sie können ihn nicht sehen, aber ihre Anfragen werden ständig durch ihn geleitet. Zum Beispiel wird ein Benutzer, der für Weihnachten einkauft, verschiedene Produkte durchsuchen, bevor er eines oder mehrere auswählt. Wenn der Benutzer auf ein Produkt klickt, sendet das Client-Gerät eine Informationsanfrage an die Backend-Server. Ein Load Balancer empfängt diese eingehende Anfrage und leitet sie an alle fähigen Server weiter.
Diese Lastverteilung ist entscheidend für einen effizienten Datendurchsatz und die Optimierung der Anwendungsbereitstellungsressourcen. Sie verbessert auch die Leistung, indem sie verhindert, dass ein einzelner Server überlastet wird. Darüber hinaus überprüft ein Load Balancer die Fähigkeit eines Servers, Anfragen zu bearbeiten, entfernt ungeeignete Server und erstellt bei Bedarf sogar neue virtualisierte Anwendungsserver.
Funktionen eines Load Balancers:
- Fügt Server bei Bedarf hinzu oder entfernt sie
- Reduziert die Antwortzeit auf Benutzeranfragen
- Verteilt Client-Anfragen effizient
- Identifiziert und blockiert bösartige Inhalte
- Automatisiert die Notfallwiederherstellung auf Backup-Sites
- Macht die Computerumgebung widerstandsfähiger
- Erkennt Serverausfälle automatisch und leitet Client-Anfragen um
- Ermöglicht Serverwartung, ohne die aktuellen Operationen zu beeinträchtigen
- Leitet den Traffic zu fähigen und online verfügbaren Servern, um Leistung und Zuverlässigkeit sicherzustellen
Heutzutage sind Load Balancer in der Regel in Application Delivery Controllern (ADCs) enthalten, die den Datenfluss zwischen zwei Entitäten optimieren und die Anwendungsleistung verbessern. Dies ist das Ergebnis ihrer kontinuierlichen Weiterentwicklung von ursprünglich entwickelten Load Balancern, um vorhersehbare, skalierbare und hochverfügbare Anwendungsdienste sicherzustellen.
Load Balancing hat seit seiner Einführung einen langen Weg zurückgelegt. Unternehmen in den frühen Tagen des kommerziellen Internets verließen sich auf einzelne PC-basierte Server, um den Web-Traffic zu bewältigen. Aber diese Server konnten die steigenden Anforderungen von Webanwendungen nicht bewältigen.
Dann kam die Domain Name System (DNS) Round-Robin-Technologie. Sie funktionierte gut in Bezug auf die sequentielle Benutzerverteilung unter Verwendung des Namens als Virtualisierungspunkt. Sie konnte jedoch keine hohe Verfügbarkeit verbessern und fehlerhafte Server dynamisch entfernen.
Dies führte zur Geburt von speziell entwickelten Load-Balancing-Lösungen. Diese Lösungen sind direkt in das Betriebssystem (OS) oder die Anwendungssoftware integriert und kommunizieren über das Cluster-Internetprotokoll (IP) anstelle von physischen IP-Adressen. Eine Dienstsitzung würde erst beginnen, nachdem ein Server auf die Verbindungsanfrage geantwortet und sie an eine physische IP-Adresse weitergeleitet hat.
Diese proprietären Load-Balancing-Lösungen verbesserten die Skalierbarkeit, Vorhersehbarkeit und hohe Verfügbarkeit. Die eigentliche Herausforderung war die ständige Kommunikation zwischen den geclusterten Mitgliedern. Mehr Server bedeuteten mehr Inter-Server-Kommunikation und Prozessor-Auslastung. Dies erhöhte den Netzwerkverkehr und beeinträchtigte schließlich den Endbenutzer-Traffic.
Dann kam die Ära der netzwerkbasierten Load-Balancing-Hardware. Diese waren im Wesentlichen anwendungsneutrale Geräte, die außerhalb des Anwendungsservers platziert waren. Sie verwendeten bidirektionale Netzwerkadressübersetzung (NAT), um Benutzer von virtuellen Server-Adressen zu den fähigsten realen Servern weiterzuleiten.
Die netzwerkbasierten Geräte ermöglichten es auch, die Identität des Anwendungsservers zu maskieren und einen Server für Wartungsarbeiten offline zu nehmen, ohne die Benutzer zu stören. Die heute zu sehenden ADCs stammen von diesen netzwerkbasierten Load Balancern.
Nachdem sie als Hardwaregeräte begonnen hatten, wurden ADCs schnell sowohl als virtuelle Maschinen als auch als Software verfügbar. Softwarebasierte ADCs bewältigten Traffic-Spitzen, gewährleisteten Sicherheit und boten mehr Flexibilität. ADCs sind unvollständig ohne die zugrunde liegende Load-Balancing-Technologie, die entscheidend für die Handhabung der Anwendungsbereitstellung ist.
Wichtigkeit des Load Balancing
Websites mit hohem Traffic erhalten Millionen gleichzeitiger Benutzeranfragen für sofortige Anwendungsdatenrückgabe. Diese massive Arbeitslast kann, wenn sie nicht kontrolliert wird, einen einzelnen Server überwältigen. Ein überlasteter Server kann möglicherweise keine Antworten liefern oder wird nicht verfügbar, was zu Geschäftseinbußen führt. Hier kommen Load Balancer ins Spiel.
Ein Load Balancer koordiniert mit Servern für eine effiziente Verteilung von Benutzeranfragen. Er stellt sicher, dass kein Server überlastet ist oder keinen Traffic verarbeitet. Darüber hinaus können Load-Balancing-Geräte fehlerhafte Server erkennen und den Traffic zu funktionierenden Servern umleiten. Einige Load Balancer mit fortschrittlichen Algorithmen können sogar vorhersagen, ob ein Server bald überlastet wird, und den Traffic entsprechend leiten.
Unternehmen, die massiven Traffic erhalten, haben verschiedene Interessengruppen sowie Kunden, die ihre Apps oder Websites besuchen. Die Fähigkeit, diese erhöhte Nachfrage zu unterstützen, ist der Schlüssel zur kontinuierlichen Unterstützung durch Interessengruppen und Kunden. Aus diesem Grund fügen Unternehmen ihrer Cloud-Infrastruktur Load Balancer hinzu, um die Verfügbarkeit, Reaktionsfähigkeit und Skalierbarkeit zu verbessern.
Möchten Sie mehr über Lastverteilungssoftware erfahren? Erkunden Sie Lastverteilung Produkte.
Arten von Load Balancern
Load Balancer sind in erster Linie für das Management des Server-Load-Balancing (SLB) verantwortlich. Je nach ihren Fähigkeiten können sie auch zusätzliche Funktionen bieten: Sicherheit, Authentifizierung und geografische Speicherung. Diese vielfältigen Funktionen sowie Konfigurationen helfen, Load Balancer in sieben Typen zu kategorisieren.
1. Netzwerk-Load-Balancer (NLB)
Ein Netzwerk-Load-Balancer verteilt den Traffic basierend auf Netzwerkvariablen: Quell-IP, Ziel-IP, Quellport, Zielport und IP-Protokoll. Er ist auch als Layer-4 (L4) Load Balancer bekannt, da er in der vierten Schicht des Open Systems Interconnection (OSI)-Modells arbeitet.
Ein Netzwerk-Load-Balancer berücksichtigt keine anwendungsbezogenen Parameter wie Inhaltstyp, Cookie-Daten, benutzerdefinierte Header, Benutzerstandort oder Anwendungsverhalten. Er ist kontextlos und leitet den Traffic basierend auf den im Paket enthaltenen Netzwerkebeneninformationen.
2. Anwendungs-Load-Balancer (ALB)
Ein Anwendungs-Load-Balancer verteilt eingehende Anfragen basierend auf mehreren anwendungsbezogenen Variablen. Er ist auch als Layer-7 (L7) Load Balancer bekannt, da er im OSI-Modell am höchsten eingestuft ist.
Ein Anwendungs-Load-Balancer ist inhaltsbewusst. Er trifft Load-Balancing-Entscheidungen auf Grundlage von Inhaltselementen wie Uniform Resource Locator (URL), Hypertext Transfer Protocol (HTTP)-Header und Secure Sockets Layer (SSL). Diese Bewusstheit ermöglicht es einem Anwendungs-Load-Balancer, den Server-Traffic entsprechend dem Anwendungsverhalten und der Nutzung zu steuern.
3. Globaler Server-Load-Balancer (GSLB)
Ein globaler Server-Load-Balancer oder Multi-Site-Load-Balancer verwendet dynamische DNS-Technologie, um den Traffic über Server an verschiedenen Standorten zu verteilen.
Globales Server-Load-Balancing agiert als DNS-Proxy und verwendet Echtzeit-Load-Balancing-Algorithmen, um zu antworten. Es maximiert die Leistung und minimiert die Latenz, indem es Benutzern ermöglicht, sich mit einem geografisch näheren Server zu verbinden. Zusätzlich zum Load Balancing überwacht es die Servergesundheit durch Konfigurationen und erleichtert die Wiederherstellung bei einem Serverausfall.
4. Hardware-Load-Balancer-Gerät (HLD)
Ein Hardware-Load-Balancer-Gerät ist ein physisches Gerät, das vor Ort installiert ist und den Web-Traffic zu verschiedenen Servern leitet. Es wird normalerweise auf der Transportschicht (L4) und der Anwendungsschicht (L7) des OSI-Modells implementiert.
HLDs randomisieren entweder die Traffic-Verteilung oder berücksichtigen verschiedene Faktoren wie die verfügbare Serververbindung, Ressourcennutzung und Serververarbeitungskapazität. Diese Load Balancer haben keine Abhängigkeiten und können in Rechenzentren installiert werden. Trotz der Bewältigung eines großen Traffic-Volumens bieten HLDs begrenzte Flexibilität und sind teuer.
5. Software-Load-Balancer (SLB)
Ein Software-Load-Balancer verwendet einen oder mehrere Scheduling-Algorithmen, um eingehende Anfragen über die Server zu verteilen. SLBs sind flexibel und können leicht in Virtualisierungsorchestrierungslösungen integriert werden. Da SLBs auf Standardhardware laufen, sind sie auch kostengünstiger.
6. Virtueller Load-Balancer (VLB)
Ein virtueller Load-Balancer ist ein Hardware-Load-Balancer, der auf einer virtuellen Maschine arbeitet. VLBs verwenden virtualisierte Application Delivery Controller-Software, um die Netzwerklast zu verteilen. Große Organisationen mit konstanten Traffic-Spitzen verwenden häufig diese Load Balancer. Zu den häufigen Herausforderungen von VLBs gehören begrenzte Automatisierungsfähigkeiten, weniger Skalierbarkeit und ein Mangel an zentralem Management.
7. Gateway-Load-Balancer (GLB)
Ein Gateway-Load-Balancer implementiert, skaliert und verwaltet virtuelle Appliances wie Firewalls, Systeme zur tiefen Paketinspektion und Systeme zur Eindringungsverhinderung. Dieser Load Balancer verwendet ein einzelnes Ein- und Ausgangspunkt-Netzwerk-Gateway, um den Traffic zu verteilen. Ein GLB arbeitet auf der dritten Schicht des OSI-Modells.
Wie funktioniert ein Load Balancer?
Ein Load Balancer sitzt typischerweise zwischen einem Client und den Hosts, die Client-Dienste bereitstellen. Angenommen, ein Load Balancer ist mit einem virtuellen Server und einem Cluster von Dienstpunkten verbunden. Er ist auch mit Hosts verbunden, um den zurückkehrenden Traffic an den Client zu verarbeiten. So funktioniert dieser Load Balancer während einer Transaktion:
- Verbindungsversuch: Ein Client versucht, sich mit Diensten hinter einem Load Balancer zu verbinden.
- Verbindungsannahme: Der Load Balancer akzeptiert die eingehende Anfrage. Er wählt den am besten geeigneten Host aus, leitet die Anfrage jedoch erst weiter, nachdem er die Ziel-IP basierend auf den Diensten des ausgewählten Hosts geändert hat.
- Hostantwort: Der Host akzeptiert die Verbindung und antwortet dem Client über den Load Balancer.
- Abfangen des Rückgabepakets: Der Load Balancer fängt das Rückgabepaket ab und ändert die Quell-IP in die virtuelle Server-IP, bevor er das Paket an den Client weiterleitet.
- Empfang des Rückgabepakets: Der Client erhält das Rückgabepaket und stellt weiterhin andere Anfragen.
Load-Balancing-Algorithmen
Die Effizienz des Load Balancing beruht auf Load-Balancing-Algorithmen.
Ein Load-Balancing-Algorithmus ist eine Logik, die ein Load Balancer verwendet, um eingehende Datenpakete zu verarbeiten und Lasten auf Server zu verteilen. Die Auswahl des richtigen Algorithmus ist entscheidend für Zuverlässigkeit, Leistung und Redundanz.
Load-Balancing-Algorithmen analysieren den eingehenden Traffic und verwenden verschiedene Parameter, um ihn zu verteilen. Basierend auf diesen Parametern werden Load-Balancing-Algorithmen in zwei Typen unterteilt: statisch und dynamisch.
Statischer Load-Balancing-Algorithmus
Ein statischer Load-Balancing-Algorithmus verteilt den gesamten Traffic gleichmäßig auf die Server. Er ist statisch, weil er den Zustand des aktuellen Systems für die Lastverschiebung nicht berücksichtigt.
Dieser Algorithmus leitet den Traffic basierend auf dem Wissen über die Serverressourcen. Darüber hinaus erfordert ein statischer Load-Balancing-Algorithmus, dass Load-Balancing-Aufgaben ausschließlich ausgeführt werden. Andere Geräte können diese Aufgaben nicht ausführen. Dieser Algorithmus ist ideal für Systeme mit geringen Lastschwankungen.
Nachfolgend sind einige der am häufigsten verwendeten statischen Load-Balancing-Algorithmen aufgeführt.
Round-Robin
Round-Robin-Load-Balancing ist einer der einfachsten und am weitesten verbreiteten Algorithmen zur Verteilung eingehender Anfragen auf Server. Er durchläuft eine Liste von Servern und leitet eine Client-Anfrage an jeden Server in der Liste weiter. Am Ende einer Liste wiederholt er denselben Prozess, bis alle Anfragen verteilt sind. Der Round-Robin-Algorithmus geht davon aus, dass alle Server mit derselben Load-Balancing-Fähigkeit verfügbar sind.
Zwei Varianten des Round-Robin-Algorithmus sind:
1. Gewichtetes Round-Robin: Gewichtetes Round-Robin ist eine erweiterte Konfiguration von Round-Robin. Es weist jedem Server ein Gewicht zu, das normalerweise die Lastverarbeitungskapazität eines Servers angibt. Je höher das Gewicht, desto mehr Anfragen erhält ein Server.
Angenommen, zwei Server, X und Y, haben die Gewichte 2 und 1. Ein Load Balancer wird zwei Anfragen an X verteilen, für jede Anfrage, die er an Y sendet.
2. Dynamisches Round-Robin: Ein dynamischer Round-Robin-Algorithmus weist jedem Server dynamisch ein Gewicht zu. Dieses Gewicht variiert je nach aktueller Last und Leerlaufkapazität eines Servers.
Source IP Hash
Der Source-IP-Hash-Load-Balancing-Algorithmus generiert einen Hash-Schlüssel, indem er die Quell- und Ziel-IP-Adressen kombiniert. Jeder Hash-Schlüssel ist einzigartig für einen bestimmten Server und weist Anfragen nur diesem Server zu. Dieser Schlüssel kann neu generiert werden und stellt sicher, dass ein Client bei einem Sitzungsabsturz auf denselben Server geleitet wird.
Randomisierte statische
Ein randomisierter statischer Load-Balancing-Algorithmus weist Aufgaben zufällig Servern zu. Er kann sogar eine zufällige Permutation berechnen, wenn er die Anzahl der Aufgaben im Voraus kennt. Da Prozessoren bereits wissen, welche Aufgaben ihnen zugewiesen sind, benötigt ein Server in solchen Fällen keinen Verteilungs-Master. Dieser Algorithmus funktioniert gut für eine minimale Aufgabengröße.
Zentraler Manager
Der zentrale Manager-Algorithmus verteilt die Arbeitslast mit einem zentralen Knoten als Koordinator, der den Prozessor mit der geringsten Last auswählt. Das Vorhandensein von Lastinformationen auf allen Servern hilft dem Manager, den am wenigsten belasteten Prozessor auszuwählen. Dieser Algorithmus verwendet viel Interprozesskommunikation, die schnell zu einem Engpass werden kann.
Schwellenwert
Der Schwellenwert-Algorithmus weist eingehenden Traffic neuen Servern zu. Die Server werden lokal ausgewählt, wodurch die Notwendigkeit der Kommunikation über Remote-Nachrichten entfällt. Jeder Server hält eine Kopie der Prozessorlast, die in drei Stufen kategorisiert ist:
- Unterlastet: Last <tunder
- Mittel: tunder ≤ Last ≤ tupper
- Überlastet: Last > tupper
Dynamischer Load-Balancing-Algorithmus
Ein dynamischer Load-Balancing-Algorithmus trifft Load-Balancing-Entscheidungen basierend auf Leistungsinformationen der Knoten. Dieser Algorithmus verteilt die Arbeitslast zur Laufzeit und findet die zugewiesene geeignete Last auf dem leichtesten Server in einem Netzwerk. Dynamische Load-Balancing-Algorithmen sind in der Regel komplex, bieten jedoch eine bessere Leistung und Toleranz.
Die am häufigsten verwendeten dynamischen Load-Balancing-Algorithmen sind:
Wenigste Verbindung
Dieser Load-Balancing-Algorithmus verteilt Client-Anfragen auf Server mit der geringsten Anzahl aktiver Verbindungen zum Zeitpunkt des Empfangs einer neuen Anfrage. Bei längerlebigen Verbindungen berücksichtigt der Algorithmus der wenigsten Verbindung die aktive Verbindungsbelastung bei der Verteilung von Anfragen.
Gewichtete wenigste Verbindung
Gewichtete wenigste Verbindung, eine erweiterte Konfiguration des Algorithmus der wenigsten Verbindung, verwendet Servergewichtung und aktive Verbindungen zur Verteilung von Client-Anfragen. Sobald ein Administrator jedem Server basierend auf seiner Traffic-Verarbeitungskapazität ein Gewicht zuweist, berücksichtigt die gewichtete wenigste Verbindung verschiedene Anwendungsservermerkmale für die Lastverteilung. Dieser Algorithmus erfordert mehr Rechenzeiten, gewährleistet jedoch eine effiziente Traffic-Verteilung.
Gewichtete Antwortzeit
Dieser Load-Balancing-Algorithmus nutzt die Antwortzeit der Anwendungsserver zur Lastverteilung. Je früher die Antwort, desto schneller erhält ein Server die nächste Anfrage. Dieser Algorithmus berechnet die Gewichte der Anwendungsserver, indem er die Antwortzeit mit einem Gesundheitscheck verbindet.
Ressourcenbasiert (adaptiv)
Bei diesem Algorithmus treiben die verfügbaren Ressourcen jedes Servers die Lastverteilungsentscheidungen an. Jeder Server enthält einen Agenten oder spezialisierte Software, die verfügbare CPU- und Speichermetriken misst. Dieser Agent berichtet dem Load Balancer für eine effiziente Anfragenverteilung. Ein weiterer ressourcenbasierter Algorithmus, der Software-Defined Networking (SDN)-Controller und Netzwerkebenenkenntnisse für Traffic-Verteilungsentscheidungen verwendet, ist ein ressourcenbasierter (SDN-adaptiver) Load-Algorithmus.
Dynamische Load-Balancing-Algorithmen scheinen statische zu übertreffen, sind jedoch komplexer, da sie den aktuellen Systemzustand berücksichtigen. Diese Komplexität führt oft zu Overhead und schlechten Load-Balancing-Entscheidungen. Deshalb ist es wichtig, das vollständige Bild eines Load-Balancing-Mechanismus zu erhalten, bevor man sich für einen Load Balancer entscheidet.
Statisches Load Balancing | Dynamisches Load Balancing | |
Lastverteilung | Zur Kompilierungszeit | Zur Laufzeit |
Stabilität | Mehr | Weniger |
Komplexität und Kosten | Weniger | Mehr |
Zuverlässigkeit und Antwortzeit | Weniger | Mehr |
Vorhersehbarkeit | Einfach | Schwierig |
Prozessor-Thrashing und Zustandswackeln | Keine | Erheblich |
Ressourcennutzung | Weniger | Mehr |
Kommunikationsverzögerung | Weniger | Mehr |
Vorteile eines Load Balancers
Unresponsive Anwendungen oder Webressourcen sind nicht nur frustrierend für Benutzer, sondern beeinträchtigen auch potenzielle Geschäfte. Load Balancing hilft Ihnen, die Ressourcennutzung, Antwortzeit und Datenbereitstellung in Umgebungen mit hohem Traffic zu optimieren. Nachfolgend sind einige der Hauptvorteile eines Load Balancers aufgeführt.
Hohe Leistung
Ein Load Balancer reduziert die Ladegeschwindigkeit und Antwortzeiten, indem er eingehenden Traffic an fähige Server leitet. Intelligentes Load Balancing reduziert die Last auf Servern, optimiert die Benutzererfahrung und verbessert die Leistung Ihrer Website oder Anwendung. So verbessert ein Load Balancer die Serverleistung:
- SSL-Offload: Entfernt die Server-Überlastung und macht mehr Ressourcen für Ihre Webanwendung oder Ressourcen verfügbar
- Traffic-Komprimierung: Komprimiert den Website-Traffic, um die Benutzererfahrung zu optimieren
- Traffic-Caching: Liefert Inhalte schnell mit gespeicherten Kopien häufig aufgerufener Webelemente
- HTTP 2.0-Unterstützung: Hilft bei der Kommunikation mit Clients und lädt Websites schneller
Redundanz
Ein fehlerhafter Server unterbricht Dienste. Load Balancer verwenden eingebaute Redundanz, um Hardwarefehler zu bewältigen und ihre Auswirkungen auf die Website-Verfügbarkeit zu mindern. Sie leiten Client-Anfragen bei einem Serverausfall automatisch an funktionierende Server um. So stellen Load Balancer weiterhin Redundanz sicher:
- Fortgesetzter Dienst: Verwenden Sie funktionierende Server, um Client-Anfragen zu leiten, wenn ein Server ausfällt
- Umgehung beschäftigter Server: Identifizieren Sie beschäftigte Server und leiten Sie den Traffic zu weniger ausgelasteten Servern um
- Hochverfügbare Site: Setzen Sie Load Balancer paarweise ein, damit einer übernehmen kann, wenn der andere ausfällt
- Geschäftskontinuität: Erkennt Site-Ausfälle und leitet Besucher zu einer voreingestellten alternativen Website um
Skalierbarkeit
Traffic-Spitzen können ohne einen Mechanismus zur Verwaltung der steigenden Last zu einem Albtraum werden. Ein Load Balancer fügt einen physischen oder virtuellen Server im Traffic-Verteilungsprozess hinzu, um diese Nachfrage zu bewältigen. Skalierbarkeit gewährleistet einen ununterbrochenen Dienst. So hilft Skalierbarkeit:
- Geschäftskontinuität: Leitet den Traffic bei Site-Ausfällen zu alternativen Sites um
- Website-Kapazität: Bewältigt Traffic-Spitzen mit zusätzlichen Servern
- Cloud-Auto-Skalierung: Erfüllt die variierenden Anforderungen von cloud-gehosteten Websites
- Kapazitätserweiterung: Vermeidet störende Upgrades
Sicherheit
Load Balancer schützen auch Daten mit zusätzlichen Netzwerksicherheitsschichten. Ein Load Balancer verwendet die folgenden Funktionen, um die Sicherheit Ihrer Website oder Anwendung zu erhöhen:
- Web Application Firewall (WAF): Schützt Website oder App vor aufkommenden Bedrohungen und führt tägliche Regelaktualisierungen durch
- Benutzerzugriffsauthentifizierung: Schützt Webressourcen vor unbefugtem Zugriff
- Bedrohungserkennung: Identifiziert und verwirft Denial-of-Service (DDoS)-Traffic
Herausforderungen bei Load Balancern
Einige der häufigsten Herausforderungen bei einem Load Balancer resultieren aus ungeeigneten Konfigurationsoptionen. Einige dieser Herausforderungen sind:
- Schließen stiller Verbindungen: Eine Standardkonfiguration in Load Balancern schließt Transmission Control Protocol (TCP)-Verbindungen, die eine Weile still sind. Während dies für Load Balancer, die Webserver-Verbindungen handhaben, geeignet ist, kann die automatische Schließung dazu führen, dass die erneuten Verbindungsversuche eines Clients fehlschlagen.
- Verbindungspooling: Load Balancer verfügen oft über eine Verbindungspooling-Funktion, die die Server-Load-Balancer-Verbindung am Leben hält. Mehrere Clients verwenden diese Verbindungen. Das Problem beim Verbindungspooling ist, dass, sobald die multiplexierte Verbindung geschlossen wird, alle clientseitigen Verbindungen ebenfalls geschlossen werden.
- Teure TCP-Verbindung: Das Erstellen einer neuen TCP-Verbindung für jede Anfrage ist teuer und erhöht die Anfragenverarbeitungszeit. Diese neuen Verbindungen erhöhen auch erheblich den Traffic zwischen dem Load Balancer und dem Server. Es ist am besten, einen Load Balancer so zu konfigurieren, dass TCP-Verbindungen für Anfragen desselben Clients wiederverwendet werden.
- TCP-Übertragungszeitüberschreitung: Die Load Balancer, die Failover verwenden, leiden unter TCP-Übertragungszeitüberschreitung und verursachen lange Latenzen für Clients. Dies liegt daran, dass nicht verfügbare Server bestehende Client-Verbindungen offen halten und Daten puffern, bevor sie sie schließen. Sie können dies vermeiden, indem Sie die TCP-Übertragungszeitüberschreitung des Host-Servers ändern oder einen Load Balancer so konfigurieren, dass ungesunde Verbindungen geschlossen werden.
Reverse Proxy vs. Load Balancer vs. CDN vs. Clustering
Ein Reverse Proxy akzeptiert eine Client-Anfrage und leitet sie an einen Server weiter, der die Anfrage erfüllen kann. Andererseits verteilt ein Load Balancer Client-Anfragen auf einen Pool von Servern. Beide:
- Verbessern die Effizienz
- Agieren als dedizierte, speziell entwickelte Geräte
- Geben die Serverantwort an den Client zurück
- Tragen zu einer Client-Server-Computing-Architektur bei
- Vermitteln die Kommunikation zwischen Client und Server
Der einzige Unterschied zwischen Reverse Proxy und Load Balancer besteht darin, dass der erstere für einen einzelnen Web- oder Anwendungsserver verwendet wird und der letztere für mehrere Server. Neben der Erhöhung der Sicherheit bieten Load Balancer eine Webbeschleunigung, die die Antwortzeit reduziert.
Ein Content Delivery Network (CDN) ist ein Netzwerk von Servern an mehreren geografischen Standorten. CDN liefert Daten an Benutzer von dem Standort, der ihnen am nächsten liegt. CDNs und Load Balancer erfüllen ähnliche Rollen: effiziente Datenverteilung und Maximierung der Betriebszeit.
Der Hauptunterschied zwischen CDNs und Load Balancern besteht darin, dass CDNs Inhalte über ein großes geografisches Gebiet verteilen, während Load Balancer den Client-Traffic über ein Netzwerk von Servern verteilen.
- Art des Servers: Load Balancing kann mit verschiedenen Arten von Servern arbeiten, während Clustering identische Server innerhalb eines Clusters benötigt.
- Management: Ein Controller kann Cluster verwalten, aber Load Balancing erfordert zusätzliche Netzwerktechnologie.
- Operationen: Load Balancer sind nicht von Zielservern abhängig. Cluster sind auf Knotenagenten und Manager für die Kommunikation angewiesen.
Eine wachsende Organisation muss Wege finden, um den sich entwickelnden Serveranforderungen gerecht zu werden. Die Wahl der Technologie variiert je nach dem Problem, das Sie lösen möchten. Unabhängig von dem Instrument, das Sie wählen, sollte es kostengünstig und flexibel für Änderungen sein.
Zusammenfassend sollten Sie verwenden:
- Reverse Proxy, um den Traffic-Fluss zu beschleunigen, indem häufig verwendete Inhalte zwischengespeichert und Daten (eingehend und ausgehend) komprimiert werden
- Load Balancer, um die Anwendungsleistung zu verbessern, indem die Anwendungsfähigkeit und Zuverlässigkeit erhöht wird
- CDN, um Inhalte schnell an Benutzer mit einem Netzwerk von Servern in verschiedenen geografischen Regionen zu liefern
- Clustering, um hohe Verfügbarkeit sicherzustellen, indem andere Server im Falle eines Ausfalls übernehmen können
Load-Balancer-Anwendungsfälle
Ein Load Balancer verteilt in erster Linie eingehenden Traffic auf Backend-Server, kann aber auch viel mehr tun. Einige der bemerkenswerten Anwendungsfälle eines Load Balancers sind:
- Horizontale Skalierung: Die Skalierung des Traffics ist ein häufiges Anliegen für wachsende Organisationen, die Webdienste anbieten. Es gibt zwei Arten der Skalierung: horizontal (Verteilung des Traffics auf mehrere Server) und vertikal (Verschiebung von Anwendungen auf einen leistungsstarken Server, um den steigenden Anforderungen gerecht zu werden). Load Balancer erleichtern die horizontale Skalierung und machen Ihre Website oder Anwendung zuverlässiger.
- Hohe Verfügbarkeit: Hohe Verfügbarkeit ist der Schlüssel zur Reduzierung von Ausfallzeiten und zur Optimierung der Systemzuverlässigkeit. Load Balancer beseitigen einzelne Fehlerpunkte und helfen Ihnen, eine hohe Verfügbarkeit zu erreichen. Sie identifizieren nicht funktionierende Server automatisch mit Gesundheitschecks und entfernen sie für eine bessere Verfügbarkeit.
- Blaue/grüne Bereitstellungen: Angenommen, Sie möchten Ihre Software gründlich testen, bevor Sie sie in die Produktionsinfrastruktur bereitstellen. Zunächst müssen Sie sicherstellen, dass alles vor der Bereitstellung funktioniert. Dank der blauen/grünen Bereitstellungstechnik können Sie diese Tests mit einem Load Balancer problemlos durchführen. Sie können auch zur alten Version zurückkehren, wenn eine Bereitstellung fehlschlägt.
- Canary-Bereitstellungen: Canary-Bereitstellungen testen eine neue Version einer Anwendung für eine Teilmenge von Benutzern und aktualisieren den Rest des Serverpools entsprechend. Wenn Sie nach dem Hinzufügen eines Canary-Servers zum Pool zu viele Fehler sehen, können Sie die Bereitstellung abbrechen. Wenn keine Fehler auftreten, können Sie die Updates weiterhin auf den Rest des Pools bereitstellen.
- A/B-Bereitstellungen: A/B-Bereitstellungen helfen Ihnen, fundierte Marketing- und Entwicklungsentscheidungen zu treffen. Load Balancer ermöglichen es Ihnen, B-Server zum bestehenden A-Server-Pool hinzuzufügen. Sobald dies geschehen ist, können Sie aussagekräftige Einblicke aus der Überwachungs- und Protokollierungsinfrastruktur gewinnen.
Load-Balancing-Software
Effizientes Load Balancing hängt von der Wahl der richtigen Software ab. Wenn Sie ein hohes Traffic-Volumen bewältigen möchten, indem Sie Client-Anfragen auf eingehende Server verteilen, lassen Sie die Load-Balancing-Software die schwere Arbeit erledigen.
Um in diese Kategorie aufgenommen zu werden, muss ein Softwareprodukt:
- Web-Traffic überwachen und Ressourcen verteilen
- Infrastruktur-Workloads skalieren, um den Traffic auszugleichen
- Integrieren oder Failover- und Backup-Dienste bereitstellen
*Nachfolgend sind die fünf führenden Load-Balancing-Softwarelösungen aus dem Winter 2021 Grid® Report von G2 aufgeführt. Einige Bewertungen können zur Klarheit bearbeitet worden sein.
1. F5 NGINX
F5 NGINX bietet einen cloud-nativen und benutzerfreundlichen Reverse Proxy und Load Balancer. Es kommt mit verschiedenen Fähigkeiten wie Sicherheitskontrollen, DNS-Systemwiederherstellung, erweiterter Überwachung, Sitzungsbeständigkeit, Kubernetes-Containern und representational state transfer (REST) Application Programming Interface (API).
Was Benutzer mögen:
Einfacher, benutzerfreundlicher und leistungsstarker HTTPS-Server. Das Load Balancing ist eines der besten, das ich je gesehen habe. Ich verwende derzeit nur die kostenlose Version, aber sie tut alles, was ich brauche. Sie ist leichtgewichtig und verbraucht nicht viele Ressourcen.
- F5 NGINX Review, Joseph S.
Was Benutzer nicht mögen:
Weniger Community-Unterstützung und Dokumentation als andere Webserver wie Apache, aber wahrscheinlich mehr als genug, abhängig von Ihrem Fachwissen und Anwendungsfall. Nicht so viele Module oder Erweiterungen wie Apache. Es könnte schwierig sein, zu verstehen, wie man es anfänglich konfiguriert. Aber sobald man den Dreh raus hat, ist es ziemlich einfach zu bedienen.
- F5 NGINX Review, Amogh H.
2. Kemp LoadMaster
Kemp LoadMaster bietet Load-Balancing-Lösungen für eine hohe Leistung und sichere Bereitstellung von Anwendungs-Workloads. Es ist bekannt für vereinfachte Bereitstellungen, flexible Lizenzierung und erstklassigen technischen Support.
Was Benutzer mögen:
Das LoadMaster-Produkt ist unglaublich einfach zu bedienen für alle Grundlagen. Wir haben es geschafft, Load-Balancing-Regeln für Web- und interne Systeme einfach einzurichten, aber es kann noch viel mehr als Load-Balancing-Produkt tun. Diese Funktionen können ziemlich knifflig einzurichten sein, aber der Support ist unübertroffen. Bei Problemen mit der Einrichtung eines Dienstes ein Ticket einreichen, und innerhalb einer Stunde meldet sich jemand zurück, und Remote-Sitzungen lösen die Probleme. Kein Warten auf eine Antwort für Tage. Das ist es, was uns wirklich dazu bringt, jedes Jahr zu erneuern – man erkennt, wie wichtig guter Support ist. Das Einrichten der LoadMasters von einem VM-Image dauert etwa 15 Minuten für ein HA-Setup.
- Kemp LoadMaster Review, Daniel S.
Was Benutzer nicht mögen:
Web-UI. Es ist unpoliert und nicht intuitiv. Zum Beispiel werden reale Server nicht im Abschnitt "Reale Server" konfiguriert. Es ist schwierig, die Einstellungen zu finden, und Einstellungen für verwandte Dinge sind über mehrere Abschnitte verteilt. Inkonsistente Platzierung der Schaltflächen, inkonsistente Feldnamen: manchmal alles in Großbuchstaben wie "Connectivity Timeout", manchmal gemischte Groß- und Kleinschreibung wie "Retry attempts" direkt darunter. Keine Unterstützung für Duo 2FA. Ein Großteil der Online-Dokumentation und Tutorials ist veraltet.
- Kemp LoadMaster Review, Peter K.
3. Azure Traffic Manager
Azure Traffic Manager bietet einen cloudbasierten Load-Balancing-Dienst, der entwickelt wurde, um hohe Verfügbarkeit sicherzustellen, die Reaktionsfähigkeit zu erhöhen, nutzungsbasierte Einblicke zu bieten und On-Premises- und Cloud-Systeme zu kombinieren.
Was Benutzer mögen:
Traffic-Manager ermöglichen es, Benutzer basierend auf verschiedenen Einstellungen an geeignete Endpunkte weiterzuleiten. Wir verwenden es, um Benutzer zu nationalen Versionen der Website zu leiten, abhängig vom Standort der Benutzer. Es ermöglicht Benutzern, Informationen in ihrer Muttersprache zu sehen und minimiert die Antwortzeit von Webseiten, da nationale Sites in den nächstgelegenen Rechenzentren platziert sind. Die Hauptfunktion ist, dass das gesamte Routing im Hintergrund erfolgt und alle Benutzer eine einzige URL verwenden können, um auf die Site zuzugreifen, unabhängig von ihrem Standort. Die zweite großartige Funktion ist die Failover-Option, sodass die Site mit derselben URL verfügbar bleibt, unabhängig von ihrem aktuellen Standort. Wir verwenden es für On-Premise-Sites, bei denen Azure Site Recovery für Server konfiguriert wurde. Die URL bleibt auch nach dem Failover zu Azure live.
- Azure Traffic Manager Review, Arthur S.
Was Benutzer nicht mögen:
Es erhöht die anfängliche Antwortzeit für die Site aufgrund von Routing-Aktivitäten. Selbst wenn Benutzer zur nächstgelegenen Site weitergeleitet werden, geht die anfängliche Anfrage an die Azure-Region, in der der Traffic-Manager bereitgestellt ist.
- Azure Traffic Manager Review, Michael L.
4. AWS Elastic Load Balancing
AWS Elastic Load Balancing verteilt eingehenden Anwendungstraffic, um die Anwendungs-Skalierbarkeit zu verbessern. Es ist bekannt für hohe Verfügbarkeit, robuste Sicherheit und automatische Skalierungsfunktionen.
Was Benutzer mögen:
ELB ist hochverfügbar und ermöglicht es, den Traffic sofort auf andere Server zu leiten, selbst wenn der primäre ausfällt. Es ist nicht kostenpflichtig. ELB funktioniert gut mit AWS Auto Scaling (hilft beim Hoch- und Herunterskalieren zur Laufzeit ohne Auswirkungen). Wir können ELB mit Route53 und Cloudfront integrieren, um die Anfrage rechtzeitig von verschiedenen Standorten zu bedienen, um Latenz zu vermeiden. Es ist sicher und einfach zu installieren.
- AWS Elastic Load Balancing Review, Anshu K.
Was Benutzer nicht mögen:
Gesundheitschecks dauern manchmal länger als erwartet, was zu Problemen führen kann, wenn Sie die Gesundheitscheck-Konfiguration nicht sorgfältig einrichten.
- AWS Elastic Load Balancing Review, Joey D.
5. Micro Focus Silk Performer
Micro Focus Silk Performer optimiert die Anwendungsleistung mit realistischen und leistungsstarken Last- und Stresstests. Es bietet End-to-End-Diagnosen und ermöglicht es Apps, eine erhöhte Nutzung zu tolerieren.
Was Benutzer mögen:
Anwendungsanalyse und die einfache Durchführung von Funktionstests mit Spitzenlast jeder erforderlichen Größe. Es ist einfach, Tests mit Micro Focus Silk Performer für die Produktionsqualitätsverbesserung zu erstellen.
- Micro Focus Silk Performer Review, Debra M.
Was Benutzer nicht mögen:
Das Skripting war anfangs schwierig. Viele Funktionen sehen ähnlich aus, aber es ist schwierig, die richtige zu bewerten.
- Micro Focus Silk Performer Review, Rajesh H.
Verbessern Sie die Betriebszeit und die Lastverteilung
Heute müssen DevOps sicherstellen, dass Anwendungen den steigenden Traffic-Anforderungen mit minimalen Benutzerunterbrechungen gerecht werden. Sie nutzen Load-Balancing-Funktionen wie Netzwerk-Lastverteilung, Betriebszeitverbesserung, Serverausfallerkennung und Minimierung der Backend-Serverlast, um den Server funktionsfähig zu halten. Load Balancer sind entscheidend für die Skalierbarkeit, Verfügbarkeit und Sicherheit von Anwendungen.
Möchten Sie Load Balancer zu Ihrem Netzwerk hinzufügen? Erfahren Sie mehr über virtuelle private Server und ob Sie sie zur Speicherung von Ressourcen wählen sollten.

Sudipto Paul
Sudipto Paul is an SEO content manager at G2. He’s been in SaaS content marketing for over five years, focusing on growing organic traffic through smart, data-driven SEO strategies. He holds an MBA from Liverpool John Moores University. You can find him on LinkedIn and say hi!