Resilienz
Ein Rückblick und ein Ausblick
von SEQIS
Am 26. Juni 1991 waren große Teile von Washington DC, Maryland und West Virginia durch einen massiven Ausfall des öffentlichen Telefonsystems betroffen. Zwölf Millionen Amerikaner konnten keine Spitäler erreichen oder sich im Kindergarten nach ihren Kindern erkundigen. Schon damals hat man bei einer Pressekonferenz darauf hingewiesen, dass durch die immer raffinierter werdenden IT-Systeme und immer mehr voneinander abhängigen Netzwerksystemen die Wahrscheinlichkeit für Totalausfälle steigt. Es war ein Weckruf für ein Land, dessen zentrale Infrastruktur massiv von diesen Systemen abhängig war. Netzwerke und IT-Systeme wurden immer größer und ein Ausfall hatte immer größere Auswirkungen.
Ein einfacher, kleiner Bug im Code verursachte diesen massiven Ausfall im Jahr 1991. Denken wir an Computersysteme und IT Infrastruktur in der heutigen Zeit, möchte man sich gar nicht ausmalen, welch verheerende Wirkung ein kleiner Bug, eine winzige Abweichung auf unser alltägliches Leben hätte. Die Konsequenzen sind jedenfalls höher denn je.
Was ist Resilienz und woher kommt die Idee?
Resilienz bezeichnet die Fähigkeit von Systemen, bei Störungen oder Ausfällen nicht vollständig zu versagen, sondern die Dienstleistung aufrechtzuerhalten. Es ist also die Fähigkeit eines Systems, trotz massiver externer oder interner Störungen den Status Quo beizubehalten - also zu funktionieren. Resilienz ist im Bereich des Betriebskontinuitätsmanagements angesiedelt und dadurch auch ganz eng verwoben mit dem Risikomanagement, der IT-Notfallplanung und der Informationssicherheit.
Die Idee ist militärischen Ursprungs, welcher in der chinesischen Literatur belegt wird. Um 500 vor Christus sprach Sun Tzu schon über die fortdauernde Planung, Umsetzung und den erfolgreichen Abschluss eigener Pläne trotz Feindeinwirkung. Militärtheoretiker wie Clausewitz (1780 bis 1831) führten die Idee weiter und mit der industriellen Revolution wurde die Vorgehensweise auf das betriebliche Geschehen übertragen. Die Idee ist also keinesfalls neu. Die klügsten Köpfe der Kriegsführung haben früh erkannt, dass Resilienz für Erfolg unabdingbar ist.
Wie komme ich nun zu Resilienz im Betrieb?
Sie müssen außerdem herausfinden, welche Prozesse in solchen Situationen unbedingt aufrechterhalten werden müssen und welche Use-Cases Ihrer Anwendung unter keinen Umständen fehlerhaft oder ohne Funktion sein dürfen. In einer Bankenapplikation wäre dies zum Beispiel der Zahlungsverkehr und ggf. die Synchronisation mit dem Mainframe, damit kein Cent verloren geht und keine Buchung doppelt durchgeführt wird. Bei selbstfahrenden Autos muss die Spur und Geschwindigkeit trotz Absturz der Computersysteme beibehalten werden und sämtliche Berechnungen zur Kollisionsverhinderung dürfen auch nicht fehlen. Ergänzend müsste sinnvollerweise auch das Fahrzeug gestoppt werden.
Sind die initialen Analysen abgeschlossen, gilt es, am wichtigsten Gut Ihres Unternehmens zu arbeiten: Ihren Mitarbeitern und deren Mindset. Der wichtigste Faktor für Resilienz in Ihrem Unternehmen ist eine Unternehmenskultur, in der Mitarbeiter schnell auf Veränderungen und Ausfälle reagieren können und wirklich verstehen wie sämtliche Systeme zusammenarbeiten und funktionieren. Der beste Weg diese Kultur aufzubauen ist kontinuierliches Training und eine Veränderung im Mindset. Statt darauf zu pochen, Ausfälle und Fehler zu verhindern und jeden Ausfall als Misserfolg zu werten müssen wir sie als wertvolle Übung und Lehre ansehen. Ja, Ausfälle passieren. Es ist keine Frage ob, sondern wann der nächste Systemausfall eintritt. Dies gilt es zu akzeptieren. Durch jeden Systemausfall lernt man wichtige Lektionen für den weiteren Betrieb und ist nach entsprechender Optimierung besser auf den nächsten Ausfall vorbereitet.
Wie also nun auf den Ernstfall vorbereiten? Wie trainiere ich meine Mitarbeiter? Ganz einfach: Zerstören Sie Ihr System regelmäßig. Klingt verrückt - ist aber effektiv. Und der Proof of Concept? Alle großen IT Unternehmen. Google nutzt “DiRT” (Disaster Recovery Testing) – dabei werden eine Woche lang alle Katastrophenszenarien verprobt. Netflix nutzt “Chaos Monkey”, ein Tool, welches zufällig Instanzen auf Amazon Web Services (AWS) im laufenden Betrieb herunterfährt oder crashed. Und Amazon selbst dürfte eine der ersten Firmen gewesen sein, die dieses Konzept mit “Game Day” umgesetzt hat. “Game Day” zerstört empfindliche Komponenten der Systemlandschaft. Alle diese Programme haben ein Ziel: Durch Erleben und Erfahren des worst-case Szenarios, das System und dessen Verhalten kennenzulernen, zukünftig auf den Ernstfall vorbereitet zu sein und zu wissen, wie man am besten und schnellsten die notwendige Stabilität wiederherstellen kann
Software unterstützend nutzen
Neben Ihren Mitarbeitern und dem Mindset müssen Sie gegebenenfalls auch Ihren Technology Stack auf Vordermann bringen. Sie können sowohl die Reaktionszeit Ihrer Mitarbeiter als auch die Möglichkeiten einen Katastrophenfall zu erkennen durch speziell dafür entwickelte Software wesentlich verbessern. Musste Ihr Betrieb früher noch mühsam Log-Files nach einer Exception durchforsten, kann dies per Software mittlerweile automatisch analysiert werden und durch entsprechend eingerichtetes Alerting Ihre Mitarbeiter über Fehlverhalten in Kenntnis setzen. Mit der richtigen Visualisierungssoftware haben Ihre Mitarbeiter sämtliche KPIs wie Responsetimes, Requestcount und HTTP Status Codes ständig im Blick, können eine Veränderung zeitnah erkennen und mit den richtigen Maßnahmen reagieren.
Spinnen wir den Gedanken der Softwareunterstützung noch weiter kann man sich sogar vorstellen den Prozess der Wiederherstellung zu automatisieren. Mit der richtig trainierten künstlichen Intelligenz werden Gegenmaßnahmen automatisch eingeleitet und in einer virtualisierten Umgebung mehr Ressourcen zur Verfügung gestellt. Die Alerts erreichen Ihre Mitarbeiter nur noch, wenn die automatischen Gegenmaßnahmen nicht greifen und Ihren Mitarbeitern bleibt mehr Zeit für das Daily Business. Denke ich noch weiter in die Zukunft sehe ich KI, welche in der Lage ist, Katastrophen-fälle präzise vorauszusagen und noch bevor ein solcher Fall eintreten könnte automatisch präventive Maßnahmen dagegen zu ergreifen und umzusetzen. Ja, sogar die Dokumentation könnte automatisch erfolgen und Ihre Mitarbeiter erhalten nur noch eine Zusammenfassung per Mail. Prediction durch KI wird allerdings nicht ohne massiven Entwicklungsaufwand umsetzbar sein und ist aus heutiger Sicht noch Zukunftsmusik.
Blech einplanen und für sich nutzen
Neben den Softwarelösungen zur Unterstützung des Monitorings und Ihres DevOps Teams können Sie Ihre Infrastruktur schon in der Planung auf Resilienz auslegen. Beispiele hierfür wären ein verteiltes System, welches neben der besseren Skalierbarkeit auch eine erhöhte Ausfallsicherheit bietet. Die Last, welche vom System bewältigt werden muss, kann durch verteilte Systeme im Regelfall auch besser weggesteckt und über mehrere Prozessoren und Rechner verteilt werden.
Natürlich stellen auch komplett redundant ausgelegte Infrastrukturen eine valide Option dar, sofern die Kosten-Nutzen-Rechnung dafür spricht. Ein Zwei- oder gar Drei - Standorte Konzept kann Ihr System vor vielen Katastrophenfällen schützen. Fällt auf Standort 1 zum Beispiel der Strom aus, stemmen Standort 2 & 3 die Last problemlos weiter und halten Ihr System am Leben. Eine defakto nicht vorhandene “Mean time to recovery” (MTTR) - das ist die mittlere Reparaturzeit nach einem Ausfall eines Systems - ist der Lohn. Wenn die Software und Infrastruktur perfekt zusammenspielen ist ein Wechsel des ausführenden Standorts ohne User-Impact machbar und man kommt der Vision eines zu 100% verfügbaren Systems einen großen Schritt näher. Durch die erhöhte Komplexität können allerdings mehr Fehlerquellen eingeführt werden und die Anzahl der Ausfälle kurzfristig steigen.
Fazit
Egal in welchem Bereich - Resilienz spielt eine riesen Rolle. Ausfallsicherheit ist in der heutigen Zeit das A und O in jeder Branche und in jedem Unternehmen, unabhängig davon ob ich nun technische oder soziale Resilienz erreichen möchte, muss ich zuerst am Mindset meiner Mitarbeiter und der Unternehmenskultur arbeiten. Ungeachtet der Größe Ihres Unternehmens ist, wenn Sie noch nicht über Resilienz, Ausfallsicherheit oder Betriebskontinuitätsmanagement nachgedacht haben, jetzt der beste Zeitpunkt dafür. Denn Sie suchen sich den Zeitpunkt des nächsten Katastrophenfalles nicht aus, der Zeitpunkt wird Sie erwählen. Sie können lediglich darauf vorbereitet sein