Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

Kapitel 2. Vorbereitung der Migration

2.1. Vorbereitung im Überblick

In JBoss EAP 7, an effort was made to provide backward compatibility for JBoss EAP 6 applications. However, if your application uses features that were deprecated or functionality that was removed from JBoss EAP 7, you might need to make changes to your application code.

In addition, a number of things have changed in this release that might impact deployment of JBoss EAP 7 applications. It is recommended that you do some research and planning before you attempt to migrate your application.

Wenn Sie sich mit den Änderungen der Funktionen, den Entwicklungsmaterialien und den Tools zur Migration vertraut gemacht haben, können Sie mit der Evaluierung Ihrer Anwendungen und Ihrer Serverkonfiguration beginnen, um bestimmen zu können, welche Änderungen zur Ausführung der JBoss EAP 7 notwendig sind.

2.2. Java EE 7 Features

Java EE 7 enthält viele Verbesserungen, die das Entwickeln und Betreiben funktionsreicher Applikationen in Private und Public Clouds erleichtern. Es beinhaltet neue Features und die neuesten Standards wie HTML5, WebSocket, JSON, Batch und Concurrency Utilities. Aktualisierungen umfassen JPA 2.1, JAX-RS 2.0, Servlet 3.1, Expression Language 3.0, JMS 2.0. JSF 2.2, EJB 3.2, CDI 1.2 und Bean Validation 1.1.

Weitere Information über Java EE 7, einschließlich Tutorials, finden Sie auf der Oracle-Website: Java EE at a Glance

2.3. Was ist neu in JBoss EAP 7?

JBoss EAP 7 enthält einige nennenswerte Aktualisierungen und Verbesserungen im Vergleich zur Vorgängerrelease.

Java EE 7
JBoss EAP 7 ist eine zertifizierte Implementierung von Java EE 7, die sowohl das Web- als auch das Full-Profil abbildet. Es unterstützt zudem die neuesten Versionen von CDI 1.2 und Web Sockets 1.1.
Undertow
Undertow ist der neue schlanke, flexible und leistungsstarke Webserver in JBoss EAP 7, der JBoss Web ersetzt. Er wurde in Java geschrieben und für maximalen Durchsatz und Skalierbarkeit konzipiert. Er unterstützt die neusten Webtechnologien wie z.B. den neuen HTTP/2-Standard.
Apache ActiveMQ Artemis
Apache ActiveMQ Artemis ist der neue, in JBoss EAP 7 integrierte Messaging-Provider. Aufbauend auf einer Codespende von HornetQ, bietet dieses Apache-Unterprojekt herausragende Performance basierend auf einer bewährten, nicht blockierenden Architektur.
IronJacamar 1.2
Die neueste Version von IronJacamar bietet eine stabile und funktionsreiche Unterstützung für JCA und DataSources.
JBossWS 5
The fifth generation of JBossWS is a major leap forward, bringing new features and performance improvements to JBoss EAP 7 web services.
RESTEasy 3
JBoss EAP 7 enthält die neueste Generation von RESTEasy. Es geht über die standardmäßigen Java EE REST APIs (JAX-RS 2.0) hinaus, indem es eine Reihe von hilfreichen Erweiterungen wie z.B. JSON Web Encryption, Jackson, YAML, JSON-P und Jettison bereitstellt.
OpenJDK ORB
JBoss EAP 7 ersetzte die JacORB IIOP Implementierung durch einen Downstream-Zweig der OpenJDK ORB, was zu einer besseren Interoperabilität mit dem JVM ORB und der Java EE RI führt.
Funktionsreiches Clustering
Die Clustering-Unterstützung wurde in JBoss EAP 7 grundlegend überarbeitet und enthält mehrere öffentliche APIs für den Zugriff durch Applikationen.
Port-Reduktion
Aufgrund eines HTTP-Upgrades konnte JBoss EAP 7 fast alle seiner Protokolle mittels Multiplexing in nur zwei HTTP-Ports zusammenfassen: einen Management-Port (9990) und einen Applikations-Port (8080).
Erweiterte Protokollierung
Die Management-API unterstützt nun das Anzeigen und Einsehen der verfügbaren Protokolldateien auf einem Server sowie das Definieren angepasster Formatierungen. Die Einrichtung der Protokollierung im Deployment wurde ebenfalls weit verbessert.

