Von Zeit zu Zeit stoßen wir in den sozialen Medien auf Kommentare von Entwicklern, die sich fragen, warum jemand eine Warteschleifenlösung nutzen sollte. Für sie wäre die Installation von CrowdHandler eher ein Eingeständnis der Niederlage als eine kluge Ergänzung ihres Werkzeugkastens.
Warum sollte man schließlich eine Lösung für den Warteraum benötigen, wenn man einfach eine magische, unbegrenzt skalierbare Cloud nutzen kann?

Hier ein Beispiel:
„Eine vernünftige Strategie zur Lastverteilung mit unbegrenzter Skalierbarkeit oder ein für den Kunden nerviger Warteraum – hmm, eine schwierige Entscheidung“
Unbegrenzte Expansion? Das gibt es nicht.
Aus irgendeinem Grund scheinen viele Entwickler davon auszugehen, dass ihre Cloud-Lösungen – wie beispielsweise EC2-Gruppen mit automatischer Skalierung, AWS Lambda oder die entsprechenden Angebote von Azure und Google – unbegrenzt skalierbar sind.
Vielleicht glauben sie, dass sie aus Magie bestehen.
Tatsache ist, dass Cloud-Lösungen nur innerhalb bestimmter Grenzen skalierbar sind, und ganz gleich, wie viele Server man auf magische Weise hinzufügen kann – irgendwann stößt man an Grenzen.
Zu Ihren Parametern gehören auch diejenigen, die Sie selbst festlegen und bezahlen mussten – mit anderen Worten: die Parameter, innerhalb derer Sie in dieser Cloud entsprechend Ihrer Preisklasse arbeiten können. Es wird jedoch wahrscheinlich auch eine oberste Grenze geben, die sich nach Ihrer Datenbanktechnologie richtet. (Schließlich lässt sich keine ACID-Speicherschicht unendlich skalieren, da naturgemäß keine ACID-Transaktion unendlich sein kann.)
Wenn ich also einen Kommentar wie den oben genannten sehe, weiß ich, dass die Person in der Praxis noch nicht viel Erfahrung mit Skalierung gesammelt hat.
Denn sobald man einmal mit einer Anwendung gearbeitet hat, die innerhalb kürzester Zeit auf ein enormes Datenaufkommen skaliert werden soll, stößt man an diese Grenzen und begreift, dass es so etwas wie eine „unbegrenzte Skalierbarkeit“ nicht gibt.
Die automatische Skalierung funktioniert … bis sie es nicht mehr tut
Klar, Sie haben eine wirklich gute skalierbare Anwendung, die sich im Laufe eines Tages oder vielleicht sogar eines Monats automatisch skalieren lässt. Sie können sie problemlos an schwankende Zugriffszahlen anpassen, selbst in Spitzenzeiten. Ihre Architektur zur automatischen Skalierung erkennt, wenn etwas mehr los ist, und fügt automatisch Server hinzu, um den Andrang zu bewältigen … sobald es wieder ruhiger wird, erkennt sie das und nimmt die Server wieder aus dem Betrieb. Das funktioniert gut.
Das ist alles großartig – in 99 % der Fälle. Aber die Zugriffsmuster, die eine unendlich skalierbare Architektur erfordern würden, sehen ganz anders aus. Wir sprechen hier von einem Szenario, in dem Ihre Anwendung plötzlich zehnmal, hundertmal – vielleicht sogar tausendmal – stärker ausgelastet ist … und das innerhalb von weniger als einer Minute.
Plötzlich tausendmal mehr zu tun
Ein Ticketverkauf ist das offensichtlichste Beispiel für eine solche plötzliche Zugriffsspitze, die wir hier bei CrowdHandler beobachten. Wenn beispielsweise Tickets für die Tour eines aktuellen Megastars in den Verkauf gehen, kann die Besucherzahl auf der Website eines Anbieters pünktlich um 10 Uhr morgens von null auf eine Million steigen.
Aber es geht nicht nur um den Ticketverkauf von Megastars. Ein plötzlicher Traffic-Anstieg kann jeden treffen. Jede Art von Verkauf mit einer „Drop“-Dynamik, eine plötzliche Verknappung einer beliebten Produktlinie oder eine Erwähnung Ihres Produkts durch einen Social-Media-Influencer (ob vorhersehbar oder nicht!) – all das kann einen Traffic-Anstieg auslösen.
In solchen Fällen läuft es meist so ab, dass der Auto-Scaler zwar den Anstieg des Datenverkehrs erkennt – vielleicht stellt er fest, dass die Ladezeiten der Seiten länger werden oder die CPU-Auslastung auf den Servern steigt – und darauf reagiert, indem er weitere Server hochfährt.
Dieser Vorgang erfolgt jedoch nicht sofort. Die Container müssen hochfahren und die Caches müssen erst aufgefüllt werden.
Es ist eigentlich schon ironisch: Sobald die automatische Skalierung einsetzt, beobachten wir in der Regel einen deutlichen Leistungsabfall. Diese Flaute, bis sich die Systeme wieder stabilisieren, dauert bis zu fünf Minuten.
Wenn ein Warteraum eingerichtet wurde, kommt er an dieser Stelle zum Einsatz. Wenn die Leistung so stark nachlässt, dass Endbenutzer andernfalls mit einem Absturz der Anwendung rechnen müssten, dient der Warteraum dazu, die Benutzer für diese wenigen Minuten in Schach zu halten, während sich das System wieder aufwärmt.
Triple-9-Verfügbarkeit
Übrigens: Was sagt Ihr SLA zur Gesamtverfügbarkeit? Denn über einen Monat gesehen fallen diese fünf Minuten, die für die Wiederherstellung der Kapazität benötigt wurden, kaum ins Gewicht – auch wenn sie potenziell großen Schaden anrichten können. Rechnen Sie selbst nach: 5/43920 bedeutet, dass Sie immer noch eine Verfügbarkeit von 99,99 % haben! Aber diese fünf Minuten sind wahrscheinlich die kritischsten des ganzen Monats, was die Benutzererfahrung und Ihren Ruf angeht.
Was können Sie also tun, um Probleme zu vermeiden?
Verkehrsüberlastung eindämmen – 1: Wenn sie vorhersehbar ist
Oft weiß man schon im Voraus, wann ein Traffic-Spitzenwert zu erwarten ist. Vielleicht starten Sie Ihre Verkäufe hochpreisiger Artikel am Freitagmorgen. Vielleicht planen Sie einen Black-Friday-Ausverkauf. Unser Rat lautet daher: Warten Sie nicht, bis der Traffic automatisch skaliert! Planen Sie die Skalierung Ihrer „Magic Cloud“ im Voraus. (So machen es unsere Freunde bei Made Media: Sie wissen, dass viele ihrer Kunden einen Ausverkauf starten werden, und sie wissen, dass dies in der Regel am Freitagmorgen geschieht. Deshalb ist ihre Infrastruktur so eingerichtet, dass sie jeden Freitagmorgen hochskaliert wird.)
Und … Sie haben es erraten: Installieren Sie CrowdHandler. Denn selbst wenn Sie sich mit den Parametern Ihrer Skalierung bestens auskennen und absolut sicher sind, dass Sie das zu erwartende Traffic-Aufkommen genau einschätzen können, bleibt dennoch eine enorme Fehlermarge. Ein „Warteraum“ hingegen hält fast allem stand (und denken Sie daran: Er wird nur dann aktiviert, wenn es tatsächlich notwendig ist).
Wir können auch mit Sicherheit sagen, dass es zu Überraschungen kommt. Oft fragt ein Kunde nach, warum ein Warteraum belegt ist, und teilt uns mit, dass sein CrowdHandler-Dashboard „falsche“ Besucherzahlen oder „Besucherzahlen, die gar nicht vorhanden sind“ anzeigt. Aber die Besucherzahlen sind da – sie sind nur unerwartet. Später stellen sie fest, dass sie von einem Influencer erwähnt wurden, was dazu führte, dass zu einem Zeitpunkt, mit dem sie nicht gerechnet hatten, hohe Besucherzahlen auf ihrer Website verzeichnet wurden. In der Welt des Ticketverkaufs beobachten wir zunehmend, dass Künstler voreilig handeln und im Rahmen einer Tourankündigung einen Link teilen, ohne den sorgfältig ausgearbeiteten PR-Zeitplan zu beachten.
Verkehrsüberlastung abmildern – 2: Wenn sie unvorhersehbar ist
Wenn Sie nicht wissen, wann die Traffic-Spitzen auftreten werden (oder Sie mit unberechenbaren Influencern zusammenarbeiten!), sollten Sie auf jeden Fall CrowdHandler als Allround-Lösung installieren, die ständig läuft.
Noch besser: Verwenden Sie es bei aktiviertem Autotune. In diesem Fall:
- Der Verkehr nimmt zu
- Die Warteschlange wird aktiviert, und die „Autotune“-Funktion von CrowdHandler regelt die Rate.
- Die Cloud mit automatischer Skalierung reagiert auf die erhöhte Auslastung und beginnt mit der Skalierung, was zu einer Verlangsamung der Leistung führt
- Die „Autotune“-Funktion von CrowdHandler erkennt die Verlangsamung, hält einige Nutzer in der Warteschlange zurück und sorgt mit passenden Meldungen für ein positives Nutzererlebnis.
- Die Leistungswerte normalisieren sich wieder, und Autotune erhöht die Rate, um die Warteschlange zügig zu leeren.
Ein abschließendes Wort zur Benutzererfahrung
Hier ist etwas Interessantes: Selbst wenn Ihre „magische“ Cloud mit automatischer Skalierung reibungslos funktionieren würde und Ihr Produkt in weniger als einer Sekunde ausverkauft wäre, hätten Ihre Nutzer dennoch kein optimales Erlebnis (und würden möglicherweise ihren Unmut darüber äußern). Denn wenn etwas sehr schnell geschieht – zum Beispiel, wenn zwischen dem Zeitpunkt, zu dem das Angebot verfügbar wird, und dem Zeitpunkt, an dem es ausverkauft ist, scheinbar überhaupt keine Zeit vergeht –, kann sich das für den Endnutzer sehr unfair anfühlen. Wir haben von Kunden erfahren, dass der CrowdHandler-Prozess und die damit verbundenen Benachrichtigungen die Nutzer bei Laune halten, indem sie ihnen Zeit zum Durchatmen geben und sie auf dem Laufenden halten.
Wenn es also zu Wartezeiten kommt, vertrauen Sie dem Ablauf. Geraten Sie nicht in Panik (nutzen Sie aber die Nachrichtenfelder sinnvoll). Ihre Nutzer werden es viel eher in Kauf nehmen, ein paar Sekunden oder Minuten in der Warteschlange zu warten, als auf eine abgestürzte Website oder eine Seite mit der sofortigen Meldung „ausverkauft“ zu stoßen.