Gastbeitrag: Spring Boot Migration als Sprungbrett in die Open Banking-Welt

von Richard Papenfuss | 17. September 2021 | Architektur, Banking, Deutsch, Software Engineering

Richard Papenfuss

Gastautor und Senior Consultant bei adorsys

Seit über zehn Jahren begleitet die adorsys zusammen mit Senacor Technologies die TeamBank AG in der Gestaltung ihrer IT-Landschaft.

Der easyCredit, das Markenprodukt der TeamBank, ist einer der erfolgreichsten Konsumentenkredite in Deutschland und wurde gemeinsam aufgebaut. Ganz nach dem Credo „Der Kredit, der mehr kann“, möchte die TeamBank sich damit zu einem Liquiditätsbegleiter für ihre Kund:innen entwickeln und eine Open Banking-Welt für Ratenkredite gestalten.
Dieser Liquiditätsservice soll in erster Linie über API-Schnittstellen innerhalb ihres Partnernetzwerk der genossenschaftlichen FinanzGruppe Volksbanken Raiffeisenbanken erfolgen.

Liquidität, die immer und überall verfügbar ist

Hier ist vor allem der Kontoblick sehr wichtig. Auf eine schnelle und bequeme Weise können Kund:innen in ihrem Kreditantrag ihre Online-Banking-Zugangsdaten für bestehende Girokonten eingeben und innerhalb weniger Sekunden werden daraufhin die Einnahmen und Ausgaben analysiert sowie die Entscheidung darüber getroffen, wie hoch der angebotene Kreditrahmen sein kann.
Im Zuge unserer technologischen Umsetzung haben wir dafür gemeinsam die HBCI-Schnittstellen abgelöst. Anstelle des alten Schnittstellenstandards können nun schrittweise die wichtigsten Banken, mit dem Ziel einer zukünftigen 100-prozentigen Abdeckung, mit der neuen XS2A-Schnittstelle bedient werden. Natürlich beinhaltet das auch Vorteile aus Business-Perspektive: Die TeamBank ist damit EU-Richtlinien-konform und zukunftsfähig.

Die Einführung der XS2A-Schnittstelle war mit einigen Herausforderungen behaftet. Zum einen liegt es in der Natur, dass es eben nicht nur eine eindeutige XS2A-Schnittstelle gibt, die Banken mit einem Knopfdruck konfigurieren und umstellen könnten. Zum anderen benötigten wir valide und echte Umsatzdaten, die wir aufbereiten, auswerten und testen konnten. Dies war bspw. wichtig, um die Pagination zu testen oder wenn URL-Anbindungen geändert wurden. Mit den von den Banken bereitgestellten Sandbox / Testumgebungen ist das oftmals nicht möglich, da zu große Unterschiede zu den produktiven Schnittstellen vorliegen.

Der nächste Schritt: Die Softwarearchitektur rund um den easyCredit

Die vor ca. zehn Jahren entstandene und auf Basis J2EE / JBoss entwickelte monolithische Plattform der TeamBank, die alle Anwendungen, vom Verkauf und Marktfolge über den Bestand bis zur Anwenderverwaltung und Reporting beinhaltet, war mit dem Markt gewachsen und wurde bisher in sehr erfolgreichen Release-Zyklen 4x pro Jahr weiterentwickelt und produktiv gesetzt.

In Teilbereichen wurden die Anwendung zwar immer wieder erneuert und modernisiert – die Bestandsbearbeitung in Summe 3x – aber aufgrund der monolithischen Struktur waren die Pflege und Wartbartbarkeit doch relativ aufwendig. Jede Produktivsetzung erforderte stets einen vollumfänglichen Test.

Um der dynamischen Entwicklung des Marktes zu begegnen, beschlossen wir daher gemeinsam, die monolithische Anwendung aufzuteilen und die Bestandsbearbeitung in eine moderne Architektur zu überführen.  Wenn die easyCredit-Anwendung so modernisiert würde, dass auf der einen Seite die Verkaufsstrecke bestehen bleibt und sich auf der anderen Seite die Bestandsbearbeitung als eigenständige Anwendung wiederfindet, dann könnten zukünftige neue Anforderungen in jedem Modul flexibel umgesetzt werden.

Umsetzung der Modularisierung

Zunächst hieß es erst einmal, zusammen mit den Kollegen von Senacor und der TeamBank die Konzepte und Modularisierungsstrategien hierfür zu entwerfen. Große Fragen wie „Was bedeutet es, eine Anwendung nach Spring Boot zu migrieren?“ „Wie können wir sowohl die Anwendung in Verkauf und Bestand zerschneiden als auch den Technologie-Stack für die Bestandsanwendung ändern?“ „Wie ist das realisierbar?“ standen im Raum.
Im Zuge dessen setzen wir ein Kernteam aus 23 Projektmitgliedern auf (davon 14 aus der adorsys), die als Verantwortliche die Projektleitung, das Release Management, die Business Analyse und alle Teile der Entwicklung übernahmen. Hinzu kam ein internes IT-Team der TeamBank, das sich um den Aufbau der Infrastruktur und die Job-Steuerung kümmerte.

Die Wahl fiel auf einen auch in der TeamBank bereits mehrfach eingesetzten und erprobten Technologie-Stack: eine Spring Boot 2.2-basierte Anwendung mit Angular JS-Frontend, die in einem Openshift-Cluster (Openshift 3.11) betrieben wird.