For a complete list of new features, see New Features and Enhancements in the JBoss EAP 7 Release Notes.

2.4. Liste veralteter und nicht unterstützter Features

Before you migrate your application, be aware that some features that were available in previous releases of JBoss EAP might be deprecated or no longer supported.

Der Support wurde aufgrund hoher Wartungskosten, geringem Interesse der Community und besseren Alternativlösungen für manche Technologien entfernt. Die folgenden Funktionen werden in JBoss EAP 7 nicht unterstützt.

EJB Entity Beans
EJB Entity Beans werden nicht mehr unterstützt. Falls Ihre Applikation EJB Entity Beans verwendet, sollten Sie den Code auf JPA umstellen, die eine sehr viel performantere und flexiblere API bietet.
JAX-RPC
Da JAX-WS eine sehr viel exaktere und umfassendere Lösung bietet, sollte Code, der für JAX-RPC geschrieben wurde, auf die Verwendung von JAX-WS umgestellt werden.
JSR-88
Die Java EE Application Deployment API Spezifikation (JSR-88) definierte einen Vertrag, der es Tools verschiedener Anbieter ermöglichen sollte, Applikationen auf jeder beliebigen Java EE Plattform zu konfigurieren und bereitzustellen. Diese Spezifikation fand jedoch keine breite Anwendung. Sie müssen eine andere von JBoss EAP unterstützte Option zur Anwendungsbereitstellung verwenden wie z.B. die Management-Konsole, das Management-CLI, Deployment Scanner oder Maven.
Generischer JMS-Ressourcenadapter
Die Fähigkeit zur Konfiguration eines generischen JMS-Ressourcenadapters zur Verbindung mit einem JMS-Provider wird in JBoss EAP 7 nicht mehr unterstützt.

For a comprehensive list of deprecated and unsupported features, see Unsupported and Deprecated Functionality in the JBoss EAP 7 Release Notes.

2.5. Informationen im JBoss EAP Getting Started Guide

Be sure to review the JBoss EAP Getting Started Guide. It contains the following important information:

  • Download und Installation von JBoss EAP 7
  • Download und Installation von Red Hat JBoss Developer Studio
  • Konfiguration von Maven für Ihre Entwicklungsumgebung, Verwalten von Projektabhängigkeiten und Konfigurieren Ihrer Projekte zur Verwendung der JBoss EAP Bill of Material (BOM) Artefakte
  • Download und Betrieb des im Produkt enthaltenen Quickstart-Beispiels

2.6. Migrationsanalyse und Planung

Each application and server configuration is unique and you must thoroughly understand the components and architecture of the existing application and server platform before you attempt the migration. Your migration plan should include a detailed roadmap for testing and roll out to production that takes into account the following information.

Identifizieren der Verantwortlichen für die Migration
Identifizieren Sie die Interessengruppen, Projektmanager, Entwickler, Administratoren und andere Personen oder Personenkreise, die für die Migration verantwortlich sind.
Überprüfen der Applikationsserverplattform-Konfiguration und -Hardware

Untersuchen Sie die Konfiguration der vorhandenen Applikationsserverplattform, um zu beurteilen, wie sich die veränderten Features in JBoss EAP 7 auswirken. Diese Prüfung sollte die folgenden Aspekte berücksichtigen.

  • Betriebssysteme und Versionen
  • Von den Applikationen verwendete Datenbanken
  • Webserver
  • Sicherheitsarchitektur
  • Anzahl und Art der Prozessoren
  • Menge an Arbeitsspeicher
  • Menge an Festplattenspeicher
  • Migration von Datenbank- oder Messaging-Daten
  • Other components that might be impacted by the migration
Überprüfen der derzeitigen Produktionsumgebung

Sie sollten planen, die Produktionsumgebung so genau wie möglich nachzubilden, um den Migrationsprozess zu testen.

  • Take into account any clustering configurations. See Upgrading a Cluster in the JBoss EAP Patching and Upgrading Guide for more information about how to migrate clusters.
  • Falls Sie derzeit eine umfangreiche verwaltete Domain betreiben, sollten Sie eine schrittweise Migration in Betracht ziehen.
  • Klären Sie, ob Sie Datenbank- oder Messaging-Daten migrieren müssen.
Untersuchen und Verstehen der vorhandenen Applikation

