Kundenprojekt
Echtzeit-Reiseinformationen im Personenverkehr
Ein Backend, das täglich über 10 Millionen Meldungen zu Verspätungen, Gleiswechseln und Störungen für alle Kanäle aufbereitet – migriert in eine Managed-Cloud auf OpenShift.
Ausgangslage
Ein unternehmenskritisches Backend verarbeitet alle Echtzeitdaten für Reisende: Verspätungen, Gleiswechsel und Störungen an Haltestellen oder in Fahrzeugen – mehr als 10 Millionen Meldungen pro Tag. Es versorgt sämtliche Kanäle, über die Reisende informiert werden. Laut Unternehmensstrategie sollte es aus einer Unmanaged-Cloud in eine Managed-Cloud umziehen.
Vorgehen
- Event-getriebene Microservices mit Kafka und Kafka Streams, ergänzt durch RabbitMQ und WebSockets
- Migration auf OpenShift mit Helm, Kustomize, Operatoren und SCC-konformen Templates
- Neue Arbeitsweise für die Managed-Cloud: saubere Labels und Kostenstellen, die sich bis auf jedes Team herunterbrechen lassen, sowie gezielte Kostenoptimierung
- Ablösung von Jenkins durch GitLab CI: Pipelines laufen stärker parallel, Deployments sind schneller und leichter zu warten. Die meisten gemeinsamen Pipelines habe ich in einer Pipeline-Bibliothek gebaut, die fast alle Repositories nutzen
Testplattform mit vCluster
Mit dem Wechsel zu GitLab CI brauchten wir ein neues Konzept für Integrations- und Fachlogiktests. Ich habe es entworfen und vollständig selbst umgesetzt:
- Ein vCluster mit allen benötigten Operatoren: Kafka, K8ssandra, CloudNativePG, RabbitMQ und S3
- Für jeden Testlauf entsteht ein temporärer Namespace. Darin werden alle Abhängigkeiten gestartet und initialisiert, danach die benötigten Anwendungs-Pods – dann laufen die Tests
- Nach dem Lauf wird der Namespace deinstalliert und gelöscht, und eine HTML-Ergebnisseite ist direkt in GitLab abrufbar
Ergebnis
Das System läuft in der Managed-Cloud mit nachvollziehbaren Kosten pro Team. Jeder Testlauf bekommt eine frische, isolierte Umgebung, und die Ergebnisse sind für alle direkt in GitLab sichtbar.