Release-Management
Das Release-Management verfolgt Deployments als erstklassige Objekte in Ihrem Architektur-Workspace. Jedes Release ist mit einem C4-Element verknüpft und gibt Ihren Diagrammen eine Live-Ansicht dessen, was tatsächlich läuft.
Grundkonzepte
Releases
Ein Release repräsentiert eine bestimmte Version, die in einer Umgebung deployed wurde. Jedes Release hat:
| Feld | Beschreibung |
|---|---|
| Version | Semver-Tag oder Identifier (z.B. v2.4.0, 3.12.0-rc.2) |
| Status | Aktueller Zustand im Deployment-Lebenszyklus |
| Umgebung | Zielumgebung (Production, Staging, etc.) |
| Changelog | Was sich in diesem Release geändert hat |
| Quelle | Wie das Release erstellt wurde (manuell, API, GitHub Action, Webhook) |
| Verknüpftes Element | Das System oder der Container, zu dem dieses Release gehört |
Umgebungen
Umgebungen repräsentieren Deployment-Ziele. Sie sind benutzerdefiniert und farbcodiert.
Gängige Konfigurationen:
- Development → Staging → Production
- Dev → QA → Pre-prod → Production
Erstellen Sie so viele Umgebungen, wie Ihr Workflow erfordert. Jedes Release wird mit seiner Zielumgebung getaggt.
Status-Lebenszyklus
Releases durchlaufen diese Status:
| Status | Beschreibung |
|---|---|
| Planned | Das Release existiert, wurde aber noch nicht deployed. Nützlich zur Verfolgung kommender Versionen. |
| In Progress | Das Deployment läuft. Wird automatisch von CI/CD-Integrationen gesetzt. |
| Deployed | Das Release ist live in seiner Zielumgebung. |
| Failed | Das Deployment war nicht erfolgreich. Der Eintrag bleibt als Aufzeichnung dessen, was versucht wurde. |
| Rolled Back | Das Release wurde deployed, aber anschließend zurückgerollt. |
Release-Tracking Einrichten
1. Umgebungen Erstellen
- Gehen Sie zu den Einstellungen Ihres Projekts
- Öffnen Sie den Tab Releases
- Unter Umgebungen, klicken Sie auf Umgebung Hinzufügen
- Geben Sie einen Namen ein und wählen Sie eine Farbe
- Ziehen Sie zum Neuordnen der Umgebungen nach Deployment-Stufe
2. Ein Standard-Verknüpfungsziel Konfigurieren
Legen Sie das System und optional einen Container fest, an den Releases standardmäßig angehängt werden:
- Finden Sie im Releases-Tab der Einstellungen Standard-Verknüpfungsziel
- Wählen Sie ein System aus dem Dropdown
- Wählen Sie optional einen Container innerhalb dieses Systems
- Dieses Ziel wird verwendet, wenn eingespeiste Releases kein Element angeben
3. Eine Integrationsmethode Wählen
Archyl unterstützt drei Wege zur automatischen Release-Ingestion.
Integrationsmethoden
GitHub Actions
Fügen Sie die offizielle Archyl GitHub Action zu Ihrem Deployment-Workflow hinzu.
Minimale Konfiguration:
- uses: archyl/release-action@v1
with:
api-key: ${{ secrets.ARCHYL_API_KEY }}
version: ${{ github.ref_name }}
Vollständige Konfiguration:
- uses: archyl/release-action@v1
with:
api-key: ${{ secrets.ARCHYL_API_KEY }}
version: ${{ github.ref_name }}
environment: production
system-id: <your-system-uuid>
container-id: <your-container-uuid>
changelog: "Bugfixes und Performance-Verbesserungen"
status: deployed
Die Action sendet Version, Commit-SHA, Umgebung und Changelog bei jedem erfolgreichen Deploy an Archyl.
Webhooks
Konfigurieren Sie Webhook-Ingestion, um Release-Events von GitHub oder GitLab zu empfangen.
- Aktivieren Sie im Releases-Tab der Einstellungen Webhooks
- Kopieren Sie die angezeigte Webhook-URL
- Fügen Sie in GitHub oder GitLab einen neuen Webhook hinzu, der auf diese URL zeigt
- Wählen Sie den Event-Typ Release oder Tag push
Konfigurationsoptionen:
| Einstellung | Beschreibung |
|---|---|
| Tag-Pattern | Filtern, welche Tags Releases erstellen (z.B. v* für Tags, die mit v beginnen) |
| Standard-Umgebung | Umgebung, die Webhook-erstellten Releases zugewiesen wird |
| Webhook-Secret | Gemeinsames Geheimnis zur Payload-Verifikation |
Wenn ein neues Release veröffentlicht oder ein passender Tag gepusht wird, erstellt Archyl automatisch einen Release-Eintrag.
REST-API
Für jedes CI/CD-Tool, das HTTP-Anfragen machen kann — Jenkins, CircleCI, Bitbucket Pipelines oder benutzerdefinierte Pipelines.
Endpoint: POST /api/v1/projects/:projectId/releases
Headers:
Authorization: Bearer <api-key>
Content-Type: application/json
Payload:
{
"version": "v2.4.0",
"status": "deployed",
"changelog": "Zahlungs-Retry-Logik hinzugefügt",
"environmentId": "<environment-uuid>",
"systemId": "<system-uuid>",
"containerId": "<container-uuid>",
"sourceUrl": "https://github.com/org/repo/releases/tag/v2.4.0"
}
Der Einstellungs-Tab zeigt kopierbare Code-Snippets mit automatisch ausgefüllten API-Keys und Element-IDs.
Ansichten
Release-Timeline
Die Hauptansicht. Releases werden nach Monat gruppiert, in umgekehrter chronologischer Reihenfolge. Jeder Eintrag zeigt:
- Versions-Badge
- Status-Indikator
- Umgebungs-Tag (farbcodiert)
- Verknüpftes System oder Container
- Quelle (GitHub Action, Webhook, API, manuell)
- Relativer Zeitstempel
Klicken Sie auf ein Release, um sein Detailpanel mit vollständigem Changelog, Daten und einem Link zur Quelle zu öffnen.
Filterung:
- Nach Umgebung (z.B. nur Produktions-Deploys anzeigen)
- Nach Status (z.B. nur fehlgeschlagene Deployments anzeigen)
- Nach verknüpftem Element
Deployment-Matrix
Eine Rasteransicht für Teams, die mehrere Services über mehrere Umgebungen verwalten.
- Zeilen — Systeme und Container
- Spalten — Umgebungen
- Zellen — Letztes deployetes Release für diese Kombination
Die Matrix macht Umgebungsdrift auf einen Blick sichtbar. Wenn Staging- und Produktionsversionen divergieren, erkennen Sie es sofort.
Releases mit der Architektur Verknüpfen
Jedes Release kann mit einem System, einem Container oder beidem verknüpft werden.
Automatische Verknüpfung
Bei Verwendung von GitHub Actions oder Webhooks werden Releases mit dem in den Einstellungen konfigurierten Standardziel verknüpft. Sie können das Ziel pro Release überschreiben, indem Sie system-id und container-id angeben.
Manuelle Verknüpfung
Beim Erstellen eines Releases über die Benutzeroberfläche:
- Klicken Sie auf Neues Release
- Füllen Sie Version, Status und Changelog aus
- Wählen Sie das Zielsystem und/oder den Container
- Wählen Sie die Umgebung
- Klicken Sie auf Erstellen
Anzeige im Diagramm
Klicken Sie mit der rechten Maustaste auf ein Element im C4-Diagramm, um sein Detailpanel zu öffnen. Verknüpfte Releases erscheinen im Abschnitt Releases neben Beziehungen, ADRs und API-Verträgen. Das Element zeigt seine neueste Release-Version und Umgebung.
Releases Manuell Erstellen
Nicht jedes Release kommt aus einer Pipeline. Um ein Release manuell zu erstellen:
- Navigieren Sie zum Tab Releases
- Klicken Sie auf Neues Release
- Geben Sie die Version ein, wählen Sie Status und Umgebung
- Schreiben Sie ein Changelog (Markdown unterstützt)
- Verknüpfen Sie mit einem System und/oder Container
- Klicken Sie auf Erstellen
Manuelle Releases haben ihre Quelle als Manuell in der Timeline markiert.
Best Practices
Verwenden Sie Semantische Versionierung
- Taggen Sie Releases mit Semver (z.B.
v1.2.3) - Fügen Sie Pre-Release-Identifikatoren für Nicht-Produktions-Releases hinzu (z.B.
v2.0.0-rc.1) - Halten Sie Versionsstrings über Umgebungen hinweg konsistent
Verfolgen Sie Alle Umgebungen
- Erstellen Sie Umgebungen für jede Deployment-Stufe
- Überspringen Sie Staging nicht — die Deployment-Matrix ist am nützlichsten, wenn sie die vollständige Pipeline zeigt
- Nutzen Sie die Matrix-Ansicht, um Umgebungsdrift früh zu erkennen
Automatisieren Sie die Ingestion
- Verwenden Sie GitHub Actions oder Webhooks anstelle manueller Eingabe
- Richten Sie die Integration einmal ein und jedes Deployment fließt automatisch ein
- Reservieren Sie manuelle Erstellung für Hotfixes oder außergewöhnliche Deployments
Schreiben Sie Changelogs
- Fügen Sie jedem Release ein aussagekräftiges Changelog bei
- Fassen Sie zusammen, was sich geändert hat und warum
- Verlinken Sie auf zugehörige Issues oder Pull Requests, wenn möglich
Verknüpfen Sie auf der Richtigen Ebene
- Verknüpfen Sie mit Systemen beim Deployment einer gesamten Anwendung
- Verknüpfen Sie mit Containern beim Deployment einzelner Services innerhalb eines Systems
- Seien Sie konsistent — wählen Sie eine Konvention und halten Sie sich daran
Nächste Schritte
- API-Verträge — Dokumentieren Sie Ihre API-Spezifikationen
- Architektur-Insights — Erkennen Sie architektonische Probleme
- Architektur-Änderungsanträge — Schlagen Sie Änderungen über einen Review-Workflow vor