Ein Kanal ist ein Zeiger mit Regeln
Ein Kanal hat einen Namen, einen Zeiger auf den Digest einer Version und Regeln, unter denen der Zeiger weiterrückt. Üblich ist eine Folge wie Entwicklung, Erprobung, Stabil und Langzeitpflege; die Namen legt die Organisation fest. Welche Version in einem Kanal steht, ist eine Tatsache im Repository und keine Meinung.
Eine Umgebung abonniert einen Kanal. Ihr Soll lautet: Du läufst auf dem Digest, auf den der Kanal zeigt. Rückt der Zeiger, wird daraus ein neues Soll, das in Wellen ausgerollt wird. So bestimmt der Kanal, was läuft, und die Wellen bestimmen, wie es dorthin kommt.
Der Zeiger ändert sich nur durch Beförderung in den Kanal oder durch Rücknahme. Beides ist ein Commit mit Urheber und Zeit, Beförderung dazu mit der Freigabe, die sie erlaubt hat.
Kanal im Schnitt
Unten die Registry mit den Paketen. Darüber zeigt jeder Kanal auf einen Digest, und oben folgt jede Umgebung genau einem Kanal.
- Umgebungen (folgen einem Kanal): Betrieb, Erprobung, Abgeschottet.
- Kanäle (Zeiger mit Regeln): Stabil, Erprobung.
- Digest (eine Version): sha256.
- Registry: Paket.
- über den Kanal: fließt von registry nach umgebungen.
Befördern statt neu bauen
Eine Version wird einmal gebaut und danach befördert. Beförderung heißt, den Zeiger des nächsten Kanals auf denselben Digest zu setzen. Das Paket wird nicht neu gebaut, und darum ist, was erprobt wurde, Bit für Bit das, was später stabil läuft. Ein erneuter Bau würde ein anderes Paket liefern, das niemand erprobt hat.
Für jede Beförderung steht fest, was gelten muss. Die Tests des Kanals sind bestanden, und das Protokoll belegt es. Die Beobachtungszeit im vorigen Kanal ist ohne Abweichung vergangen. Signatur und Herkunft sind gültig, so wie es die Regel der Zulassung verlangt. Je nach Kanal reicht das, oder es braucht dazu eine Freigabe: ein signiertes Ja für genau diese Beförderung.
Rückwärts gibt es keine Beförderung, nur die Rücknahme: Der Zeiger geht auf den früheren Digest zurück, mit denselben Einträgen im Verlauf. Eine Version, die zurückgenommen wurde, rückt erst wieder vor, wenn ein neuer Digest den Fehler behoben hat.
Kanal für Kanal
Eine Version wandert durch die Kanäle, in jedem unter eigenen Bedingungen. Ein Fehler hält sie an; die Rücknahme setzt den Zeiger auf den früheren Digest zurück.
- Ablauf von Digest bis Umgebungen: Entwicklung, Erprobung, Stabil, Langzeitpflege, Rücknahme.
- Entwicklung befördert Erprobung.
- Erprobung befördert Stabil.
- Stabil befördert Langzeitpflege.
- Stabil Abweichung Rücknahme.
- Rücknahme früherer Digest Erprobung (Rückweg).
Welche Umgebung folgt welchem Kanal
Die Zuordnung steht im Repository: Jede Umgebung nennt ihren Kanal. Ein Wechsel des Kanals ist selbst eine Änderung mit Freigabe, und er löst wie jedes neue Soll eine Welle aus. Umgebungen, die dieselbe Aufgabe erfüllen, folgen demselben Kanal, und die Zahl der Kanäle bleibt klein, damit der Überblick bleibt.
Eine Umgebung darf von ihrem Kanal abweichen, aber sichtbar. Sie kann auf einen Digest festgesetzt werden, mit Begründung, Verantwortlichem und Ablaufdatum. Es gibt dann kein stilles Zurückbleiben: Der Abweichungsbericht listet alle Umgebungen, deren Ist vom Soll des Kanals abweicht, mit Grund und Frist, und meldet vor Ablauf.
Umgebungen ohne Verbindung nach außen folgen demselben Kanal. Der Stand des Kanals kommt als Lieferung, die über einen geprüften Datenträger oder eine Datendiode übertragen wird; die Umgebung rückt nach, sobald die Lieferung geprüft ist. Wie das geht, beschreibt die Seite zu abgeschotteten Netzen.
Mehrere Linien nebeneinander pflegen
Organisationen können nicht alle Umgebungen zugleich auf die neueste Hauptversion heben. HERMES führt darum je Hauptversion einen eigenen Kanal. Eine Hauptversion nach dem Schema der semantischen Versionierung (SemVer 2.0.0) darf Schnittstellen brechen, die Nebenversionen erweitern nur. Im Kanal einer älteren Linie rücken nur Korrekturen vor, keine neuen Funktionen.
Eine Sicherheitskorrektur gehört in jede gepflegte Linie. Sie wird einmal geschrieben und in die älteren Kanäle übernommen, je Kanal als eigener, reproduzierbar gebauter Digest. Wie lange eine Linie gepflegt wird, steht als Datum am Kanal. Vor Ablauf erhalten die Umgebungen auf diesem Kanal eine Meldung und den Weg zum nächsten.
Verlauf und Auskunft
Aus Repository und Verlauf lässt sich jederzeit beantworten: Welche Umgebung lief zu einem Zeitpunkt auf welchem Digest, welchem Kanal folgte sie, und wer hat die Beförderung freigegeben? Umgekehrt: In welchen Umgebungen läuft heute noch ein bestimmter Digest, und wie lange noch?
Diese Auskunft wird zu dem Zeitpunkt wichtig, an dem ein Fehler oder eine Schwachstelle bekannt wird. Sie ist dann keine Recherche mehr, sondern eine Abfrage.
Eckdaten
- Kanal
- Name, Zeiger auf einen Digest, Regeln der Beförderung, Ablaufdatum der Pflege
- Umgebung
- folgt genau einem Kanal; Zuordnung im Repository
- Beförderung
- derselbe Digest, kein neuer Bau; Tests, Beobachtungszeit, Signatur und Herkunft, je Kanal eine Freigabe
- Rücknahme
- Zeiger auf den früheren Digest; Eintrag im Verlauf
- Abweichung
- festgesetzter Digest mit Begründung, Verantwortlichem und Ablaufdatum; Abweichungsbericht
- Linien
- ein Kanal je Hauptversion nach SemVer 2.0.0; ältere Linien erhalten nur Korrekturen
- Ohne Verbindung
- Stand des Kanals als geprüfte Lieferung
- Auskunft
- welche Umgebung wann auf welchem Digest lief; wer wo noch auf einem Digest läuft
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 · TechnikWellenWie HERMES eine Version in Wellen ausrollt, Gesundheitssignale auswertet, bei Abweichung selbsttätig zurücknimmt und Soll und Ist nach GitOps abgleicht.
- 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.
- HERMES · TechnikAuflagenWie HERMES die Auflagen einer Version mit den Eigenschaften der Umgebungen abgleicht, bevor ein Soll entsteht, und Ausnahmen befristet und freigegeben führt.
- HERMES · TechnikSchwachstellenWie HERMES aus Stücklisten und Inventar findet, welche Umgebungen eine bekannte Schwachstelle betrifft, nach VEX bewertet und die Korrektur als Paket ausrollt.
- ProduktHERMESLiefert die Plattform in Wellen aus, auch in abgeschottete Netze
Wer entscheidet bei Ihnen heute, welche Version in welcher Umgebung läuft? Das übersetzen wir mit Ihnen in Kanäle und Regeln.