Ein Unternehmen aus dem Unternehmenssektor sucht einen Partner für die Migration einer Java-Monolith-Anwendung in eine containerisierte Umgebung in Amazon Web Services AWS. Mit der Migration werden wir die Release-Zyklen, den Gesamtbetrieb, die Aktivitäten und die Verfügbarkeit der Dienste verbessern.
DIE HERAUSFORDERUNG
Der Kunde hat mehrere Zulieferer an verschiedenen Standorten weltweit, die alle an der Entwicklung seines Produkts beteiligt sind.
Das Produkt selbst hat die Form einer monolithischen Anwendung, die als veraltet gilt und nur schwer alle CI/CD-Phasen durchlaufen kann. Sie verlangsamt die Entwicklungszyklen, und der Betrieb wird komplexer, da die neuen Bereitstellungen die Ausfallzeiten mehrerer Dienste mit sich bringen.

DIE LÖSUNG
Die Situation wird schnell bewertet und die Lösung besteht darin, die Anwendung in Microservices aufzuteilen und Technologien wie Docker, Kubernetes und Jenkins - für die Durchführung von CI/CD - zu nutzen. Was das Hosting der Container betrifft, so wird beschlossen, Amazon Web Services AWS zu verwenden .
Das Unternehmen bittet ITGix um professionelle Dienstleistungen, und wir arbeiten einen Plan aus, um:
- eine sichere und automatisierte Umgebung in AWS einrichten;
- das lokale Rechenzentrum des Unternehmens mit Amazon VPC zu integrieren;
- ein automatisiertes und zentralisiertes System zur Überwachung, Protokollsammlung und skalierbaren Verwaltung von Containern einrichten.
Für das Projekt raten wir dem Kunden, Amazon Web Services zu nutzen, um ihn nicht an eine spezielle kundenspezifische Lösung zu binden. ITGix ist vollständig für die Bereitstellung, Überwachung und Aktualisierung des Kubernetes-Clusters verantwortlich.
Einrichten einer sicheren und automatisierten Umgebung in AWS:
Der Ansatz in diesem speziellen Fall ist die Verwendung von Terraform mit S3 und DynamoDB für State Locking. Darüber hinaus wird der Umgebungscode in mehrere Module aufgeteilt, um eine effiziente Nutzung und eine einfache Wiederherstellung für DR-Szenarien und Replikation zu ermöglichen. Wir verfolgen den Ansatz von Infrastructure-as-a-Source-Code und Git, um diesen Code zu erhalten. Natürlich ist es uns gelungen, die Zyklen zu verbessern, indem wir den trunk-basierten Ansatz und Git-Review für jede neue Verbesserung verwenden. Außerdem sehen wir eine gute Möglichkeit, die Konfigurationssprache auf Ansible umzustellen und Rollen für die Bereitstellung zu schaffen, wo dies erforderlich ist.
Integration von AWS und DC:
Wir standen vor der Herausforderung, dieselben Authentifizierungsmechanismen und DNS-Prinzipien für die VPCs beizubehalten. Wir sicherten die Verbindung für Dienste durch die Implementierung der Integration mit SimpleAD und nutzten die HA-VPN-Konnektivität mit einer guten Organisation des Routings für alle VPCs.
Zentralisierte Überwachung und Protokollaggregation:
Wir haben Schwierigkeiten, Cloudwatch zu nutzen, also entscheiden wir uns für einen hybriden Ansatz mit Icinga und Prometheus. Da wir gemischte Arten von Anwendungen und Servern haben, müssen wir uns mit den Lösungen eingehend befassen. Wir schaffen es jedoch, sie in Containern laufen zu lassen und Grafana für die Trennung verschiedener Datenquellen und Korrelations-Dashboards zu verwenden.
Container Management System:
Zu guter Letzt müssen wir an einem Container Management System arbeiten, das die Gesamterfahrung und das Management der Kernkomponente verbessern soll. Die nicht-funktionalen Anforderungen für jede Anwendung sind klar, daher entscheiden wir uns, unser Container-Management-System mit Kubernetes aufzubauen. Diese Entscheidung basiert auf der Anforderung "Non-Vendor-Lock" und der zukünftigen Entwicklung der Hybrid-Cloud-Strategie.
Entdecken Sie die Dienstleistungen von ITGix und erfahren Sie mehr über unser Know-how.