Deployment-Konzept
Diese Dokumentation beschreibt, wie Deployments in unseren Projekten strukturiert sind.
Ziel
Jeder Stand eines Projekts soll über eine klar definierte Umgebung und URL erreichbar sein. Die Zuordnung erfolgt über den Git-Branch bzw. Git-Tag und den dazugehörigen Image-Tag.
Umgebungen und URL-Schema
Dev-Server
1. Entwickler-Branches
Für Feature-, Bugfix- oder sonstige Entwickler-Branches wird folgende Struktur verwendet:
<branch>.<kunde?>.<product>.dev.appcenter.de
- Zweck: Testen eines individuellen Entwicklungsstands
- Image-Tag: Branch-Tag
- Beispiel:
feat-mein-feature.selbstauskunft.dev.appcenter.de
Branch-Namen mit
/werden in der URL durch-ersetzt.
2. Develop-Branch
Für den gemeinsamen Entwicklungsstand auf develop wird folgende Struktur verwendet:
<kunde?>.<product>.dev.appcenter.de
- Zweck: Zentraler Entwicklungsstand
- Image-Tag:
dev - Beispiel:
selbstauskunft.dev.appcenter.de
Prod-Server
3. Main-/Master-Standaging
Für den Stand aus main bzw. master wird folgende Struktur verwendet:
<kunde?>.<product>.staging.appcenter.de
- Zweck: Staging-Umgebung vor dem finalen Release
- Image-Tag:
master - Beispiel:
selbstauskunft.staging.appcenter.de
4. Release
Für offiziell veröffentlichte Versionen, die per Git-Tag markiert wurden:
<product>.appcenter.de
- Zweck: Produktive Release-Version
- Image-Tag:
release - Grundlage: letztes Git-Tag
- Beispiel:
selbstauskunft.appcenter.de
Deployment-Flow
Beispiel für den Ablauf eines Features in der Selbstauskunft:
1. Feature-Entwicklung
Du entwickelst ein Feature im Branch:
feat/mein-feature
Nach einem Push ist der Stand unter folgender URL erreichbar:
feat-mein-feature.selbstauskunft.dev.appcenter.de
2. Merge in develop
Nach dem Merge in den develop-Branch ist der aktuelle Entwicklungsstand hier erreichbar:
selbstauskunft.dev.appcenter.de
3. Merge in main / master
Nach dem Merge in main bzw. master wird der Stand auf der Staging-Umgebung bereitgestellt:
selbstauskunft.staging.appcenter.de
4. Release per Git-Tag
Sobald ein offizielles Release über ein Git-Tag erzeugt wird, ist die Version produktiv unter folgender URL erreichbar:
selbstauskunft.appcenter.de
Übersicht
| Quelle | Umgebung | URL | Image-Tag |
|---|---|---|---|
| Feature-Branch | Dev | <branch>.<product>.dev.appcenter.de | Branch-Tag |
develop | Dev | <product>.dev.appcenter.de | dev |
main / master | prod | <kunde?>.<product>.staging.appcenter.de | master |
| Git-Tag | prod | <kunde?>.<product>.appcenter.de | release:0.0.1 |
Hinweise
- Der optionale Teil
<kunde?>wird nur verwendet, wenn das Projekt kundenspezifisch ist. - Branch-Namen müssen URL-kompatibel gemacht werden, z. B.:
feat/mein-feature→feat-mein-feature
- Der produktive Release-Stand basiert immer auf einem gesetzten Git-Tag.