Von modernen Systemen wird erwartet, dass angebotene Dienste immer erreichbar sind. Dabei spielt es keine Rolle, ob es der große Webshop ist, E-Mail Dienste, Social Community Plattformen, oder andere wichtige Dienste, mit vielleicht noch wesentlich größerer Bedeutung und natürlich nicht zu vergessen die unternehmensinterne IT-Struktur. Zwei Stichworte sind hierbei besonders wichtig: Failover und Load Balancing mittels eines als Load Balancer arbeitenden Frontend Servers.
Was bedeuten Failover und Load Balancing?
Failover bedeutet, dass wenn ein Dienst, etwa ein Netzwerkdienst nicht mehr erreichbar ist, ein zweiter Dienst an dessen Stelle tritt, so dass der Gesamtdienst weiter verfügbar bleibt und im Normalfall der Anwender gar nicht mitbekommt, dass es zwischenzeitlich einen Ausfall gab.
Load Balancing wiederum bedeutet das ein Eingangsserver, also der als Load Balancer agierende Frontendserver, die Anfragen von Benutzern / Rechnern entgegennimmt und diese auf die Backendserver verteilt. Dabei berücksichtigt der Frontendserver die Verfügbarkeit der einzelnen Backendserver und verteilt dabei nach Kriterien, die im Gesamtergebnis eine möglichst gute Performance ergibt.
Durch die Lastenverteilung können Besucherspitzen leichter aufgefangen werden, so dass Überlastungen vermieden werden können, was zum Beispiel bei einem Online Shop etwa vor Weihnachten sehr leicht auftreten kann.
Ein weiterer Vorteil eines solchen Systems ist auch, dass durch Erweiterung der Backendsysteme jederzeit der jeweilige Online Dienst oder Service mitwachsen kann. Hinter den Begriffen Load Balancing, Failover können dabei ganz verschiedenartige Kombinationen aus Hardware und Softwarelösungen bzw. Kombinationen aus beiden stehen.
Systeme am Laufen halten durch Failover und Load Balancing
Damit verbunden sind natürlich höhere Kosten als bei einem einfachen Shared Webhost, Virtuell Server oder ähnlichem, aber nicht nur Kosten, sondern natürlich auch benötigtes IT-Wissen. Essenziell wird es aber, wenn davon die Lebensbasis eines Unternehmens profitiert und diese auch sichert, dabei muss es nicht zwingend ein Serviceangebot, etwa ein Online Shop für Endkunden sein, sondern es kann sich natürlich auch um ein Intranet System handelt, über den alle internen Geschäftsprozesse ablaufen, ob internes Nachrichtensystem, ein Dokumentenmanagementsystem, oder auch die firmeneigenen Datenbankmanagementsysteme.
Die optimale Konfiguration eines Load Balancer Systems ist dabei auch stark abhängig von dem Einsatzzweck, als Beispiel sei hier die Frage von Session-IDs erwähnt, die etwa beim Online Shopping eine Rolle spielen. Hier muss ein System in der Regel so konfiguriert sein, dass für bestehende Sessions eine Anfrage wieder an den Backendserver weitergeleitet wird, mit dem der Client zuvor kommuniziert hatte.
Die Art, wie Load Balancer Systeme aufgebaut sind, ist ebenso stark unterschiedlich, beispielsweise könnte das System so aufgebaut sein, dass ein Server Anfragen aus dem öffentlichen Netz entgegennimmt, dieser an einen Load Balncer Server weiterleitet, der wiederum die Anfragen dann auf die dahinterliegenden Rechner verteilt.
Bei einfacheren Varianten bedient sich der Rootserver des Domain Name System Protokolls und verteilt die Anfragen auf die unterschiedlichen Backendrechner über Subadressen.
Loadbalancing kann letztlich in Form von Hardwarelösungen oder auch als Softwarelösung oder als Kombination von beiden realisiert werden und dies mit unterschiedlicher Komplexität und Aufbau, die sich letztlich nach den Anforderungen des eigenen Systems richten sollte.
Load Balancing als Entwickler, kurzer Ausflug
Da ich nun mal Softwareentwickler bin, sei hier zusätzlich erwähnt, dass Delphi seit Version 2010 in Datasnap HTTP Tunneling implementiert hat, damit wird dem Entwickler die Kontrolle über die Daten, die zwischen Client und Server über das HTTP Protokoll gesendet werden, ermöglicht. Über die Entwicklung einer eigenen Middleware Anwendung können Entwickler so eigene Softwaresysteme zur Implementierung von Load Balance und Failover entwickeln. Hat man auf einem Server einen Datasnap Server, so lässt sich nunmehr relativ leicht eine Middlewarelösung implementieren, an die zukünftig die Anfragen gesendet werden, von wo aus, in Abhängigkeit von Verfügbarkeit nunmehr eine Weiterleitung an den entsprechenden Datasnap Server erfolgt.
Eine Frage bei dem Ganzen bleibt: was passiert, wenn der Root Rechner ausfällt oder überlastet ist? Hierbei ist natürlich an entsprechende Backup Systeme zu denken, die im Optimalfall sofort einspringen, bzw. bleibt immer die Möglichkeit des Hardware – Ausbaus, entweder des Rootservers an sich oder der gesamten Infrastruktur durch zusätzliche Rootserver.
Ohne Zweifel verbergen sich hinter den Begriffen Load Balancing und Failover mitunter recht komplexe Strukturen (und auch Fragen), so dass man gezielt auf IT-Experten auf diesem Gebiet zurückgreifen sollte, um eine optimale Lösung für die Anforderungen des eigenen Unternehmens und / oder Onlineangebots zu finden.