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.