Untersuchen Sie die vorhandene JBoss EAP 6 Applikation gründlich. Machen Sie sich bis ins Detail vertraut mit deren Architektur, Funktionen und Komponenten, einschließlich:

  • JVM-Version
  • Integration mit anderen Red Hat Applikationsserver-Middleware-Komponenten
  • Integration mit proprietärer Software von Drittanbietern
  • Nutzung von nicht weitergeführten Funktionen, die anderweitig ersetzt werden müssen
  • Applikationskonfiguration einschließlich Deployment-Deskriptoren, JNDI, Persistenz, JDBC-Konfiguration und Pooling, JMS-Topics und -Queues sowie Protokollierung

Identifizieren Sie jeglichen inkompatiblen Code oder Konfigurationen, an denen während der Migration zu JBoss EAP 7 Änderungen vorgenommen werden müssen.

Erstellen eines detaillierten Testplans
  • Der Plan sollte Anforderungen für Regressionstests und Annahmekriterien enthalten.
  • Er sollte zudem einen Performancetest enthalten.
  • Richten Sie eine Testumgebung ein, die möglichst genau die Produktionsumgebung nachbildet, um die Migration zu testen, bevor diese in der Produktionsumgebung durchgeführt wird.
  • Entwerfen Sie unbedingt auch einen Plan für Backup und Backout, also für eine Rückkehr zum Status Quo im Falle einer gescheiterten Migration.
Überprüfen der verfügbaren Ressourcen für den Migrationsvorgang
  • Bewerten Sie die Fähigkeiten des Entwicklungsteams und planen Sie gegebenenfalls zusätzliche Fortbildungen oder externe Berater ein.
  • Beachten Sie, dass für das Testen während des Migrationsvorgangs zusätzliche Hardware und andere Ressourcen nötig sind, bis die gesamte Maßnahme abgeschlossen ist.
  • Entscheiden Sie, ob Schulungen nötig sind und fügen Sie diese gegebenenfalls im Zeitplan ein.
Ausführen des Plans
Vereinen Sie die erforderlichen Ressourcen und implementieren Sie den Migrationsplan.
Wichtig

Ehe Sie jegliche Änderungen an Ihrer Applikation vornehmen, sollten Sie unbedingt ein Backup erstellen.

2.7. Sichern wichtiger Daten und Prüfen des Serverstatus

Bevor Sie Ihre Applikation migrieren, sollten Sie sich der folgenden Risiken bewusst sein.

  • The migration might remove temporary folders. Any deployments stored in the data/content/ directory must be backed up prior to the migration and restored after it completes. Otherwise, the server will fail to start due to the missing content.
  • Schließen Sie vor Beginn der Migration alle noch offenen Transaktionen ab und löschen Sie das Transaktionsverzeichnis data/tx-object-store/.
  • Die persistenten Timerdaten in data/timer-service-data müssen auf deren Kompatibilität hin überprüft werden. Untersuchen Sie die deployment-* Dateien in diesem Verzeichnis, um herauszufinden, welche Timer noch in Gebrauch sind.

Vergewissern Sie sich, dass auch die aktuelle Serverkonfiguration und Applikationen vor Beginn der Migration gesichert wurden.

2.8. Migrieren einer RPM-Installation

Wichtig

Es wird nicht unterstützt, mehr als eine RPM-installierte Instanz von JBoss EAP auf einem einzigen Red Hat Enterprise Linux Server auszuführen. Aufgrund dessen empfehlen wir, dass Sie Ihre JBoss EAP Installation auf einen neuen Rechner migrieren, wenn Sie zu JBoss EAP 7 migrieren.

Stellen Sie bei der Migration einer JBoss EAP RPM-Installation von JBoss EAP 6 zu JBoss EAP 7 sicher, dass JBoss EAP 7 auf einem Rechner installiert ist, der keine vorhandene JBoss EAP RPM-Installation hat.

To install JBoss EAP 7 using RPMs, see the JBoss EAP Installation Guide.

The migration advice in this guide also applies to migrating RPM installations of JBoss EAP, but you might need to alter some steps (such as how to start JBoss EAP) to suit an RPM installation compared to a ZIP or installer installation.

2.9. Migrieren von JBoss EAP als Dienst

If you run JBoss EAP 6 as a service, be sure to review Configuring JBoss EAP to Run as a Service in the JBoss EAP Installation Guide for updated configuration instructions for JBoss EAP 7.