Migration und Optimierung einer Reiseplattform für die DB Regio Bus
Über den Kunden:
„Bundesweit unterwegs – vor Ort zu Hause“. Das ist das Motto der DB Regio Bus, der Bussparte der DB Regio AG. Sie ist mit über 40 Gesellschaften und Beteiligungen vor Ort dafür verantwortlich, den Busverkehr in weiten Teilen Deutschlands in Bewegung zu halten.
Die Herausforderung:
Als zentraler Dienstleister für Mobilität bietet die Deutsche Bahn durch die Übernahme von Snapbus eine Plattform, die Busreisende und Busunternehmen zusammenbringt. Durch die Angabe von einer festgelegten Route, einem Datum und einer Gruppengröße können Busreisen in wenigen Schritten online geplant und gebucht werden.
Die Plattform wurde durch die Firma Snapbus GmbH entwickelt und betrieben. Die Herausforderung bestand somit darin, eine bereits existierende Anwendung in die komplexe IT-Infrastruktur der DB Regio Bus zu migrieren.
- Anforderung: Minimale Betriebsunterbrechung und lückenlose Migration aller Daten
- Die Koordination interner und externer Stakeholder zur Weiterentwicklung und Optimierung der Anwendung
Auf Seiten der IT-Infrastruktur musste sichergestellt werden, dass die bestehende Infrastruktur den Compliance- und Sicherheitsrichtlinien des Deutsche Bahn Konzerns entspricht. Zusätzlich musste eine Trennung im Staging- und Produktivbetrieb sichergestellt werden. Die Infrastruktur wurde unter Berücksichtigung von AWS Well-Architected auf versionierter Codebasis bereitgestellt.
Die Lösung:
Standardisierung und Wiederverwendbarkeit
Die erfolgreiche Eingliederung von Zukäufen in einen Konzern ist eine wichtige Voraussetzung für dessen Wachstum. Cloudservices bieten die Möglichkeit, die Innovationskraft von Startups auch für Konzerne zu nutzen. Dies ist nicht ohne Herausforderungen. Neben der Einhaltung von Compliance-Richtlinien des Konzerns müssen häufig auch schärfere Sicherheitsstandards erfüllt werden.
In diesem Projekt wurden periphere Systeme wie z.B. automatisierte Rollouts, das Monitoring und das Logging auf Wiederverwendbarkeit und Standardisierung ausgelegt. Sie bilden das stabile Gerüst für die erfolgreiche Migration von zukünftigen Projekten und Produkten.
Für die anwendungsspezifischen Komponenten wurden AWS Elastic Beanstalk, AWS Lambda, AWS S3 & Cloudfront sowie AWS RDS genutzt.
Sicherheit und Zukunftsfähigkeit
Gerade in der sich schnell entwickelnden Cloud Branche ist es essenziell, Anwendungen und Infrastrukturen regelmäßig auf den aktuellen Stand zu bringen. Geschieht dies nicht, entsteht Technical Debt, welcher langfristig zu hohen Mehraufwänden bei Updates und Änderungen führt. Im Rahmen der Migration haben wir die Anwendung und die Infrastruktur gemäß den aktuellen AWS Anforderungen und den Konzernrichtlinien angepasst. Die von PROTOS durchgeführten Maßnahmen garantieren neben der erhöhten Sicherheit auch die Zukunftsfähigkeit der Anwendung.
Während des Projektes unterstützte die PROTOS Technologie GmbH beratend und umsetzend zur Migration der Anwendung sowie zum Umbau der Infrastruktur. Um eine hohe Innovationsgeschwindigkeit zu gewährleisten, wurde das Projekt in agiler Methodik durchgeführt. Hierbei wurde mit einem externen Entwicklungsteam zusammengearbeitet.
Die Umsetzung
Der erste Schritt der Migration beinhaltete den Neuaufbau der Infrastruktur. Im zweiten Schritt folgte die Optimierung der Anwendung und der Infrastruktur. Zusätzlich wurde ein separates Testsystem aufgesetzt, um etwaige Änderungen der Infrastruktur und der Anwendung testen zu können.
Im Rahmen des Neuaufbaus wurde die Infrastruktur mit Hilfe von Terraform als Infrastructure-as-Code aufgebaut. Kombiniert mit der Softwareversionierungstechnologie GIT konnten so die Reproduzierbarkeit, die Testbarkeit und die automatischen Rollbacks gewährleistet werden. Änderungen am Infrastrukturcode wurden automatisiert mittels CI/CD-Pipeline (Continuous Integration / Continuous Deployment) ausgerollt. Hierzu wurden die AWS Developer Tools AWS CodeCommit sowie AWS CodeBuild genutzt. Die Reproduzierbarkeit konnte genutzt werden, um innerhalb weniger Minuten ein exakt gleiches Abbild der Infrastruktur als Produktivsystem bereitzustellen.
Die Anwendung selbst nutzt AWS Elastic Beanstalk, einen Platform-as-a-Service Dienst. Elastic Beanstalk übernimmt die Kapazitätsbereitstellung, die Lastverteilung und die automatische Skalierung bis zur Statusüberwachung der Anwendung. Zusätzlich ist eine SQL-Datenbank angebunden und ein In-Memory Speicher angebunden (mit AWS Relational Database Service (RDS) und AWS Redis).
Um CI/CD zu ermöglichen wurden Frontend- und Backendänderungen analog zur Infrastruktur und für beide Environments mit Hilfe von AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy sowie AWS Pipeline automatisiert. Ebenfalls automatisiert sind Unit- und Integrationstest des Anwendungsartefakts innerhalb der CI/CD Pipeline.
Im zweiten Schritt der Migration wurde die Anwendung und die darunterliegende Infrastruktur optimiert. Überflüssige Komponenten der Infrastruktur wurden entfernt und sicherheitskritische Teile neu entworfen.
Die Vorteile:
Standardisierung einer externen Anwendung:
Periphere Systeme wie z.B. automatisierte Rollouts, das Monitoring und das Logging sind auf Wiederverwendbarkeit und Standardisierung ausgelegt und bieten somit das stabile Gerüst für die erfolgreiche Migration von zukünftigen Projekten und Produkten.
Skalierbare, hochverfügbare Lösung:
Durch die Verwendung von S3 für Webhosting, AWS Elastic Beanstalk und AWS Relational Database Service wurde eine skalierbare und hochverfügbare Lösung bereitgestellt.
Nutzung agiler Methoden, um hohe Projektgeschwindigkeit zu gewährleisten:
Um höchste Projektgeschwindigkeit zu gewährleisten, wurde das Projekt zusammen mit internen und externen Stakeholdern in agiler Methodik (Scrum) umgesetzt. Hierdurch wurde eine enge Zusammenarbeit zwischen dem Softwareteam, der Infrastrukturentwicklung und der Projektsteuerung erreicht.
Grafiken: Pixel perfect, kerismaker, Freepik from Flaticon.com