Zurück zum Blog Self-hosting

Wird Ihre Docker-Anwendung sicher heruntergefahren? Eine Checkliste für ein sauberes Beenden

Ein erfolgreicher Neustart zeigt nicht, was mit laufenden Anfragen oder Aufgaben geschehen ist. Diese Checkliste hilft Ihnen, die richtigen Fragen zur konkreten Anwendung und Bereitstellung zu klären und Wartungsabläufe kontrolliert zu testen.

Checkliste zum Testen des sauberen Herunterfahrens einer Docker-Anwendung

Ein Neustart beantwortet nicht alle Fragen zum Herunterfahren

Ein erfolgreicher Neustart zeigt, dass eine Anwendung wieder gestartet wurde. Er sagt für sich genommen nicht, was mit einer gerade laufenden Anfrage, einer Hintergrundaufgabe oder einer Änderung an Daten geschehen ist.

Das Verhalten beim Anhalten und Ersetzen eines Containers hängt von der konkreten Anwendung und Bereitstellung ab. Nutzen Sie deshalb deren Dokumentation und prüfen Sie wichtige Abläufe in einem geeigneten Test. Die offizielle Docker-Dokumentation finden Sie unter https://docs.docker.com/; für anwendungsspezifisches Verhalten sind die Dokumentation der jeweiligen Anwendung und des Images maßgeblich.

  • Listen Sie Vorgänge auf, deren Unterbrechung kostspielig oder verwirrend wäre.
  • Legen Sie fest, welche Ergebnisse Sie nach einem Test prüfen müssen.
Ein Neustart beantwortet nicht alle Fragen zum Herunterfahren

Klären Sie das anwendungsspezifische Verfahren zum Anhalten

Prüfen Sie in der offiziellen Dokumentation der Anwendung und des verwendeten Images, wie die konkrete Version beendet werden soll und welche Voraussetzungen dafür genannt werden. Übertragen Sie keine Annahmen von einer anderen Anwendung oder Bereitstellung.

Vergleichen Sie die Dokumentation mit Ihrer tatsächlichen Konfiguration. Wenn unklar ist, wie der Prozess beendet wird oder welche Zeit dafür vorgesehen ist, klären Sie das mit dem Anwendungsbetreuer oder Hosting-Anbieter, bevor Sie sich auf einen Wartungsablauf verlassen.

  • Notieren Sie Anwendung, Image-Version und relevante Bereitstellungskonfiguration.
  • Halten Sie das dokumentierte Verfahren zum Anhalten und dessen Geltungsbereich fest.
  • Ermitteln Sie, ob für den geplanten Vorgang ein Beendigungssignal oder Zeitlimit konfiguriert ist; übernehmen Sie keine ungeprüften Standardwerte.
  • Prüfen Sie, ob Worker, Scheduler, Datenbanken oder andere Dienste eigene Anweisungen haben.
Klären Sie das anwendungsspezifische Verfahren zum Anhalten

Wählen Sie wichtige Anfragen und Aufgaben für den Test

Wählen Sie Abläufe aus, die für Ihr Team wichtig sind, etwa das Speichern eines Datensatzes, das Absenden eines Formulars oder das Hochladen einer Datei. Ein bloßer Seitenaufruf zeigt nicht, was mit einem Vorgang geschieht, der Daten verändert.

Berücksichtigen Sie wichtige Hintergrundaufgaben, sofern sie zu Ihrem Anwendungsfall gehören, etwa geplante Verarbeitung, Importe, Exporte oder KI-Aufgaben. Wie die konkrete Anwendung solche Arbeiten behandelt, sollten Sie anhand ihrer Dokumentation oder eines sicheren Tests feststellen.

  • Notieren Sie für jeden Ablauf das erwartete Ergebnis und wo Sie es überprüfen können.
  • Klären Sie, ob ein erneuter Versuch vorgesehen ist und ob er doppelte Auswirkungen haben könnte.
  • Legen Sie fest, welche Vorgänge vor der Wartung abgeschlossen oder pausiert und welche danach geprüft werden sollen.

Prüfen Sie Zeitlimits anhand Ihrer Konfiguration und Tests

Ein konfiguriertes Zeitlimit ist nur ein Teil des Wartungsablaufs. Welcher Wert gilt und was bei seiner Überschreitung geschieht, muss für die konkrete Anwendung und Bereitstellung geprüft werden. Die verfügbaren Angaben begründen keinen allgemeingültigen sicheren Wert.

Vergleichen Sie die tatsächliche Konfiguration mit dem Verhalten, das Sie bei einem repräsentativen Test beobachten. Eine längere Frist allein belegt nicht, dass die Anwendung laufende Arbeit wie gewünscht behandelt.

  • Ermitteln Sie, ob für das Anhalten oder Ersetzen ein Zeitlimit konfiguriert ist.
  • Notieren Sie die im Test beobachtete Dauer und vergleichen Sie sie mit der Konfiguration.
  • Klären Sie anhand der Dokumentation, was geschieht, wenn die Anwendung nicht innerhalb der vorgesehenen Zeit beendet wird.

Testen Sie das geplante Anhalten und Ersetzen sicher

