In der Phase der Anwendungsmodernisierung des Projekts setzte FlowFactor drei Hauptkomponenten ein, um die Anwendungen des Verkehrsunternehmens in modulare, containerisierte Architekturen umzuwandeln:
- Die IBM Transformation Advisor-Software scannte die Anwendungen und Konfigurationen und empfahl Schritte zur Modernisierung der Anwendungen vom traditionellen WebSphere Application Server auf die schlanke, cloudnative IBM WebSphere Liberty-Runtime-Umgebung in Containern. Obwohl durch die Anzahl der Schritte pro Anwendung der Eindruck erweckt wurde, dass die Aufgabe umfangreich und anspruchsvoll war, nutzte FlowFactor seine Erfahrung, um gemeinsamen Code in vielen der Anwendungen zu identifizieren, was eine Wiederverwendung ermöglichte. Nachdem die erste Anwendung modernisiert worden war, konnte der Rest mit relativ wenig Aufwand erledigt werden.
- IBM WebSphere Liberty bot eine schlanke Runtime-Umgebung, die sich ideal für die Ausführung der modernisierten Anwendungen in einer containerisierten Hybrid-Cloud-Umgebung eignet. (Transformation Advisor, WebSphere Liberty und das traditionelle WebSphere sind alle in der IBM WebSphere Hybrid Edition verfügbar).
- Die Plattform Red Hat® OpenShift® (Link befindet sich außerhalb von ibm.com) und Open Liberty Operator sorgten für die Automatisierung der Bereitstellung und die Orchestrierung von Containern, wodurch die Automatisierung der Workflows zwischen Entwicklungs-, Test- und Produktionsumgebungen rationalisiert wird.
FlowFactor hat auch die Build-Pipeline des Kunden überarbeitet und standardisierte, wiederverwendbare Prozesse eingeführt. Anschließend setzte das Team die Open-Source-Automatisierungssoftware Jenkins in allen Phasen ein, von den ersten Build-Prozessen bis zur Bereitstellung in der Produktionsumgebung. Dank der neuen App-Architektur kann die Jenkins-Software die Bewegung von containerisiertem Code über den gesamten Softwarelebenszyklus hinweg automatisieren.
Aber das alles war nur ein Teil des Projekts.
In öffentlichen Verkehrsmitteln ist es einfach, die Leute an Bord zu bringen. Bei der App-Modernisierung kann dies der schwierige Teil sein. Es ist eine Sache, Technologie zu implementieren, die Prozesse automatisiert. Eine ganz andere Sache ist es, die Menschen dazu zu bringen, ihre Arbeitsweise so zu verändern, dass sie den größten Nutzen aus der Automatisierung ziehen.
FlowFactor musste dem Transportunternehmen helfen, seine Unternehmenskultur auf Automatisierung und DevOps-Praktiken umzustellen.
„Bei großen, eher traditionellen Kunden und Behörden ist das definitiv ein heikles Thema“, erklärt Niemegeerts. Ingenieure und andere, die sich mit den bestehenden Prozessen auskennen, stellen sich ernsthafte Fragen: Wird eine solch drastische Veränderung das zerstören, was eigentlich gut funktioniert? Werden ihre Jobs einfach wegautomatisiert?
„Das Wichtigste dabei ist“, so Niemegeerts, „ein Gleichgewicht zu finden, sodass wir viel automatisieren und trotzdem die ursprünglichen Ingenieure einbeziehen und ihnen erklären können, was gleich bleiben wird. Wir zeigen ihnen, dass ihre Jobs nie wirklich ersetzt werden, sondern sie sich nur verändern. Das Wichtigste dabei ist, dass sie öfter den interessanteren Teil ihrer Arbeit machen und nicht die sich wiederholenden Aufgaben. Das gibt ihnen Zeit, mehr Fehler zu beheben, mehr zu untersuchen und mehr Innovation zu betreiben.“
Niemegeerts fährt fort: „Die Vorteile zeigen sich, sobald wir die ersten Kandidaten für die modernisierten Anwendungen bereitstellen. Es kommt zu schnelleren Bereitstellungszeiten und weniger negativen Auswirkungen. Für die Bereitstellung einer neuen Anwendung sind keine langen Wartungszeiten erforderlich.“
Und DevOps wird zum Mittel, um das Beste aus den schnelleren, flexibleren Prozessen herauszuholen. Hier lernen die zuvor isolierten Teams, ihre Verantwortlichkeiten miteinander in Einklang zu bringen und effizienter und agiler zusammenzuarbeiten. Janssen erklärt das folgendermaßen: „Früher war das Infrastrukturteam für die Verfügbarkeit der Anwendungen zuständig. Wenn das Infrastrukturteam nun feststellt, dass das Entwicklungsteam die Verantwortung dafür übernimmt, Stabilität – und nicht nur neue Funktionen – in die Produktion zu bringen, setzt ein Umdenken ein und der Prozess beginnt wirklich zu laufen und es werden neue Anwendungen bereitgestellt.“
Was die Entwicklungsseite betrifft, sagt Janssen: „Das Entwicklungsteam hat jetzt viel mehr Möglichkeiten. Sie können jetzt bereitstellen, wann sie wollen, in jeder ihrer Umgebungen.“