FACHWISSEN · TECHNIK & SICHERHEITINSIGHTS · TECHNOLOGY & SECURITY
Dienstzustand prüfen: Warum „läuft“ nicht dasselbe ist wie „bereit für Anfragen“Checking service health: why running is not the same as ready for requests

Ein Prozess ist gestartet und beantwortet eine einfache Statusabfrage. Trotzdem kann er noch keine fachlichen Anfragen bearbeiten, weil eine Konfiguration fehlt oder benötigte Daten noch geladen werden. Verfügbarkeitssignale sollten diese unterschiedlichen Zustände ausdrücken, statt jedes Problem mit einem Neustart zu beantworten.
Lebenszeichen und Bereitschaft unterscheiden
Eine Lebensprüfung untersucht, ob eine Instanz weiter funktionsfähig ist oder einen vorgesehenen Wiederanlauf benötigt. Eine Bereitschaftsprüfung entscheidet, ob sie gegenwärtig Anfragen übernehmen soll. Ein fehlgeschlagenes Bereitschaftssignal muss deshalb nicht bedeuten, dass der Prozess beendet werden sollte. Wie diese Signale wirken, hängt vom konkreten Betriebssystem und der eingesetzten Orchestrierung ab.
Startphasen ausdrücklich behandeln
Eine Anwendung kann beim Start längere Vorbereitungen benötigen. Werden in dieser Phase dieselben strengen Grenzen wie im Normalbetrieb verwendet, kann ein Neustart immer wieder die Initialisierung abbrechen. Ein eigenes Startkriterium oder eine passend bemessene Anlaufregel trennt diesen Fall vom späteren Betrieb. Eine unbegrenzte Wartezeit wäre allerdings ebenfalls keine nützliche Fehlererkennung.
Abhängigkeiten mit Bedacht prüfen
Fiktives Beispiel: Ein Webdienst ist selbst funktionsfähig, kann aber einen unverzichtbaren Datenservice vorübergehend nicht erreichen. Die Bereitschaft kann in diesem Fall negativ sein, ohne dass ein Neustart des Webdienstes die Ursache beseitigen würde. Ungeeignete Lebensprüfungen könnten sonst viele gesunde Instanzen gleichzeitig neu starten und die Wiederherstellung erschweren.
Die Reaktion gehört zur Abnahme
Vorab wird festgelegt, was bei jedem negativen Signal passiert: Warnung, Herausnahme aus der Verteilung oder kontrollierter Neustart. Die Prüfung selbst sollte ressourcenschonend und ohne fachliche Nebenwirkungen sein. Tests umfassen langsamen Start, ausgefallene Abhängigkeit und tatsächlichen Stillstand. Ein grünes Symbol ist erst dann aussagekräftig, wenn seine genaue Bedeutung und die daran geknüpfte Reaktion bekannt sind.
A process has started and answers a basic status request. It may still be unable to handle business requests because configuration is missing or required data is loading. Health signals should express these different states rather than responding to every problem by restarting the process.
Distinguish liveness from readiness
A liveness check examines whether an instance remains functional or needs an intended restart. A readiness check decides whether it should currently accept requests. A negative readiness signal therefore does not necessarily mean the process should be terminated. The effect of these signals depends on the actual runtime and orchestration mechanism, so the response must be understood explicitly.
Handle startup separately
An application may need extended preparation when starting. Applying the same strict limits as in normal operation can repeatedly interrupt initialisation. A separate startup condition or appropriately sized startup allowance distinguishes this case from steady operation. Waiting indefinitely would not provide useful failure detection either; the expected startup behaviour needs a justified bound.
Check dependencies thoughtfully
In a fictional example, a web service itself works but temporarily cannot reach an essential data service. Readiness may be negative without restarting the web service resolving the cause. An unsuitable liveness check could otherwise restart many healthy instances simultaneously and make recovery harder. Different signals should therefore correspond to different remedial actions.
Include the response in acceptance
Define the response to each negative signal: alerting, removal from request distribution or controlled restart. The check itself should be low-cost and avoid business side effects. Tests cover slow startup, dependency failure and actual lack of progress. A green symbol is meaningful only when its precise interpretation and the resulting operational action are understood.