3.7 KiB
3.7 KiB
🐧 [DevOps Engineer] — Schritt-für-Schritt Roadmap
Stand: 3. April 2026 Rolle: Docker, CI/CD, Gradle, Security, Desktop-Packaging, Infrastruktur
🔴 Sprint A — Sofort (diese Woche)
-
A-1 | Docker-Compose-Setup auf aktuellen Stand bringen
- Alle Services (Backend, DB, Infra) in
docker-compose.yaml/dc-*.yamlprüfen - Sicherstellen: Lokale Entwicklungsumgebung startet mit einem einzigen Befehl
- Healthchecks für alle Services definieren
Hinweise:
- Ein-Kommando-Start (alle Profile):
docker compose --profile all up -d - Healthchecks ergänzt für:
api-gateway,ping-service,web-app,zipkin. depends_onvereinheitlicht: Keycloak wird von Backend-Services mitservice_healthyabgewartet.
- Alle Services (Backend, DB, Infra) in
🟠 Sprint B — Kurzfristig (nächste Woche)
-
B-1 | CI/CD Pipeline für Compose Desktop Tests (headless)
- Gitea Actions Workflow angelegt:
.gitea/workflows/desktop-tests.yml - Headless-Umgebung:
xvfb-run(1920x1080x24) für Compose Desktop Tests - Gradle-Task integriert:
:frontend:shells:meldestelle-desktop:jvmTest - Build-Artefakte gespeichert:
frontend/shells/meldestelle-desktop/build/**(JARs und Compose-Distributables) - Fehlgeschlagene Tests brechen Build ab (Default-Verhalten von Gradle
jvmTest)
Hinweise:
- CI nutzt JDK 21 (Temurin), Gradle-Cache (
actions/cache). - Artefakte: Upload via
actions/upload-artifact. Pfade siehe Workflow. - Siehe:
docs/01_Architecture/Gitea/Enable_Gitea_Actions_Cache_to_Accelerate_CI_CD.mdfür Runner-Cache.
- Gitea Actions Workflow angelegt:
-
B-2 | Gradle-Build-Optimierungen
- Build-Cache aktiv:
org.gradle.caching=true(ingradle.properties) - Parallele Builds aktiv:
org.gradle.parallel=true(ingradle.properties) - Headless-Flag gesetzt:
-Djava.awt.headless=true(inorg.gradle.jvmargs) - Wrapper aktualisiert: Gradle
9.4.0(kompatibel mit aktuellem Setup)
- Build-Cache aktiv:
🟡 Sprint C — Mittelfristig (in 2 Wochen)
-
C-1 | Desktop-App Packaging konfigurieren
compose.desktop.nativeDistributionsinbuild.gradle.ktskonfigurieren- Windows:
.msi-Installer bauen - Linux:
.deb-Paket bauen - macOS:
.dmg-Image bauen (falls erforderlich) - App-Icon und Metadaten (Name, Version, Publisher) eintragen
- Testinstallation auf Ziel-Betriebssystem durchführen
-
C-2 | Semantic Versioning einführen
- Versionierungsschema definieren:
MAJOR.MINOR.PATCH - Gemeinsame Versions-Quelle für Client (Frontend) und Server (Backend) festlegen
- Git-Tagging-Strategie definieren (
v1.0.0,v1.0.0-backend, etc.) - Release-Tagging in CI/CD-Pipeline integrieren
CHANGELOG.mdVorlage anlegen
- Versionierungsschema definieren:
-
C-3 | Produktions-Deployment vorbereiten
- Reverse-Proxy-Konfiguration (Nginx / Traefik) für Backend prüfen
- HTTPS-Zertifikat-Management dokumentieren
- Backup-Strategie für Produktionsdatenbanken definieren
⏸️ Zurückgestellt
⏸️ USB-Stick Fallback — Separate Besprechung zu einem späteren Zeitpunkt ⏸️ Web-App Deployment — Wird erst nach Desktop-App (Sprint A+B) gestartet
📌 Abhängigkeiten
| Warte auf | Von wem |
|---|---|
| Headless-Test-Strategie | 🧐 QA Specialist |
| Meine Aufgabe | Ermöglicht wem |
|---|---|
| CI/CD Pipeline (B-1) | 🧐 QA: Automatisierte Test-Ausführung |
| Desktop-Packaging (C-1) | Alle: Auslieferbare Desktop-App |
| Semantic Versioning (C-2) | Alle: Koordiniertes Release-Management |