In diesem Projekt habe ich eine vollständige CI/CD- und GitOps-Pipeline für eine selbst entwickelte Flask-Anwendung aufgebaut.
Ziel war es, eine moderne, automatisierte Deployment-Architektur umzusetzen, die den Best Practices aus der DevOps-Welt entspricht.
Die Architektur basiert auf einer klaren Trennung von Verantwortlichkeiten:
- Application Repository → enthält den Anwendungscode (CI)
- CI Repository
- Deployment Repository (GitOps) → enthält Kubernetes- und Helm-Konfiguration (CD)
- CD Repository
- CI/CD pipeline structure
Diese Trennung entspricht dem GitOps-Prinzip, bei dem Git als Single Source of Truth dient.
- Python / Flask → Entwicklung der Webanwendung
- Docker → Containerisierung der Anwendung
- Jenkins → Continuous Integration (CI)
- GitHub Webhooks → automatisches Triggern der Pipeline
- Kubernetes (Minikube) → Container-Orchestrierung
- Helm → Paketmanagement für Kubernetes
- ArgoCD → Continuous Deployment (GitOps)
Ein Entwickler pusht Änderungen in das Application Repository.
Ein Webhook löst automatisch die Jenkins-Pipeline aus.
Die Pipeline führt folgende Schritte aus:
- Code klonen
- Anwendung bauen und testen
- Docker-Image erstellen
- Image in ein Container-Repository pushen
Nach erfolgreichem Build:
- wird der neue Image-Tag automatisch im Deployment Repository aktualisiert
- ArgoCD überwacht das Deployment-Repository
- erkennt Änderungen automatisch
- synchronisiert den gewünschten Zustand mit dem Kubernetes-Cluster
- Deployment erfolgt auf einem lokalen Kubernetes-Cluster (Minikube)
- Helm Charts werden verwendet, um Deployments zu standardisieren und zu versionieren
Git Push
↓
GitHub Webhook
↓
Jenkins Pipeline (CI)
↓
Docker Image Build & Push
↓
Update Deployment Repository
↓
ArgoCD (GitOps)
↓
Kubernetes Deployment(Minikube)
Durch diese Architektur wurde der gesamte Deployment-Prozess:
- ✅ vollständig automatisiert
- ✅ reproduzierbar
- ✅ skalierbar
- ✅ Git-basiert (GitOps)
Änderungen können schnell und zuverlässig in die Produktionsumgebung ausgerollt werden.
Dieses Projekt hat mir geholfen, praktische Erfahrung zu sammeln in:
- CI/CD Pipeline Design
- GitOps-Prinzipien
- Kubernetes & Container-Orchestrierung
- Helm Chart Management
- Automatisierung von Deployments
- Aufbau moderner Cloud-Native Architekturen
Dieses Projekt stellt eine realitätsnahe DevOps-Umgebung dar und bildet eine solide Grundlage für produktive Systeme in modernen Softwareprojekten.