© Excellent backgrounds/Shutterstock.com
Teil 12: Wiederherstellbarkeit von Websystemen

Zurück an den Anfang


Die Recoverability bezeichnet die Wiederherstellbarkeit eines Websystems. Wie man diese automatisiert, um in möglichst kurzer Zeit wieder ein verfügbares System zu erhalten, erfahren Sie in diesem Artikel. Die Geschwindigkeit der Wiederherstellung bestimmt im Wesentlichen die Verfügbarkeit, da ein System nun mal nicht verfügbar ist, solange es wiederhergestellt wird.

Früher unterschied man noch zwischen Erneuerbarkeit und Wiederherstellbarkeit. Beim physischen Versagen von Komponenten war es wichtig, dass Ersatzteile schnell bei der Hand waren. Im eigenen Rechenzentrum sind die Maschinen teuer und werden teilweise individuell gepflegt, um Investitionen zu schützen. In der Cloud ist diese Denkweise ein Anachronismus. Hier ist die Wiederherstellbarkeit identisch mit der Erneuerbarkeit eines Systems, da hier jeweils eine gänzlich neue virtuelle Maschine per API bereitgestellt wird. Um die Hardware muss man sich nicht mehr kümmern. Die Bereitstellung von frischen, neuen virtuellen Maschinen mit wohldefinierter Konfiguration über solche APIs ist die Basis effizienter Wiederherstellbarkeit und damit das Thema dieses Artikels.

takai_recoverability_1.tif_fmt1.jpgAbb. 1: Recoverability im Zusammenhang mit der Widerstandsfähigkeit

Abbildung 1 zeigt das Qualitätsmerkmal im Zusammenspiel mit der Widerstandsfähigkeit (Resiliency), der Sicherheit sowie der Skalierbarkeit. Die Wiederherstellbarkeit ist einer der drei wesentlichen Bausteine, die Widerstandsfähigkeit möglich macht. Da Wiederherstellbarkeit in Cloud-Umgebungen identisch mit der Erneuerbarkeit ist, beeinflusst sie zudem die dynamische Skalierbarkeit eines Systems. In der Cloud können wir genau dann dynamisch skalieren, wenn wir neue virtuelle Maschinen automatisch provisionieren können. Schließlich beeinflusst die Integrität von Daten nach einer Wiederherstellung auch die Sicherheit. Einige Autoren, wie Thomas Limoncelli [1], nennen die erwähnten Konzepte schlicht Operational Requirements, aber nicht im Sinne von Anforderungen, sondern im Sinne von Notwendigkeiten. Tatsächlich ist ohne den konsequenten Einsatz dieser Methoden ein effizienter und qualitativ hochwertiger Betrieb schwierig. Abbildung 2 zeigt die Konzepte rund um die Wiederherstellbarkeit, von denen wir einige in diesem Artikel beschreiben.

takai_recoverability_2.tif_fmt1.jpgAbb. 2: Konzepte der Wiederherstellbarkeit

Services automatisieren

Effiziente Wiederherstellbarkeit kann durch die Abschaffung von Schufterei (Elimination of Toil) und die Einführung von Service Automation gelingen. Die Durchführung von repetitiven, komplizierten Arbeitsabläufen durch Menschen ist fehleranfällig. Ein Vorteil der Automatisierung ist, dass Prozesse jedes Mal gleich ausgeführt werden und deswegen keine Fehler passieren können. Repetitive, komplizierte Arbeitsabläufe sind außerdem für den Menschen unangenehm, da ihm bewusst ist, dass Fehler passieren können. Weil im Betrieb die Auswirkungen von Fehlern groß sein können, verursacht dies Stress, und Stress fördert kein angenehmes Arbeitsklima. Im Umkehrschluss bedeutet dies, dass die Abschaffung von Schufterei im Servicesupport und Engineering [2] sowohl die Qualität erhöht als auch die Arbeit angenehmer macht.

Ein Server, der manuell gepflegt wird, sammelt über Monate und Jahre so genannten Cruft (Müll) an. Cruft sind spezielle Konfigurationen und Softwarepakete, die im Laufe der Zeit individuell eingespielt wurden, beispielsweise für Bugfixes oder Patches. Cruft führt zu Mehraufwänden bei der Administration, da ein solches System schwieriger zu konfigurieren ist und mehr Dokumentation benötigt. Ein Server, der nicht automatisch konfiguriert wird, d. h., dessen Konfiguration nicht in einem Konfigurationsmanagementsystem verwaltet wird, heißt SnowflakeServer [3].

Die Einführung einer vollautomatischen Systemkonfiguration ist aufwendig, komplex sowie riskant und sollte aus diesen Gründen strategisch im Rahmen der Service Strategy [4] geplant werden. Die Prämisse hierfür ist, dass alle durchgeführten Prozesse einen Value Stream darstellen [1], dessen Flow Rate die Effizienz, d. h. die Kosten bestimmen. Die Investition in Automatisierung ist deswegen eine Investition in Effizienz und Qualität und steigert den Erfolg. Wie immer bei komplexen Unterfangen, bietet sich dabei eine Vorgehensweise in Iterationen an, um das Risiko möglichst gering zu halten. Die folgenden Schritte können eine Organisation iterativ an das gewünschte Ergebnis heranführen.

Zu Beginn sollten alle vom Betrieb durchgeführten Prozesse einheitlich dokumentiert werden. Jede Dokumentation sollte bestimmten Qualitätskriterien genügen, damit sie nützlich sein kann: Sie sollte in logische Schritte zerlegt, nachvollziehbar und wiederholbar sein. Es bietet sich zudem an, für jeden Prozess einen Eigentümer festzulegen, der bei Rückfragen zur Verfügung steht. Bietet die Organisation verschiedene Services an (z. B. ein Versionskontrollsystem), so sind die Prozeduren mit den Services in Beziehung zu setzen (z. B. Update des Versionskontrollsystems). Um dies zu erreichen, benötigt man eine Dokumentationsplattform für die Prozeduren und muss sicherstellen, dass auch alle Kollegen damit arbeiten. Schlussendlich möchte man beurteilen können, welche Prozeduren am häufigsten ausgeführt werden, d. h. in welchen am meisten Geschäftswert steckt. Dies kann man beispielsweise durch eine Verknüpfung des Ticketmanagements mit der Prozessdokumentation erreichen...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang