Projektphasen


Die erfolgreiche Implementierung eines hochverfügbaren Systems verlagt sorgfätige Planung. Bevor mit den eigentlichen Implementierungsarbeiten begonnen werden kann, muss das System analysiert und bewertet werden. Ein Projekt lässt sich in drei Phasen aufteilen.



Phase 1: Evaluation

Die Evaluationsphase beginnt mit einer Einarbeitung in das bestehende oder geplante System. Basierend auf den Anforderungen des Kunden werden mehrere Strategien vorgeschlagen und diese miteinander vergleichen. Zuverlässigkeit, Overhead und Kosten der einzelnen Lösungen werden gegenübergestellt und bewertet.

Die Ergebnisse der Evaluation werden in einem Bericht zusammengefasst, der die wesentlichen Eigenschaften des Systems im Hinsicht auf seine Zuverlässigkeit auflistet, mögliche Strategien zur Steigerung der Zuverlässigkeit mit ihren spezifischen Vor- und Nachteile beschreibt. Der Bericht erlaubt es dem Kunden, die angemessene Lösungsstrategie zu wählen.



Phase 2: Analyse

Auf die Entscheidung, welche Lösung eingesetzt werden soll um die Zuverlässigkeit des Systems zu steigern, folgt eine detaillierte Analyse des gesamten Systems. Die Analyse definiert die unterschiedlichen Fehlermodi und die Bedingungen, unter welchen das System seine Arbeit uneingeschränkt fortsetzen können muss (z.B. das System muss in der Lage sein, den Ausfall von bis zu N Komponenten zu tolerieren). Die Analyse beschreibt, wie die Lösung implementiert werden kann. Dazu zählen eine genaue Beschreibung der zu benutzenden Algorithmen sowie aller Schnittstellen zum Rest des Systems. Für den Fall, dass die benötigten Schnittstellen auf der Seite des Systems noch nicht existieren, werden diese definiert und es wird beschrieben, wie sie in das System integriert werden können.

Die Auswirkungen der gewählten Hochverfügbarkeitslösung auf das System werden untersucht. Alle Nebenwirkungen werden beschrieben und bewertet. In Zusammenarbeit mit dem Kunden werden alle kritischen Punkte ausgeräumt.

Eine 100%-ige Ausfallsicherheit existiert nicht. Jedes System kann unter gewissen Umständen ausfallen. Die Analyse beschreibt, unter welchen Umständen die gewählte Lösung das System nicht mehr ausreichend schützen kann und bestimmt die Wahrscheinlichkeit, mit der dieser Fall eintreten kann. Das System sollte so implementiert werden, dass es im Falle eines Gesamtausfalls nicht zur Beschädigung von wichtigen Daten kommt.

Zusätzlich zur Analyse und der genauen Beschreibung des Lösungsdesigns wird eine vorläufige Projektplanung für die Implementierung der Lösung erstellt.



Phase 3: Implementierung

Sobald ein detailliertes Design der Lösung vorliegt, werde ich zusammen mit dem Kunden an der Implementation der Lösung arbeiten. Mein Beitrag kann sich auf die Projektleitung, die Verifikation des Designs und das Implementieren von kritischen Modulen erstrecken.

Für den Fall, dass ein Projekt keinen Fortschritt macht aufgrund technischer Schwierigkeiten, kann eine Verifikation des verwendeten Designs helfen, Stolpersteine zu finden, die nicht oder nur unzureichend berücksichtigt worden sind. Die Unterschätzung der technischen Herausforderungen kann eine erfolgreiche Implementation der Lösung verhindern. In beiden Fällen können Änderungen am ursprünglichen Konzept oder Design notwendig werden.

Die gewählte Lösungen müssen sorgfältig getestet werden um sicherzustellen, dass sie das System im Ernstfall erfolgreich vor Ausfällen schützen können. Der Testbarkeit der Lösung muss von Anfang an Beachtung geschenkt werden. Selbsttests und Fehlerinjektion müssen in die Lösung integriert werden.

Das Verhalten des Systems außerhalb der Spezifikationen muss analysiert werden. Dies sollte so früh wie möglich geschehen, um unkontrollierte Reaktionen oder irreparablem Datenverlust vorzubeugen. Ist der potentielle Schaden zu groß, muss das System mit einer Notfallabschaltung ausgestattet werden, die das System herunter fährt ohne wichtige Daten zu zerstören.