Alle Projekte

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.

Branche
Mobilität
Rolle
IT-Consultant & Lead Software Engineer
Ergebnis
Über 10 Millionen Meldungen pro Tag, getestet in kurzlebigen Umgebungen pro Testlauf.
Technologien
Java, Spring Boot, Kafka Streams, RabbitMQ, OpenShift, vCluster, K8ssandra, CloudNativePG, GitLab CI

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.