Gedanken zur Shop-Optimierung – Load Balancer im Einsatz

In Spitzenzeiten wie z.B. durch erfolgreiche SEO-Massnahmen, Feiertage wie Weihnachten etc. können Webserver unter der hohen Last der Kundenanfragen einfach zusammenbrechen. Der Aufbau Ihrer Webseiten, Blogs, Foren bzw. Shops dauert aus Sicht des Kunden einfach zu lange; der Kunde springt ab und kauft woanders. Einen einmal verlorenen Kunden holen Sie nicht so schnell wieder zurück.

Hängt nun der Umsatz- und Geschäftserfolg von der Erreichbarkeit bzw. auch Verfügbarkeit Ihrer Webseite ab, bieten sich sogenannte Load Balancer bzw. Lastverteiler an.

Load Balancer werden zur Verteilung des Internet Traffics auf 2-n dedizierte Server – oft auch als Rootserver bezeichnet – verwendet. Somit können täglich wachsende Kundenzahlen problemlos bewältigt werden ohne strukturelle Änderungen der IT-Architektur durchführen zu müssen. Hier werden einfach weitere Rootserver eingebunden.

Durch den Einsatz redundanter Rootserver Systeme ist es zusätzlich möglich, einzelne Rootserver einer Wartung wie z.B. einem Softwareupdate zu unterziehen oder den Rootserver gar auszutauschen, ohne das die angebotenen Dienste, d.h. Ihr Shop beeinträchtigt werden.

Grundsätzlich werden Load Balancer technisch durch verschiedene Verfahren abgebildet. Ich möchte hier einige aufzählen ohne den Anspruch auf Vollständigleit zu geben.

  • Die sicherlich einfachste Variante stellt das DNS Verfahren dar. Hier werden im Nameserver lediglich für Ihren Shop z.B. www.meinshop.de die entsprechenden IP-Adressen der Rootserver hinterlegt. Der Load Balancer ist schnell eingerichtet, jedoch findet in der Form keine richtige Lastverteilung statt. Der Nameserver weiß nichts über die Auslastung bzw. Verfügbarkeit des jeweiligen Rootservers oder der Dienste, was auch die Vorteile der Wartung bzw. den Ausfalls eines Servers durch Hardwareschaden bei weiterer Verfügbarkeit des Dienstes nicht möglich macht. Zusätzlich wird hierbei eine entsprechende Anzahl von öffentlichen IP-Adressen benötigt.
  • Das Round Robin Verfahren stellt eine einzige IP-Adresse in die Welt des Internets zur Verfügung, intern verteilt er die Anfragen (NAT) auf private IP-Adressen. Nachteilig wirkt sich hierbei aus, daß der Load Balancer zum sogenannten Single Point of Failure wird und somit die Hochverfügbarkeit vom Anbieter bzw. Provider gefordert werden sollte. Zusätzlich weiß der Load Balancer auch hier nichts über den Zustand des Rootservers bzw. Dienstes.
  • Das URL basierte Verfahren stellt eine Lastverteilung anhand der URL dar. So wird z.B. /shop/ auf einen anderen Server geleitet als /forum/ oder /blog/. Zu diesem Zweck werden die Verzeichnisse auf den entsprechenden Rootservern abgelegt. Der Einsatz ist eingeschrenkt nutzbar, sollte aber in der Aufzählung nicht fehlen.
  • Das dienstbasierte Verfahren verteilt die Last gemäß der angebotenen Dienste, Anwendungen oder Protokolle. Somit kann ftp vom http oder https unterschieden werden. Anhand des Ports erfolgt dann eine Zuweisung des Rootservers. Sowohl das URL- als auch dienstbasierte Verfahren werden durch Analyse des Datenverkehrs verwendet, um Dienste/URLs mit hoher Last/hoher Rechenleistung sinnvoll zu trennen und Rechnerkapazitäten zu nutzen.

Der Schritt zu einem richtigen Load Balancer erfolgt durch den Austausch von Lastinformationen der Rootserver an den Load Balancer. Auch hier wird nach außen lediglich eine einzige IP-Adresse zur Verfügung gestellt. Die Anfragen werden vom Load Balancer an die Rootserver verteilt, jedoch unter Berücksichtigung des Zustandes/Parameter der Rootserver, des Services, der Datanbank, des Ports oder den laufenden Anwendung. Die Rückfragen zur Auslastung können in Form von z.B. SNMP Anfragen, SQl querries etc. erfolgen. Ist ein Server nicht mehr erreichbar oder ein Service weggefallen, kann der Load Balancer den Rootserver sofort aus der Liste entfernen. Die übrigbleibenden Rootserver stellen jedoch weiterhin die Kundendienste zur Verfügung. Somit wird auch der Wegfall des z.B. Apache sofort bemerkt und entsprechend reagiert. Automatisch nimmt der Load Balancer den Rootserver nach Reparatur oder Restart des Dienstes in die Lastverteilung mit rein.

Zu erwähnen ist sicherlich noch, daß Load Balancer lokal oder geografisch redundant ausgelegt werden. Georedundante Loadbalancer-Systeme stellen an mindestens 2 geografisch getrennten Orten Serverstrukturen bereit, so daß auch ein kompletter lokaler Ausfall eines Standortes (Strom/Providerprobleme) aufgefangen werden können.

Welche Probleme treten in der Praxis auf?

Hier wären Anwendungen zu nennen, die Kundenanfragen in sessions verwalten, um den Warenkorb zur Kasse zu führen. Damit werden Zustände wie z.B. der Inhalt des Warenkorbs gespeichert. Dies setzt jedoch voraus, das der der Kunde immer wieder mit dem gleichen Server kommuniziert, d.h. die Anfragen nicht beliebig auf die verfügbaren Server verteilt werden. Das Problem kann auch durch entsprechende Programmierung der Apllikation umgangen werden, jedoch stellt sich hier die Frage, ob der Kunde die Möglichkeit und das Wissen dazu hat. Somit bieten entsprechend versierte Provider Lösungen je nach Bedarf und Kundenwunsch an.