Aimo Park wählte Gofore Plc als den alleinigen Partner aus, um die Neugestaltung der bestehenden Cloud-Infrastruktur umzusetzen. Gemeinsam entschieden wir, dass die beste Vorgehensweise darin besteht, die Infrastruktur von Grund auf neu aufzubauen und die laufenden Dienste nach und nach auf die neue Plattform zu migrieren. Das Ziel lautete dabei, alle Dienste in Containern zu bündeln und auf ein Microservice-Modell umzustellen. Um sich an die DevOps-Methodik zu halten, wurde dies zusammen mit den Entwicklern durchgeführt und sichergestellt, dass der gesamte Lebenszyklus der Anwendung transparent ist. Ein weiterer Erfolgsbaustein war der Einsatz von Agilen Entwicklungsmethoden.
Schwerpunkte der Neugestaltung:
• Account-Struktur
• Identitäts- und Zugriffsmanagement
• Automatisierung der Infrastruktur
• Containerisierung
• Überwachung der Infrastruktur (Monitoring)
• Zentralisiertes Logging
• Continuous Integration & Continous Deployment
Zu Beginn wurde eine neue AWS-Account-Struktur erstellt, um Umgebungen und Workloads sauber voneinander zu trennen. Die Identitäts- und Zugriffsverwaltung wurde von den eigentlichen Anwendungs-Workloads getrennt und die Workloads wurden in Development-, Staging- und Produktionsumgebungen unterteilt. Alle diese Bereiche wurden unabhängig voneinander gehalten, um unnötige Abhängigkeiten zu vermeiden. Außerdem wählte man eine besser passendere AWS-Region aus.
Die Cloud-Infrastruktur wurde nach den Prinzipien von „Infrastructure-as-Code“ mittels Terraform aufgebaut. Der resultierende Code war in hohem Maße selbstdokumentierend. Manuelle Arbeiten reduzierten sich auf ein absolutes Minimum, stattdessen wurden alle Änderungen an der Infrastruktur durch CI/CD-Pipelines durchgeführt. GitLab wurde benutzt, um die Pipelines sowohl für die Infrastruktur als auch für alle Anwendungsimplementierungen zu erstellen.
Nach einer gründlichen Evaluierung wählte man „Datadog“ als zentralisierte Überwachungs- und Protokollierungslösung aus. Wichtig war dabei nicht nur Metriken und Logs der Infrastruktur und Anwendungen an einem Ort zu verwalten, sondern auch den erforderlichen Administrationsaufwand auf ein Minimum zu beschränken. Automatische Warnsysteme wurden in eine interne Kommunikationsplattform integriert, um die Reaktionszeiten von etwaigen Ausfällen zu verkürzen und die Fehlersuche zu erleichtern.