Ein österreichischer Finanzdienstleister mit über 1,2 Millionen Kunden wollte seine IT-Landschaft zukunftsfähig gestalten. Dafür
sollte eine hochmoderne Cloud Native Plattform aufgebaut werden, die als Zielinfrastruktur für zahlreiche
cloud-native Microservices dient. Dabei sollten moderne DevOps-Standards,
Automatisierungskonzepte, Observability-Praktiken und Security-Best-Practices konsequent umgesetzt werden.
Die zugrundeliegende Basisinfrastruktur bestand aus einem VMware vSphere Cluster mit integriertem Storage-Cluster.
Der vSphere Compute-Cluster betreibt virtuelle Maschinen, während der Storage-Cluster sowohl virtuelle Festplatten als auch
Backing-Disks für Kubernetes Persistent Volumes bereitstellt.
Die Plattform sollte vollumfassend auf dieser vSphere-Umgebung aufgebaut werden und sämtliche Komponenten für den
produktiven Betrieb beinhalten:
Basierend auf dem Least-Privilege-Access-Modell wurden mit Ansible und Packer die Basis-Cluster provisioniert, auf
denen Rancher als zentrales Kubernetes Management Tool betrieben wird. Von diesen Basis-Clustern aus wurden anschließend mehrere Downstream-Cluster
automatisiert erstellt, die unterschiedliche Umgebungen (Development, Staging, Production) bereitstellen. Nahezu die gesamte Infrastruktur – von den
Clustern über Netzwerk- und Plattformkomponenten bis hin zu zentralen Services – wurde deklarativ mit Terraform
verwaltet.
Für ein sicheres Credential Management und Identity Management wurden mittels Infrastructure as Code HashiCorp Vault und Keycloak
implementiert und konfiguriert. Sämtliche Tools wurden an Keycloak als zentralen Identity Provider angebunden, wobei bestehende
Benutzer und Gruppen von Active Directory via Federation in Keycloak integriert wurden.
Beim Design des Storage-Konzepts wurde von Beginn an auf hohe Verfügbarkeit und sichere Datenhaltung geachtet.
Die Datenbankcluster (MariaDB) wurden in einem hochverfügbaren Setup innerhalb von Kubernetes implementiert. Container-Images und weitere
Build-Artefakte wurden über Sonatype Nexus verwaltet, das sowohl als Container-Registry als auch als zentrales Cache-System fungiert. Die
dynamische Provisionierung von persistentem Storage erfolgte mittels vSphere CSI Driver, während MinIO als
hochverfügbarer S3-kompatibler Objektspeicher für Backups zum Einsatz kam.
Mit Velero und Veeam wurde auf zwei unterschiedlichen Ebenen – VM-Layer und Kubernetes-Layer – ein mehrstufiges Backup-Konzept
implementiert. Die Backups wurden auf einem hochverfügbaren S3-Speicher (MinIO) gesichert, der wiederum durch Veeam über dessen
S3-Connector gesichert und anschließend zur Langzeitarchivierung ausgelagert wurde. Zusammen mit dem vollständig automatisierten Aufbau der gesamten Infrastruktur
ermöglichte dies ein umfassendes Disaster Recovery.
Für die spezifischen Anforderungen der Cloud Native Umgebung wurde ein umfassendes Monitoring- und Alerting-System implementiert.
Prometheus sammelt kontinuierlich Metriken von der Infrastruktur und den Applikationen, Grafana visualisiert diese in
aussagekräftigen Dashboards, und der Alertmanager sendet Warnmeldungen und Fehlerbenachrichtigungen an Slack- und
Webex-Kanäle. Zusätzlich wurde ein hochverfügbarer Elasticsearch-Cluster aufgebaut, der von verschiedenen Microservices
für Logging, Audit-Trails und Search-Funktionalitäten genutzt wird. Kibana dient als zentrale Oberfläche für die Analyse und
Visualisierung der Log-Daten. Das Rancher Monitoring ergänzt diese Lösung und bietet eine integrierte Übersicht über die
Cluster-Gesundheit.
Durch den konsequenten Einsatz von GitOps wurde die Infrastruktur nicht nur nachvollziehbar dokumentiert, sondern auch wartungsfreundlich implementiert.
Der GitOps-Operator ArgoCD bietet Entwicklern eine zentrale Übersicht über alle installierten Applikationen
und ermöglicht ein auditiertes Deployment. Das Release-Management-Konzept wurde so gestaltet, dass gebündelte Release-Bundles
über GitOps ausgerollt werden können. Dabei wurde besonderer Wert auf ein umfassendes Konzept gelegt, das sowohl Feature-Deployments als auch
Hotfixes in der Infrastruktur und den einzelnen Softwarekomponenten vollständig automatisiert abbildet.
Der Aufbau der Cloud Native Plattform hat einen grundlegend modernisierten Entwicklerworkflow ermöglicht, bei dem
zahlreiche manuelle Prozessschritte eliminiert wurden. Die ersten Deployments verschiedener Applikationen des Finanzdienstleisters
haben gezeigt, dass sich sowohl die Durchlaufzeiten als auch die Developer Experience um ein Vielfaches verbessert haben.
Die Umgebung bietet durch ihren dynamischen Aufbau vielfältige Möglichkeiten für Entwickler, Ressourcen
wie CPU, RAM und Speicher für ihre Applikationen selbstständig zu dimensionieren und zu optimieren.
Der konsequent deklarative Infrastructure as Code Ansatz beim Aufbau der Infrastruktur ermöglicht erhebliche Zeiteinsparungen bei der
Wartung und Weiterentwicklung. Infrastruktur-Updates können in vielen Fällen durch einfache Änderungen im
Git-Repository ausgerollt werden.
Die neue Plattform bildet somit eine entwicklerfreundliche Cloud Native Umgebung, die gleichzeitig eine
ressourcenschonende Administration ermöglicht. Die Plattform ist nach modernsten Security-Standards und Betriebskonzepten aufgebaut
und vollständig skalierbar für zukünftige Migrationen und Deployments gerüstet.