Challenge
Bei der Stuttgarter Lebensversicherung a.G. handelt es sich um ein etabliertes deutsches Versicherungsunternehmen mit über 700 Mitarbeitern, zu welchen auch ein hoch qualifiziertes Entwicklerteam gehört.
Aufgrund stark schwankender Serverauslastungen beschloss dieses, dynamische Skalierbarkeit in den Fokus zu stellen, um so Ressourcen effizienter zu nutzen und Ausfallsicherheit zu gewährleisten.
Weitere Parameter für unsere Lösungssuche waren die strenge Einhaltung branchenüblicher Compliance-Anforderungen, das Überprüfen von Code-Sicherheitsstandards und das Kürzen von Anschaffungskosten für physische Server.
Solution
Im ersten Schritt wurden die bestehenden Services in Docker-Container verpackt und zur einfacheren Verwaltung in eine Container Registry (ECR) aufgenommen.
Es folgte die Ausarbeitung einer Cloud-Architektur bestehend aus drei Organisationseinheiten/Stages in Amazon Web Services (AWS) – diese Einheiten enthalten jeweils Virtual Private Clouds, welche wiederum in Subnetze unterteilt werden.
Durch den Zugriff aller Stages auf eine gemeinsame ECR wird das Staging in Prod / Dev / etc. gewährleistet und somit maximale Sicherheit und Produktivität geboten.
Um außerdem die Vorteile von IaC (Infrastructure as Code) zu nutzen, wurde die gesamte Infrastruktur mittels Terraform erstellt.
Zur Orchestrierung der Container nutzen wir die plattformunabhängige Software Kubernetes, während die Deployments innerhalb des Kubernetes-Clusters mithilfe von Helm eingerichtet werden.
Mithilfe dieser Kombination aus Kubernetes und Helm sind sowohl Versionierbarkeit als auch Wiederverwendbarkeit mithilfe von Templating jederzeit leicht gegeben.
Zuletzt war aufgrund der Compliance-Anforderungen und Sicherheitsstandards eine sichere Verbindung von den Cloud-Anwendungen in ein internes Rechenzentrum der Stuttgarter Lebensversicherung a.G. nötig – dieses Hindernis konnte mithilfe von AWS-Direct Connect gelöst werden.
Results
Bei der Containerisierung und Migration der bestehenden Services in einen Kubernetes-Cluster gab es keine ernsthaften Probleme oder Nachteile, die erhofften Vorteile stellten sich dafür sehr schnell ein:
Dank der neugewonnenen Skalierbarkeit konnten große Serverlasten einfach aufgelöst werden, gleichzeitig aber auch in Ruhephasen Betriebskosten gespart werden.
Zudem konnte die Ausfallsicherheit durch den modernen Tech-Stack um ein Vielfaches erhöht werden und hohe Anschaffungskosten für physische Server blieben aus.