Das Projekt war geprägt durch eine agile Vorgehensweise nach Scrum in zweiwöchigen Sprints, mit Jira Boards und Testen durch Pilotgruppen. Innerhalb von nur sechs Monaten haben wir es dadurch geschafft, die komplexe und mehrschichtige Anwendung zu modularisieren und modernisieren.
Dies erfolgte über zwei Phasen: Während in der ersten Stufe Abhängigkeiten zwischen „Verkauf“ und „Bestand“ aufgelöst und interne REST-Schnittstellen geschaffen wurden, gab es eine Zwischenstufe, die die grundlegende Code-Basis inklusive der Anbindung vieler externer System von JEE auf Spring Boot überführte. Alle JEE-Annotationen wurden durch gleichwertige Spring Boot-Annotationen ersetzt, Interceptoren wurden durch Aspekte (aspectj) ersetzt, das Transaktionshandling wurde angepasst sowie viele kleinere Modifikationen durchgeführt. Die seit Jahren tragfähige, serviceorientierte Architektur erwies sich als sehr stabil.

Migration auf Spring Boot

Im nächsten Release wurden dann die Module und Services Schritt für Schritt migriert und nach Abschluss der jeweiligen Sprints auch sofort getestet. Die Reihenfolge orientierte sich dabei an den fachlichen Modulen (Stammdaten-Prozesse, Produktanlage, Ratenplanänderungs-Prozesse, Kreditkarten-Prozesse usw.).
Tests liefen über mehrere Umgebungen hinweg einschließlich EWU/Commit, Integration, Qualitätssicherungsumgebung und in Produktion. In sich abgeschlossene fachliche Prozesse wurden frühzeitig und teils parallel zur bestehenden Anwendung bis in die Produktion überführt.

Die Migration wurde weitgehend im gleichen git-Repository vorgenommen, so dass parallel sogar im kleineren Umfang eine fachliche Weiterentwicklung ermöglicht wurde. Erst im letzten Schritt wurde die Anwendung in ein eigenes Repository umgezogen.
Den Abschluss in die erfolgreiche Überführung in die Spring Boot-Welt beinhaltete am Ende die Freischaltung aller Anwender.

Durch die agile Vorgehensweise sowie die durchgängige Anwendung der gängigen und bekannten Mechanismen wie Continuous Integration, Aufbau von Deployment Pipelines in mehreren Jenkins-Instanzen können nun Change-Requests und Bugfixes in wesentlich kürzeren Zyklen umgesetzt und in die Produktion gebracht werden.

Unser Fazit

Im Ökosystem der TeamBank dreht sich alles um die Frage, wie sie ihren Kund:innen immer, sofort und über jeden Zugangsweg Liquidität anbieten können. Um das Kundenerlebnis zu verbessern, gestaltet die TeamBank den Kreditprozess so einfach und transparent wie möglich.
Die Modularisierung war ein großer und wichtiger Schritt für die Etablierung dieses Liquiditätsservices. Die neue Architektur bietet eine zukunftssichere Plattform, die außerdem die stetige Weiterentwicklung des wertvollen Software Assets „Bestand“ ermöglicht. Zudem wird die Time-to-Market signifikant verkürzt, so dass Change Requests und Bugfixes in wesentlich kürzeren Zyklen umgesetzt und in die Produktion gebracht werden können.

Übersicht Architektur (vorher und nachher)

Für das Projektteam war es eine große Herausforderung, sowohl die Architektur zu entflechten als zeitgleich auch den Technologie-Stack zu ändern. Hierbei half die jahrelange vertrauensvolle Zusammenarbeit zwischen TeamBank, Senacor und adorsys und das historisch gewachsene Wissen und Verständnis. Spontane technische Hindernisse konnten wir als eingespieltes Team gemeinsam im normalen Sprint-Rhythmus stets lösen.

Im großen Open Banking-Bild arbeiten wir derzeit weiterhin daran, den Bestand in ein agiles Projekt umzubauen. Den Release-Takt erhöhen wir mittels Testautomatisierung und Modularisierung, mit dem Ziel, alle sechs Wochen in Produktion zu gehen.
Das Knowhow, das wir aus dem easyCredit-Verkauf erworben haben, übertragen wir nun auf die neuen Verkaufsstrecken wie bspw. dem Ratenkreditverkauf, der für Neu-Kund:innen und Partnerbanken mittels APIs geöffnet werden soll.

Mit der Finanzreserve und der API-Anbindung an Dritte geht die TeamBank neue Finanzwege. Den Kund:innen bietet die Mini-Open-Banking-Welt mehr Convenience und einen deutlichen Mehrwert der sofortigen digitalen Kreditzusage sowie einer Finanzreserve bei ihrer Bank des Vertrauens.

Was „Open Banking ready“ sein für eine Bank, für die interne IT, aber auch für die Organisationskultur bedeutet, erzählt  Alexander Rudat, Leiter Software-Entwicklung sowie stellvertretender Bereichsleiter bei der TeamBank  im Interview mit dem IT Finanzmagazin.
Wer mehr über die Senacor Perspektive auf das Thema erfahren möchte, findet den Beitrag von Rolf Kintscher und Jürgen Brandt auf dem Blog von adorsys.

Die Ergebnisse unserer Partnerschaft mit Senacor Technologies und TeamBank AG zeichnen sich durch eine langjährige, erfolgreiche und vertrauensvolle Zusammenarbeit aus. Wir freuen uns auf die weiteren Herausforderungen, die wir als Kollegen und Freunde gemeinsam meistern, um neue Technologien vorantreiben.