Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Weg von Java EE - So gelingt die Migration

Weg von Java EE - So gelingt die Migration

Der aktuelle Zustand von Java EE lässt sich leider nur so beschreiben: es ist tot oder liegt bestenfalls im Sterben.

Für die meisten Unternehmen, die Java EE nutzen, steht somit ein umfangreiches Migrationsprojekt am Horizont.

Was ist jedoch im Rahmen einer Migration zu beachten? Wie bringt man das Legacy-System in einen Zustand, der eine Ablösung überhaupt ermöglicht? Was gibt es für typische Fallstricke? Wie kann der Betrieb während der Migration gesichert werden? Wie wird sie in Einklang mit der Weiterentwicklung des Legacy-Systems gebracht?

In diesem auf Erfahrungen aus verschiedenen Migrationsprojekten basierenden Vortrag wird ein praxisnahes Vorgehensmodell illustriert, das eine nahtlose Migration weg von JEE-Application-Servern ermöglicht.

Christian Nockemann

January 23, 2020
Tweet

More Decks by Christian Nockemann

Other Decks in Programming

Transcript

  1. 14.10.2020 © viadee 2020 2 Christian Nockemann Senior Berater (bei

    der viadee seit 2009) Kernthemen: Software-Architektur, Enterprise Java Email: [email protected] Twitter: @nockemannc
  2. WIE KONNTE ES DAZU KOMMEN? EINE TRAGÖDIE IN DREI AKTEN

    [2] AKT 1: Oracle kauft Sun AKT 2: Oracle übergibt Java EE an die Eclipse Foundation AKT 3: Oracle verweigert die Übergabe des javax-Namespaces
  3. 9 14.10.2020 © viadee 2020 Zielgerichtete Dokumentation: „Welche anderen Komponenten

    sind von diesem Migrationsschritt betroffen?“ Wer? Mit wem? Wie?
  4. Sicherung des Betriebs !!! Kleine Schritte Integrations- tests Rückwärts- kompatibilität

    NOTWENDIGE BEDINGUNG GRUNDVORAUSSETZUNG FÜR EINEN ERFOLG 13 14.10.2020 © viadee 2018
  5. 16 14.10.2020 © viadee 2018 AUFTEILUNG IN API UND IMPL

    ABHÄNGIGKEITEN ENTWIRREN Shop Lager
  6. 17 14.10.2020 © viadee 2018 AUFTEILUNG IN API UND IMPL

    ABHÄNGIGKEITEN ENTWIRREN Shop Lager Impl Impl API API runtime
  7. 20 14.10.2020 © viadee 2018 WO GEHÖREN WELCHE KLASSEN HIN?

    MEHRSTUFIGER SHARED KERNEL Neue Laufzeitumgebung (Java 11+) Stamm -daten InEx- Kasso Alte Laufzeitumgebung (Java 6) Shop Lager Shared Kernel (Java 6 compliant) Core API Gift- schrank
  8. Ausgangszustand Alte Laufzeitumgebung 24 14.10.2020 © viadee 2018 Shop Lager

    Stamm- daten Reposi- tory Schritt 1 Alte Laufzeitumgebung Shop Lager Stamm- daten Reposi- tory RMI RMI Neue Laufzeitumgebung Stamm- daten* HTTP RMI RMI RMI HTTP API API API API Reposi- tory* API STRANGLER PATTERN SCHRITTWEISE MIGRATION
  9. Ausgangszustand Alte Laufzeitumgebung 25 14.10.2020 © viadee 2018 Shop Lager

    Stamm- daten Reposi- tory Schritt 2 Alte Laufzeitumgebung Shop Lager Stamm- daten Reposi- tory RMI RMI Neue Laufzeitumgebung Stamm- daten* RMI RMI RMI HTTP Lager* API API API API Reposi- tory* API API STRANGLER PATTERN SCHRITTWEISE MIGRATION
  10. Ausgangszustand Alte Laufzeitumgebung 26 14.10.2020 © viadee 2018 STRANGLER PATTERN

    SCHRITTWEISE MIGRATION Shop Lager Stamm- daten Reposi- tory Schritt 3 Alte Laufzeitumgebung Shop Lager Stamm- daten Reposi- tory RMI RMI Neue Laufzeitumgebung Stamm- daten* RMI RMI RMI Lager* Reposi- tory* API API API API Shop*
  11. Ausgangszustand Alte Laufzeitumgebung 27 14.10.2020 © viadee 2018 STRANGLER PATTERN

    SCHRITTWEISE MIGRATION Shop Lager Stamm- daten Reposi- tory Zielzustand Neue Laufzeitumgebung Stamm- daten* RMI RMI RMI Lager* Reposi- tory* API API Shop*
  12. Legacy-Umfeld 28 14.10.2020 © viadee 2018 IM DETAIL ALT: AUFRUF

    IM JEE-APPLICATION SERVER Shop Lager Impl Impl API API runtime
  13. Neue Laufzeitumg. Legacy-Umfeld 29 14.10.2020 © viadee 2018 Shop Lager

    Fassade Impl API HTTP Controller IM DETAIL NEU: AUFRUF PER HTTP
  14. Neue Laufzeitumg. Legacy-Umfeld 30 14.10.2020 © viadee 2018 Shop Lager

    Schalter Impl API HTTP Controller SICHERHEITSSCHALTER ALS RÜCKFALLLÖSUNG BEI PROBLEMEN Impl
  15. Neue Laufzeitumg. Legacy-Umfeld 31 14.10.2020 © viadee 2018 Shop Lager

    AUS Impl API HTTP Controller SICHERHEITSSCHALTER ALS RÜCKFALLLÖSUNG BEI PROBLEMEN Impl
  16. Neue Laufzeitumg. Legacy-Umfeld 32 14.10.2020 © viadee 2018 Shop Lager

    AN Impl API HTTP Controller SICHERHEITSSCHALTER ALS RÜCKFALLLÖSUNG BEI PROBLEMEN Impl
  17. DIE „ALTE“ KENNT DIE „NEUE“ WELT ABER NICHT UMGEKEHRT! 33

    14.10.2020 © viadee 2018 Neue Laufzeitumgebung Stamm- daten Liefer- anten Kunden -portal Alte Laufzeitumgebung Shop Lager
  18. 34 14.10.2020 © viadee 2018 FALLSTRICKE LERNEN AUS SCHMERZEN Transaktionen

    CI- Konfiguration Jahres- arbeiten Exception Handling Seiteneffekt- behaftete Methoden Versteckte/ Unbekannte Komponenten Localhost- Aufrufe Inkompatible Third-Party Libraries
  19. 35 14.10.2020 © viadee 2018 ZUSAMMENFASSUNG VORBEREITUNGEN IN DER LEGACY-UMGEBUNG

    1. Dokumentation • Zielgerichtet • EIP-Notation 2. In API/Impl aufteilen • Nur API referenzieren • Impl kann so migriert werden 3. Shared-Kernel extrahieren • Ermöglicht die Aufteilung • Nach Abschluss wieder entfernen
  20. 36 14.10.2020 © viadee 2018 ZUSAMMENFASSUNG MIGRATION EINZELNER KOMPONENTEN 1.

    Impl migrieren • Per HTTP-Controller bereitstellen 2. HTTP-Call aus Legacy-Umgeb. • Ehemalige Impl als Fassade nutzen • Sicherheitschalter nutzen 3. Rückbau • Nach erfolgreicher Migration HTTP- Controller entfernen
  21. WARUM SPRING BOOT? EINE AUSWAHL VON KRITERIEN EINER „TWELVE FACTOR

    APP“ [3] Abhängigkeiten explizit deklarieren Konfiguration in Umgebungsvariablen speichern Unterstützungsdienste als angehängte Ressourcen behandeln Anwendungen als zustandslose Prozesse ausführen Dienste durch das Binden eines Ports exportieren Durch unabhängige Prozesse skalieren Robuster mit Wegwerfprozessen Entwicklung und Produktion ähnlich halten
  22. 43 14.10.2020 © viadee 2018 • de.xyz • domain •

    KundeAggregat • kundendaten • AdresseVO • KundeVO • application • KundeAggregatDtoMapper • KundeRepositoryInterface • dto • KundeDTO • KundeAppService • infrastructure • persistence • KundeRepository • entity • Kunde ONION ARCHITECTURE BEISPIEL PACKAGE-STRUKTUR
  23. ONION ARCHITECTURE RINGE STATT SCHICHTEN 44 14.10.2020 © viadee 2018

    UI Geschäftslogik Domänenmodell Infrastruktur UI / Infrastruktur Applikationsservices Domänenservices Domänenmodell IOC