Führen Sie Tests nach Möglichkeit in einer Nicht-Produktionsumgebung mit realistischen, aber entbehrlichen Daten durch. Vermeiden Sie Vorgänge, deren Unterbrechung Kunden schaden oder unumkehrbare externe Auswirkungen haben könnte.

Verfolgen Sie ausgewählte Anfragen und Aufgaben vom Start bis zum Ergebnis. Führen Sie das Anhalten und Ersetzen mit dem geplanten Wartungsverfahren durch und prüfen Sie danach die verfügbaren Anwendungs- und Datenstatus. Ein erfolgreicher Start nach dem Ersetzen ist nur ein Teil der Beobachtungen.

  • Testen Sie mindestens eine wichtige Anfrage, die Daten verändert, sowie gegebenenfalls eine relevante Hintergrundaufgabe.
  • Prüfen Sie nach dem Test das Ergebnis für Nutzer, den Anwendungsstatus und gespeicherte Daten, soweit diese Informationen verfügbar sind.
  • Klären Sie, ob ein unterbrochener Vorgang abgeschlossen wurde, fehlgeschlagen ist oder gefahrlos wiederholt werden kann.
  • Testen Sie auch länger laufende Vorgänge, wenn sie zu Ihrem normalen Betrieb gehören.
  • Übertragen Sie ein Ergebnis aus Staging nicht ungeprüft auf eine andere Version oder wesentlich abweichende Konfiguration.

Halten Sie Wartungsschritte und Zuständigkeiten fest

Machen Sie aus Ihren Erkenntnissen eine kurze Wartungsanleitung: Was ist vor dem Anhalten zu prüfen, wie gehen Sie mit laufenden Aufgaben um, was kontrollieren Sie danach und wer gibt den Dienst wieder frei? Benennen Sie unklare oder manuell zu behandelnde Abläufe ausdrücklich.

Backups sind eine zusätzliche Schutzmaßnahme, aber kein Nachweis dafür, wie ein bestimmter unterbrochener Vorgang behandelt wurde. Klären Sie, welche Daten abgedeckt sind, wie oft Backups erstellt werden und wie sich die Wiederherstellung prüfen lässt.

  • Dokumentieren Sie die für Ihre Anwendung relevanten Anweisungen und Einstellungen.
  • Informieren Sie Benutzer gegebenenfalls über geplante Unterbrechungen und nennen Sie einen Weg, unklare Vorgänge zu melden.
  • Legen Sie eine Checkliste für die Prüfung nach der Wartung und eine Kontaktperson für Eskalationen fest.
  • Überarbeiten Sie das Verfahren nach Änderungen an Anwendung, Image oder Bereitstellung.
  • Klären Sie bei verwaltetem Hosting, welche Aufgaben der Anbieter übernimmt und welche Entscheidungen zu Daten, Zugriff und Wiederherstellung bei Ihnen bleiben.

Was verwaltetes Hosting ändert – und was nicht

Airbip bietet den verwalteten Betrieb von Anwendungen aus den Bereichen Business, Publishing, Analyse, Zusammenarbeit und KI. Die Anwendungsinstanzen laufen als Docker-Workloads auf Airbip-Cloudservern. Zum Angebot gehören die Verwaltung des Dienstlebenszyklus sowie konfigurierbare tägliche, wöchentliche und monatliche Backups.

Diese Infrastrukturleistungen belegen nicht, wie eine bestimmte Anwendung mit einer unterbrochenen Anfrage oder Aufgabe umgeht. Prüfen Sie anwendungsspezifische Informationen und klären Sie den Umfang der Backups sowie die Zuständigkeiten für die Wiederherstellung in Ihrem Betriebskonzept.

  • Bewerten Sie das Verhalten der konkreten Anwendung anhand ihrer Dokumentation und geeigneter Tests.
  • Klären Sie die Grenzen des verwalteten Betriebs und Ihre Zuständigkeiten, bevor Sie sich auf einen Wartungsablauf verlassen.
  • Wählen Sie ein Bereitstellungsmodell, das zu Ihrem Bedarf an Kontrolle, betrieblicher Unterstützung und Wiederherstellungsplanung passt.

Häufige Fragen

Beweist ein erfolgreicher Neustart, dass das Herunterfahren sicher war?

Nein. Er belegt nicht, was während des Anhaltens mit einer bestimmten Anfrage oder Hintergrundaufgabe geschehen ist. Prüfen Sie die Ergebnisse der für Ihre Anwendung wichtigen Abläufe.

Welches Beendigungssignal oder Zeitlimit gilt für meine Anwendung?

Das lässt sich nicht allgemein beantworten. Prüfen Sie die Dokumentation der konkreten Anwendung und des Images sowie die tatsächliche Bereitstellungskonfiguration. Übernehmen Sie keine ungeprüften Standardwerte.

Machen Backups unterbrochene Arbeit sicher?

Nicht unbedingt. Backups dienen der Wiederherstellung und belegen nicht, wie eine bestimmte Anfrage oder Aufgabe behandelt wurde. Klären Sie den Sicherungsumfang und prüfen Sie den Wiederherstellungsprozess separat.

Quellen und weiterführende Literatur

  1. Docker documentation — Docker
  2. Traefik documentation — Traefik Labs
  3. Let’s Encrypt documentation — Internet Security Research Group