Konzeption und Implementierung des GitOps-Vorgehens mit ArgoCD und Kubernetes
GitOps
ArgoCD
Terraform
Kubernetes
Projektkontext
Unser mittelständischer Kunde aus der Versicherungsbranche benötigt die Bereitstellung eines seiner Produkte als Software-as-a-Service (SaaS). Bisher fehlten Erfahrungen mit SaaS-Lösungen und containersierten Anwendungen. Die Entwicklung fand ausschließlich on-premise statt und erfüllte nicht die Anforderungen einer SaaS-Lösung. Es wurde ein revisionssicheres, automatisiertes Deployment (Continuous Delivery) gefordert, um eine zuverlässige und transparente Bereitstellung von Software-Releases zu gewährleisten. Die Anforderungen umfassten:
- Einrichtung von Entwicklungs- und Testumgebungen
- Bereitstellung mehrerer isolierter Produktionscluster für verschiedene Kundengruppen mit hoher Replizierbarkeit und individueller Skalierbarkeit
- Ein Preview-Deployment zur isolierten Betrachtung und integrativen Testings von Features in der Entwicklungsphase
Lösungsansatz
Unser Team entwickelte und implementierte einen umfassenden GitOps-Ansatz mit ArgoCD und Kubernetes. GitOps und Infrastructure as Code (IaC) förderten Automatisierung und Konsistenz in der Infrastruktur, ermöglichten versionierte und überprüfbare Änderungen und führten zu erhöhter Zuverlässigkeit, Sicherheit und Effizienz im Betrieb.
Umsetzung
Cluster Bootstrapping mit Terraform:
- Implementierung einer IaC-Pipeline mit Terraform zur automatischen Erstellung und Konfiguration von Kubernetes-Clustern
- Berücksichtigung von Add-Ons wie Zertifikat- und Secret-Management
- Konsistente und wiederholbare Bereitstellung der Infrastruktur
- Deployment der Anwendungen innerhalb der Cluster mit ArgoCD
ArgoCD Deployment
- Konfiguration und Bereitstellung von ArgoCD als zentrales Werkzeug für Continuous Delivery und GitOps
- Verwaltung und automatisches Deployment von Anwendungsänderungen über Git-Repositories
- Anpassung bestehender Helm-Charts für GitOps-Deployments
Integration ins GitHub Toolset
- Implementierung automatisierter Tests mit GitHub Actions für automatisches Deployment in Entwicklungs- und Testumgebungen
- Automatische Versionsupdates mit Renovate und dem ArgoCD Image Updater
- Erstellung von Pull-Requests, Durchführung von Tests und automatischer Merge bei erfolgreichen Überprüfungen
- Checks zur Überprüfung auf bekannte Schwachstellen (CVEs) und Code Smells zur kontinuierlichen Verbesserung der Codequalität und Sicherheit
PR-Preview Deployments
- Implementierung von PR-Preview Deployments für das isolierte Testen und Validieren von Änderungen vor dem Merge des Codes
- Bereitstellung von Pull-Request-Deployments in eigenen Namespaces mit eigenen Endpunkten
- Durchführung von API- und Integrationstests direkt aus der Pipeline heraus zur Überprüfung der Qualität und Funktionalität der Änderungen
Ergebnis
Durch den Einsatz von GitOps und IaC konnten wir eine automatisierte, sichere und effiziente Bereitstellung der SaaS-Lösung gewährleisten. Unser Kunde profitierte von einer hohen Replizierbarkeit, individuellen Skalierbarkeit und einem zuverlässigen, revisionssicheren Deployment-Prozess. Die Implementierung von PR-Preview Deployments ermöglichte es, Änderungen frühzeitig zu testen und sicherzustellen, dass die Software den hohen Anforderungen im Versicherungskontext entspricht.
Weitere Case Studies
Deine Mission könnte hier beginnen.
Bist du bereit, den nächsten Schritt zu machen und deine eigene Erfolgsgeschichte zu schreiben?