Zum Inhalt springen

HERMES · Technik im Detail

Ausrollen in Wellen.

Wie HERMES eine Version in Wellen ausrollt, Gesundheitssignale auswertet, bei Abweichung selbsttätig zurücknimmt und Soll und Ist nach GitOps abgleicht.

Eine neue Version erreicht nie alle Orte zugleich. HERMES rollt sie in Wellen aus, liest nach jeder Welle die Gesundheitssignale und nimmt die Version selbsttätig zurück, wenn ein Ort abweicht. Grundlage ist ein Abgleich von Soll und Ist: Was laufen soll, steht versioniert in einem Repository, und jeder Ort holt sich diesen Stand selbst.

Diese Seite beschreibt die Bauweise des Systems. Gebaut sind der Prototyp von Freigabe und Protokoll und der Demonstrator von KALKÜL; den ganzen Stand finden Sie unter Was heute steht.

Auf dieser Seite
  1. 01Soll und Ist nach dem GitOps-Muster
  2. 02Wellen
  3. 03Gesundheitssignale
  4. 04Selbsttätige Rücknahme
  5. 05Verlauf
  6. 06Eckdaten
  7. 07Weiter

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.

Wellen in HERMES: Soll, erste Welle, Signale, weitere Wellen, RücknahmeDas 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.Abweichungvoriger DigestVERSIONALLE ORTESOLLERSTE WELLESIGNALEWEITERE WELLENRÜCKNAHMEDIGESTWELLESIGNALENTSCHEIDUNG
  • 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).
ABLAUF · WEGE OHNE MENGEN

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

Woran sehen Sie heute, dass eine neue Version an einem Ort gesund läuft? Daraus legen wir die Signale fest.