Definition „Selbstheilendes System“ Self-Healing Code für IT-Systeme

Von HJL Lesedauer: 3 min

Self-Healing ist jene Eigenschaft, die es einem System ermöglicht, zu erkennen, dass es nicht richtig funktioniert. Ohne (oder mit) menschlichem Eingreifen nimmt es notwendige Anpassungen vor, um sich selbst wieder in den Normalzustand zu versetzen.

Selbstheilung ist nicht nur im Tierreich interessant, auch in System-Entwicklung stößt der Lösungsansatz des Self-Healing auf reges Interesse.
Selbstheilung ist nicht nur im Tierreich interessant, auch in System-Entwicklung stößt der Lösungsansatz des Self-Healing auf reges Interesse.

Zielgruppe für Self-Healing Applikationen

Selbst Systeme mit perfekter Architektur und sorgfältigster Auswahl der eingesetzten Werkzeuge und Entwicklungsmethoden laufen Gefahr, während der Nutzung auszufallen. Für Unternehmen mit Produktionsumgebung gehen Systemausfälle mit eingeschränkter Produktivität und der Gefahr von Datenverlusten einher. Auch die Wiederherstellung von Produktionsbedingungen nach Systemausfällen kostet Zeit und Geld.

Verständlicherweise stößt der Lösungsansatz des Self-Healing auf reges Interesse. Als eine Art Zauberformel steht der Begriff bei IT-Kunden für die Schaffung selbstheilender Systemanwendungen. Aus der Sicht von Programmieren und Programmierern in der Softwareentwicklung liegt die Lösung des Problems in der Entwicklung fehlertoleranter und selbstheilender Anwendungen.

Die noch junge Technik der Self-Healing Systeme ist deshalb so ausgerichtet, dass die zu schaffende Applikation im laufenden Systembetrieb Fehler erkennt und ohne Zutun des Entwicklers Maßnahmen zur Wiederherstellung der Funktionalität ergreift.

Im Umkehrschluss bedeutet die Programmierung von selbstheilender Software einen umsichtigen Lösungsansatz. Im Hinterkopf des Programmierers entsteht der Programm-Code bereits mit eingebauten Lösungskonzepten für möglicherweise zu erwartende Fehler. Der Idealzustand wäre demzufolge ein stets verfügbares, in allen Ablaufprozessen erfolgreiches System.

Durch entsprechende Programmierung wird es ertüchtigt, Fehler in den bereit gestellten Funktionsabläufen zu erkennen, zu diagnostizieren und zu reparieren. In der realen Programmierpraxis besteht die Kunst darin, entsprechende Testbedingungen zu schaffen, die den realen Produktionsbedingungen und Abläufen in Kundenbetrieben so nahe wie möglich kommen.

Risikobewertung durch Fehlerbaum-Analyse

Ein probates Mittel für die Untersuchung von Fehlerursachen auf System-Ebene ist die Fehlerbaum-Analyse (FBA). Dieses grafische Werkzeug wird im Rahmen der Programmierung für die Risiko-Bewertung bei der Ausbreitung von Fehlern eingesetzt. Ein grafisch dargestellter Fehlerbaum beschreibt Ereignisse und Gates. Ein Ereignis bezeichnet einen Vorfall oder Ausfall in einem System. Gates zeigen auf, wie sich System-Ausfälle im System und seinen Teilsystemen ausbreiten. Zu den klassischen Gates in einem grafisch dargestellten Fehlerbaum zählen "Und" und "Oder".

Reaktiv versus Präventiv: Zwei Arten des Self-Healing

Unter Self-Healing versteht man die Fähigkeit von Systemen, Anwendungen oder Systemumgebungen, auftretende Probleme automatisch zu erkennen und sodann zu beheben. Grundsätzlich lassen sich zwei Arten der automatischen Heilung unterscheiden:

Das reaktive Self-Healing

Die reaktive Selbstheilung erfolgt als direkte Reaktion auf einen Fehlerzustand. Als wichtiges Kriterium reaktiver Systeme gilt die Resilienz: Die Anwendung bleibt im Falle eines auftretenden Fehlers reaktionsfähig. Die Selbstheilung greift, indem programmiert festgelegte Maßnahmen automatisch angestoßen werden, um in einen geregelten Ablauf zurück zu finden.

Präventives Healing

Hierbei setzt der Developer auf die Überwachung von Trends. Auf der Grundlage der ermittelten Trends lässt sich die Anwendung oder das System beeinflussen. Ein typisches Beispiel ist die Dimensionierung zugeordneter Speicher oder CPU-Kapazitäten.

Beide Arten der automatischen Selbstheilung haben eigenständige Wirkungsmechanismen. Speziell in der Anfangsphase hat es sich als einfacher erwiesen, die reaktive Selbstheilung für die Anwendungsebene einzuführen. Es ist schließlich in der Regel einfacher, einen Fehlerzustand oder kompletten Ausfall zu erkennen als einen Trend zu diagnostizieren.

Self-Healing: Die Rolle des Menschen

Ein hohes Maß an Automatisierung bei zunehmender Bedeutung der künstlichen Intelligenz (KI) schafft Ängste. Die Implementierung von Self-Healing Routinen lässt sich unter verschiedenen Aspekten betrachten. Aus der Perspektive der Software-Unternehmen ist die Schaffung entsprechender Testumgebungen ein wesentlicher Kostenfaktor.

Software-Entwicklerinnen und -Entwickler sehen die durch Self-Healing Systeme zu erzielenden Rationalisierungseffekte mit einer gewissen Sorge um Arbeitsplätze. Für Kunden und Nutzer aus Industrie und Fertigung zählen vor allem die positiven Aspekte: Minimierung der Ausfallzeiten; Stabilisierung der Produktionsabläufe; Einsparungen bei der System-Wartung.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:49322472)