Cloud-Migration einer SaaS-Lösung

Einführung von Kubernetes und Containern

Unser Kunde betreibt mit weltweit mehr als 15.000 Mitarbeitern u.a. analytische Branchenlösungen. In diesem Projekt sollte seine analytische Software-Lösung fit für die parallele, skalierbare Entwicklung gemacht werden. Zeitgleich gab es die strategische Anforderung, die bestehende Cloud-Lösung bei Amazon AWS durch eine Migration zu Google Cloud zu ersetzen.

Herausforderung

Der Kunde stand vor der Herausforderung bei schnellem Wachstum, sowohl eine technische Skalierung der Plattform, als auch eine skalierbare Weiterentwicklung der Software-Module zu gewährleisten. Gleichzeitig sollte eine Alternative für das Hosting bei Amazon AWS gefunden werden.

Vorgehen

Zunächst wurde die Architektur, der technische Entwicklungsstand und die geplante Weiterentwicklung durch niologic dokumentiert. In Zusammenarbeit mit dem Einkauf, der Rechtsabteilung und der IT-Sicherheit des Kunden wurden Microsoft Azure™ und Google Cloud™ als Alternativen zu Amazon AWS™ evaluiert.

Parallel erarbeitete niologic in einer Machbarkeitsstudie eine Modularisierung der bestehenden SaaS-Lösung als cloud-native Container-Lösung (Docker) mit Kubernetes als Container-Orchestrator.

Diese Lösung wurde mittels Rapid Prototyping innerhalb von 5 Projekttagen inkl. Docker-Images, Loadbalancing und SSL-Terminierung, Cloud Storage, Konfiguration von Kubernetes, Erstellung von Backups, Einbindung von OKTA™ als SSO-Lösung und Aufsetzen des Monitorings umgesetzt. Ebenfalls wurde ein Hadoop-Cluster mit Apache Spark 2.0 aufgesetzt und konfiguriert. Nach dem Deployment und der Evaluation auf Microsoft Azure und Google Cloud entschied sich der Kunde für Google Cloud als Anbieter.

niologic begleitete den Kunden nach dem initialen Setup in die Übernahme des Regelbetriebs. Hierzu wurde ein eigenes Team von Site Reliability Engineers (SREs) als DevOps-Lösung aufgestellt und durch niologic im Projektmanagement mittels Kanban angeleitet.

niologic initiierte die Einführung von Terraform für Infrastructure-As-A-Code, von Kubernetes Helm und Stackdriver Application Performance Monitoring (APM) und Alerts für die Überwachung der Kubernetes-Cluster.

Ebenfalls wurde mit Google Dataproc™ und preemptible VMs eine weitere Leistungssteigerung des Hadoop-Clusters durchgeführt. Vorhandene Instanzen und Datenbanken wurden in einem Migrationsplan festgeschrieben und durch niologic und der SREs migriert.

Die Pflege der Software und verbundener Container wurde mittels Continuous Integration (CI) und Continuous Deployment (CD) Pipelines durch die Entwickler des Kunden unter Coaching seitens niologic aufgenommen.

Projektergebnis und Kundennutzen

Der Kunde konnte innerhalb von einem Monat den Regelbetrieb der neuen Infrastruktur für neue Kunden starten. Zuvor hatte er sich durch einen geführten Probebetrieb von der Leistungsfähigkeit der Lösung überzeugt. Bestandskunden wurden ohne Betriebsunterbrechung in den folgenden Wochen migriert.

Das Entwicklungsteam wurde in der Verwendung der Docker-basierten CI und CD-Pipelines geschult und übernahm die Weiterentwicklung. Das SRE-Team des Kunden verfügt nach dem Projekt über die Werkzeuge in Monitoring und IT-Sicherheit. So kann es proaktiv Leistungsengpässe und drohende Ausfälle der Infrastruktur vermeiden.

Es existiert nun ein schlagkräftiges, eigenständiges Team für den operativen Betrieb und die Weiterentwicklung der Plattform. Service Level Agreements (SLA) und Service Level Objectives (SLO) wurden festgeschrieben und werden durch das SRE-Team und den Google Support abgedeckt.

Mit Google Dataproc und preemptible VMs konnte eine kostengünstige Skalierung des Spark-Clusters gefunden werden. Mit Kubernetes und Docker konnten cloud-native Lösungen für eine horizontale Skalierung und agile Weiterentwicklung erfolgreich eingeführt werden.

Aufgrund des stetigen Kontakts zum Team der Google Cloud konnte niologic auch neueste Technologien schnell und erfolgreich einführen. Weiterhin konnten die Personalkosten für den Bereich DevOps um 60% gesenkt und die Verfügbarkeit um 50% gesteigert werden, in dem auf eine Kombination von Onshore und Nearshore gesetzt wurde. Bestehende Lieferanten wurden ersetzt. Die Infrastrukturkosten konnten durch die Einführung von Container-Virtualisierung und einer passgenauen Cloud-Infrastruktur um 40% gesenkt werden.