Soll und Ist nach dem GitOps-Muster
Der Sollzustand jedes Orts steht deklarativ in einem Git-Repository: welche Komponenten in welcher Version, angegeben als Digest, mit welcher Konfiguration. Ein Abgleichsprozess am Ort, etwa Argo CD oder Flux auf Kubernetes, vergleicht fortlaufend Soll und Ist und führt das Ist zum Soll. Die Grundsätze beschreibt OpenGitOps: deklarativ, versioniert und unveränderlich, selbst geholt, fortlaufend abgeglichen.
Der Ort holt, statt dass von außen auf ihn geschoben wird. Er braucht darum keinen eingehenden Zugang. Eine Änderung am Ort, die nicht im Repository steht, erkennt der Abgleich als Abweichung und führt sie zurück.
Wellen
Ein Rollout ist eine Folge von Wellen. Die erste umfasst wenige Orte, so gewählt, dass sie die Vielfalt der Umgebungen abbilden; jede weitere ist größer. Eine Welle beginnt erst, wenn die vorige ihre Beobachtungszeit ohne Abweichung beendet hat.
Innerhalb eines Orts läuft dasselbe im Kleinen: Ein Teil der Instanzen bekommt die neue Version zuerst, und der Verkehr wird schrittweise umgelenkt, mit Werkzeugen wie Argo Rollouts oder Flagger. Dieses Vorgehen heißt Canary.
Wellen und ihre Reihenfolge stehen selbst im Repository. Ein Rollout lässt sich damit anhalten, fortsetzen und nachvollziehen wie jede andere Änderung.
Welle für Welle
Das Soll im Repository geht zuerst an wenige Orte. Erst wenn ihre Signale in der Beobachtungszeit gesund bleiben, folgen die weiteren Wellen. Weicht ein Signal ab, zeigt das Soll wieder auf den vorigen Digest.
- Ablauf von Version bis Alle Orte: Soll, Erste Welle, Signale, Weitere Wellen, Rücknahme.
- Signale zu Weitere Wellen.
- Soll zu Erste Welle.
- Erste Welle zu Signale.
- Signale Abweichung Rücknahme.
- Rücknahme voriger Digest Soll (Rückweg).
Gesundheitssignale
Ob eine Welle gesund ist, entscheidet HERMES an Signalen, die vorher festgelegt sind: Fehlerrate, Antwortzeiten in hohen Perzentilen, Neustarts von Containern, Bereitschaftsprüfungen (Readiness Probes) und fachliche Kennzahlen des Orts. Gemessen wird gegen Schwellen und gegen den Stand vor dem Rollout am selben Ort.
Die Signale kommen aus der Überwachung des Orts, etwa als Metriken nach OpenTelemetry oder aus Prometheus. Fehlt ein Signal, gilt die Welle nicht als gesund. Schweigen ist kein Ja.
Selbsttätige Rücknahme
Weicht ein Signal ab, hält HERMES die Welle an und setzt die betroffenen Orte auf die vorige Version zurück. Rücknahme heißt: Das Soll zeigt wieder auf den alten Digest, und der Abgleich führt das Ist dorthin. Weil das alte Paket am Ort bis zum Abschluss des Rollouts nicht aufgeräumt wird, muss für die Rücknahme nichts neu geladen werden; nur das geänderte Soll muss den Ort erreichen. Innerhalb eines Orts bricht die Canary-Analyse auch ohne Verbindung selbst ab.
Was sich nicht einfach zurücksetzen lässt, etwa eine Änderung am Schema einer Datenbank, wird vorher so gebaut, dass alte und neue Version beide damit arbeiten können: erst erweitern, dann umstellen, zuletzt aufräumen. So bleibt jeder Schritt bis zum Aufräumen jederzeit zurücknehmbar; aufgeräumt wird erst, wenn keine Rücknahme mehr nötig ist.
Verlauf
Jede Welle, jedes Signal und jede Rücknahme steht im Verlauf: welcher Digest, welche Orte, welche Werte, welche Entscheidung, auf welcher Regel. So ist jederzeit beantwortbar, welcher Ort welche Version hatte und warum.
Weil das Soll in Git liegt, ist ein Teil des Verlaufs schon die Geschichte des Repositorys: Jeder Schritt eines Rollouts ist ein Commit mit Urheber und Zeit. HERMES ergänzt, was Git nicht weiß, nämlich die gemessenen Signale und die Entscheidung, die aus ihnen folgte.
Eckdaten
- Sollzustand
- deklarativ im Git-Repository, Versionen als Digest
- Abgleich
- Argo CD oder Flux auf Kubernetes; selbst geholt, fortlaufend (OpenGitOps)
- Wellen
- wenige Orte zuerst, nächste Welle nach der Beobachtungszeit ohne Abweichung
- Im Ort
- Canary mit schrittweiser Umlenkung, etwa Argo Rollouts oder Flagger
- Signale
- Fehlerrate, Perzentile der Antwortzeit, Neustarts, Readiness, fachliche Kennzahlen; OpenTelemetry, Prometheus
- Fehlendes Signal
- gilt als nicht gesund
- Rücknahme
- Soll zurück auf den vorigen Digest, ohne neuen Download
- Datenbank
- erweitern, umstellen, aufräumen
Weiter
- HERMES · TechnikPaketeWie HERMES jede Version als OCI-Image mit SHA-256-Digest, Stückliste nach SPDX oder CycloneDX und Signatur baut, reproduzierbar und prüfbar.
- HERMES · TechnikAbgeschottetWie eine Version über geprüfte Datenträger oder eine Datendiode in ein Netz ohne Rückkanal kommt und dort geprüft, gespiegelt und betrieben wird.
- ProduktHERMESLiefert die Plattform in Wellen aus, auch in abgeschottete Netze
Woran sehen Sie heute, dass eine neue Version an einem Ort gesund läuft? Daraus legen wir die Signale fest.