Michael Nygard über Resilient Software Design

„Die normale Betriebsart heißt: teilweiser Ausfall.“

„Die normale Betriebsart heißt: teilweiser Ausfall.“

Michael Nygard über Resilient Software Design

„Die normale Betriebsart heißt: teilweiser Ausfall.“


Java Magazin: Warum ist Resilient Software Design derart wichtig, dass wir einen eigenen Begriff dafür benötigen? Warum nennen wir es nicht einfach „ausfallsicher“ oder „fehlersicher“?

Michael Nygard: Wenn wir über Ausfallsicherheit reden, meinen wir tatsächlich, dass ein System auf sichere Art und Weise ausfällt. Resiliente Systeme hingegen erlangen ihren ursprünglichen Betriebszustand zurück. Das ist ein subtiler Unterschied, aber ein wichtiger. Als ich noch im Bereich Operations unterwegs war, stellten wir die Funktionalität wieder her, indem wir alles neu starteten: erst die Anwendung, und wenn das nicht funktionierte, den Host. Meistens mussten wir auch alles, was von der fehlerhaften Komponente abhängig war, neu starten.

Im Gegensatz dazu würde ein resilientes System versagende Komponenten automatisch abtrennen und sie, sobald sie nicht mehr fehlerhaft sind, wieder integrieren.

Video: Rethink IT

JM: In der Einleitung Ihres Buchs „Release It“ schreiben Sie: „Wir werden uns auf die Scharen an unlogisch handelnden Nutzern vorbereiten, die absurde und unvorhersehbare Dinge tun.“ Geht es bei Resilienz im Grunde darum – sich dem Chaos der realen Welt, weil man es nicht kontrollieren kann, zu stellen? Und diese Denkweise in Softwarearchitekturen zu übersetzen?

Nygard: In jeder Hinsicht. Wenn wir uns das Nutzerverhalten genauer ansehen, ist der Mangel an Kontrolle offensichtlich. Es mangelt uns ebenfalls an Kontrolle über Teile unserer eigenen Infrastruktur. Betriebssysteme stürzen ab, Anwendungen weisen Bugs auf. Lüfter, CPUs, Laufwerke – alles geht mal kaputt.

Als wir es noch mit kleinen Systemen – zwischen einer Handvoll und einigen Dutzend Maschinen – zu tun hatten, konnten wir den Status „zu 100 Prozent betriebsbereit“ als Normalzustand und jede Abweichung davon als Ausnahmezustand betrachten. Mit der Skalierung der Systeme besagen jedoch alleine schon die Gesetze der Wahrscheinlichkeit, dass der Zustand „zu 100 Prozent betriebsbereit“ sehr selten eintritt. Die normale Betriebsart heißt vielmehr: teilweiser Ausfall.

JM: Für welche Branchen und Industriesparten ist Resilient Software Design besonders wichtig?

Nygard: Für resiliente Systeme – zumindest die Art, über die ich schreibe – sind Ausfälle normal und es ist okay, dass sie im Modus „teilweiser Ausfall“ laufen. Deshalb sind sie für lebenswichtige Anwendungen und Echtzeitanwendungen ungeeignet.

Geeignet hingegen sind sie für Branchen, in denen die Nachfrage unkontrolliert und konstant ist und...