TDM Consult GmbHBusiness Flies
Zum Inhalt springen

Migration zum Zielbild ​

Die Next-Architektur wird nicht in einem einzigen Austausch eingeführt. Die Migration folgt klar abgrenzbaren Schritten, damit nach jedem Meilenstein ein nachvollziehbarer Zustand erhalten bleibt.

1. Reproduzierbarer Legacy-Build ​

Zunächst wird das bestehende Verhalten ohne funktionale Änderungen mit Maven reproduziert. Das Ergebnis bleibt ein WAR für Tomcat 7 und Java 8. Dieser Stand bildet die technische Vergleichsbasis für alle weiteren Schritte.

2. Entkopplung ​

Fachlogik wird schrittweise von JSF, RichFaces, Jersey-internen Klassen, CDI-Hilfen und direkter Persistenzinfrastruktur getrennt. Gezielte Unit- und Charakterisierungstests sichern besonders kritische Logik ab.

Gleichzeitig werden die API-Grenzen festgelegt, die das Vue-Frontend später verwenden soll.

3. Neues Backend ​

Das Backend wird auf Java 21+, Jakarta und Spring Boot umgestellt. Spring Dependency Injection, Transaktionsmanagement, Persistenz und HTTP-API ersetzen die historischen Laufzeitkomponenten. Das Ergebnis ist ein eigenständiger Backend-Container ohne externen Tomcat.

4. Keycloak ​

Keycloak und Spring Security ersetzen die formularbasierte Tomcat-Authentifizierung. Bestehende Benutzer und Rollen werden kontrolliert zugeordnet. Passwörter werden anschließend nicht mehr durch Business Flies validiert.

5. Flyway ​

Bestehende Datenbanken erhalten eine dokumentierte Baseline. Neue Schemaänderungen werden als unveränderliche Flyway-Migrationen verwaltet. Der historische Bootstrap-Mechanismus wird nach erfolgreicher Übernahme entfernt.

6. Vue-3-Frontend ​

Die Benutzeroberfläche wird nach vollständigen Nutzerabläufen in Vue 3 neu aufgebaut. Während einer begrenzten Übergangszeit können Legacy- und Next-Oberfläche parallel als Referenz dienen. Die neue Spring-Boot-/Jakarta-Anwendung soll die alte JSF-/RichFaces-Oberfläche jedoch nicht dauerhaft betreiben.

7. Delivery und Betrieb ​

Frontend und Backend erhalten getrennte, reproduzierbare Build- und Image-Prozesse. Konfiguration, Secrets, Logging, Metriken und Sicherheitsprüfungen werden auf die neue Laufzeit ausgerichtet.

8. Kubernetes ​

Frontend, Backend und Datenbank werden in die Kubernetes-Betriebsumgebung integriert. Ingress, Services, Speicher, Secrets, Probes, Flyway-Ausführung, Rollout und Rollback werden deklarativ beschrieben und über GitLab gesteuert.

Ablösung des Legacy-Systems ​

Das Legacy-System kann abgeschaltet werden, wenn mindestens folgende Bedingungen erfüllt sind:

  • die freigegebenen Nutzerabläufe stehen im Vue-Frontend zur Verfügung,
  • Backend-API und Datenbankzugriffe verhalten sich fachlich korrekt,
  • bestehende Benutzer und Rollen funktionieren mit Keycloak,
  • das Schema wird vollständig durch Flyway verwaltet,
  • Backup und Restore der Datenbank sind geklärt,
  • Kubernetes-Deployment und Rollback sind dokumentiert,
  • der produktive Betrieb hat den neuen Stand freigegeben.