Im Betrieb eines IT-Systems geschehen viele kleine und große Katastrophen. Üblicherweise treten genau diejenigen Katastrophen ein, gegen die man keine Vorkehrungen getroffen hat. Wie kann man sich trotzdem gegen große Ausfälle wappnen?
Ein System kann aus vielen Gründen ausfallen. Manche sind intern, andere extern:
- Hardware kann ausfallen, Festplatten können volllaufen oder Arbeitsspeicher kann belegt sein.
- Von fremden Systemen bereitgestellte Schnittstellen können ausfallen oder sich ohne Vorwarnung anders verhalten als zuvor.
- Denial-of-Service-Attacken können das System lahm legen oder Hacker können es gezielt manipulieren.
Auch wenn es einfach ist, Risiken zu benennen, ist es praktisch unmöglich, gegen alle Eventualitäten konkrete Vorkehrungen zu treffen. Und sei es nur, weil das Budget knapp und der Zeitplan eng ist und defensive Vorkehrungen eine geringe Priorität erhalten. Meistens lassen sich Schutzmaßnahmen erst nach dem ersten großen Ausfall im Betrieb durchsetzen.
Daher ist es wichtig, bei einem Ausfall zumindest schnell und zielsicher handeln zu können. Dazu hilft ein digitaler Notfallplan!
Der digitale Notfallplan
Beim Ausfall eines Systems sind zwei Ziele wichtig:
- Das System muss schnell wieder stabil laufen.
- Für eine nachträgliche Ursachenforschung müssen (Daten-)spuren gesichert werden.
Ein Notfallplan soll helfen, beide Ziele zu erreichen. Er muss dazu präzise beschreiben,
- wie man die Informationen findet, die den Ausfall erklären können (Pfade zu den Log-Dateien, URLs der Monitorsysteme, E-Mail-Konten für System-Mails usw.),
- welche Maßnahmen man ergreifen muss, um wichtige Informationen zu sichern (z.B. um einen aktuellen Datenbank-Dump zu erstellen),
- und wie man ein lauffähiges System wiederherstellt (z.B. Einspielen eines Backups oder Sperren von IP-Adressen von Angreifern).
Vorkehrungen für den Notfall
Als Systemarchitekt konzentriert man sich während der Entwicklung eines Systems meistens auf die interne Struktur der Anwendung. Die wichtigsten Informationen zur Analyse eines Ausfalls findet man jedoch außerhalb, d.h. in der Infrastruktur. Daher benötigt ein Systemarchitekt zumindest ein Basisverständnis davon, in welcher Umgebung die Anwendung läuft und wie dort Firewall, Mail-Daemon, usw. funktionieren.
Aber auch innerhalb einer Anwendung lassen sich mit relativ wenig Aufwand Vorkehrungen treffen, die bei einem Ausfall helfen:
- Eine minimale Überwachung der Abläufe innerhalb der Geschäftslogik gibt Aufschluss über die vor einem Ausfall zuletzt gelaufenen Operationen. Hilfreiche Informationen sind z.B., welche Datensätze zuletzt verändert wurden, ob E-Mails verschickt worden sind oder welche Geschäftsprozesse zuletzt liefen.
- Wenn zunächst nur ein Teil des Systems betroffen ist, können „Notausschalter“ für die wichtigsten System-Komponenten zumindest den Schaden begrenzen. Falls ein Fremdsystem beispielsweise nur noch korrupte Daten liefert, kann es ausreichen, nur die betroffene Schnittstelle abzustellen. Oder man deaktiviert zumindest nur die auf diesen Schnittstellen basierenden Dienste und nicht das System als Ganzes.
Egal, welche Vorkehrungen getroffen worden sind: Wenn die Informationen darüber nicht schnell und einfach abrufbar sind, helfen sie nicht weiter. Gerade in kleineren Projekten bündelt sich häufig viel (Betriebs-)Wissen in wenigen Köpfen. Ohne einen Notfallplan, der allen zugänglich ist, dürfen sonst nie das System und die wichtigen Köpfe gleichzeitig ausfallen.