[SL] Stresstests für die Infrastruktur

Gestern habe ich beschrieben, wie die Angst vor Katastrophen Händler daran hindert, Änderungen am Webshop zu machen. Dahinter steht die Absicht, die Eintrittswahrscheinlichkeit des Ausfall-Risikos zu verringern.

Ein Webshop mit seiner Infrastruktur, dem Back-Office und den Services von Drittanbietern bildet ein komplexes System. Bei komplexen Systemen kann man nicht sicher vorhersehen, wie sie auf kleine Anderungen reagieren. Leider kann man sie auch nicht einfach einfrieren – etliche Umstände können Sie auch in der Vorweihnachtszeit dazu zwingen, etwas anzufassen:

Bis zum 25.12. garnichts mehr ändern zu müssen, ist also nicht realistisch. Immerhin: Falls dann bei einem Eingriff doch etwas schiefgehen sollte, kann man sich auf “höhere Gewalt” berufen.

Sehen wir uns also Teil zwei des Risikomanagements an: den Schaden minimieren. Alle Szenarien für einen Ausfall vorherzusehen, ist unmöglich. Daher gilt es Experimente zu machen, statt nur dran zu glauben, dass man ein Problem schnell beheben könnte. Ein klassisches Experiment wäre die Übung für den Ernstfall, etwa: “Wie lange brauchen wir, um einen total ausgefallenen Datenbank-Server wieder aufzustellen?”

Netflix betreibt in der Cloud seine Services für über 100 Millionen Nutzer. Man kam dort 2011 auf eine Idee, die auf den ersten Blick absurd scheint: Kleine Infrastruktur-Katastrophen automatisiert auslösen, um zu sehen, wie das System darauf reagiert. Dazu wurde der “Chaos Monkey” entwickelt - ein Programm, das zufällig ausgewählte Server komplett abschaltet. Die Erwartung ist, dass das System so fehlertolerant ist, dass es die Ausfälle automatisch kompensiert. Falls das mal nicht klappt, weitet sich das Problem natürlich aus und hat irgendwann Auswirkungen auf die Nutzer. Die Netflix-Ingenieure müssen in diesem Fall rechtzeitig und effektiv reagieren, um den Schaden zu begrenzen. Es ist gewissermaßen ein ständig mitlaufender Stresstest für die Infrastruktur, aus dem man kontinuierlich etwas über Ausfall-Szenarien und Lücken in den Reparaturmechanismen lernt.

Der Chaos Monkey ist nur zu normalen Bürozeiten aktiv, damit die Ingenieure ausgeschlafen auf solche Probleme reagieren können. Die Rate, mit der Systeme ausgeschaltet werden, läßt sich variieren; außerdem kann man Bereiche sperren (z.B. Testumgebungen). Wenn ein Subsystem nicht fehlertolerant genug ist, werden seine Entwickler früher oder später dazu Feedback bekommen. Und zwar mit harten Daten aus Experimenten, und zu Szenarien, die kein technischer Reviewer vorausahnen konnte.

Vergegenwärtigen Sie sich bitte den Unterschied in der Herangehensweise: Bei Netflix wird aktiv und automatisiert nach Problemen gesucht. Die regelmäßige Verabreichung von Mini-Katastrophen macht das Gesamt-System widerstandsfähig und verhindert, dass man von großen Katastrophen überrascht wird.

Matthias Berth

Alle Emails