Migrieren von JBoss EAP-Anwendungen zu JBoss EAP auf Azure VMs

In diesem Handbuch wird beschrieben, was Sie beachten sollten, wenn Sie eine vorhandene JBoss EAP-Anwendung migrieren möchten, die auf JBoss EAP in Azure-VMs ausgeführt werden soll.

Vor der Migration

Führen Sie vor Beginn einer Migration die in den folgenden Abschnitten beschriebenen Schritte zur Bewertung und Bestandsermittlung aus, um eine erfolgreiche Migration zu gewährleisten.

Definieren der Bedeutung von „Migration abgeschlossen“

Dieser Leitfaden und die entsprechenden Azure Marketplace-Angebote sind ein Ausgangspunkt, um die Migration Ihrer JBoss EAP-Workloads zu Azure zu beschleunigen. Es ist wichtig, den Umfang Ihres Migrationsablaufs zu definieren. Führen Sie beispielsweise einen strikten „Lift & Shift“-Vorgang aus Ihrer vorhandenen Infrastruktur auf Azure Virtual Machines durch? Wenn ja, kann es verlockend sein, während der Migration auch nach dem Motto „Lift & Improve“ vorzugehen.

Es ist aber besser, möglichst nah am „Lift & Shift“-Ansatz zu bleiben und die erforderlichen Änderungen vorzunehmen, die in diesem Leitfaden beschrieben werden. Definieren Sie, was genau mit „Migration abgeschlossen“ gemeint ist, damit Sie wissen, wann dieser Meilenstein erreicht ist. Wenn Sie ihren "Migrationsvorgang abgeschlossen" erreicht haben, können Sie eine Momentaufnahme Ihrer virtuellen Computer ausführen, wie unter Erstellen einer Momentaufnahme einer virtuellen Festplatte beschrieben. Es ist sicherer, die Verbesserungen zu erledigen, nachdem Sie überprüft haben, dass Sie ihre Momentaufnahme erfolgreich wiederherstellen können. Auf diese Weise können Sie fortfahren, ohne Angst zu verlieren, den Migrationsfortschritt, den Sie bisher erreicht haben.

Ermitteln, ob die vorgefertigten Azure Marketplace-Angebote ein guter Ausgangspunkt sind

Red Hat und Microsoft haben eine Gruppe von Azure-Lösungsvorlagen in Azure Marketplace bereitgestellt, um einen soliden Ausgangspunkt für die Migration zu Azure zu bieten. Die Liste der Angebote finden Sie im Abschnitt "JBoss EAP" auf virtuellen Azure-Computern von Red Hat JBoss EAP in Azure.

Um ein Gefühl für das vorgefertigte Azure Marketplace-Angebot zu erhalten, finden Sie in der Schnellstartanleitung: Bereitstellen von JBoss EAP-Server auf azure VM mit dem Azure-Portal.

Wenn keines der vorhandenen Angebote ein guter Ausgangspunkt ist, müssen Sie die Bereitstellung mithilfe der in Azure Virtual Machines verfügbaren Ressourcen manuell reproduzieren. Weitere Informationen finden Sie unter Was ist IaaS?

Ermitteln, ob die JBoss EAP-Version kompatibel ist

Ihre vorhandene JBoss EAP-Version muss mit der Version in den IaaS-Angeboten (Infrastructure-as-a-Service) kompatibel sein. Die Azure-Portal Seiten für die Angebote zeigen, welche Versionen von JBoss EAP verfügbar sind. Weitere Informationen finden Sie im Angebot von JBoss EAP Cluster on VMs auf dem Azure-Portal. Wenn Ihre vorhandene JBoss EAP-Version nicht mit den im Angebot verfügbaren Versionen kompatibel ist, müssen Sie die Bereitstellung mithilfe von Azure IaaS-Ressourcen manuell reproduzieren. Weitere Informationen finden Sie unter Was ist IaaS?

Stellen Sie sicher, dass Sie über die erforderlichen Lizenzen verfügen.

Wenn Sie die vorgefertigten Azure Marketplace-Angebote verwenden, müssen Sie über aktuelle Lizenzen von Red Hat für alle Ihre JBoss EAP-Server verfügen. Wenn Sie sie nach Azure verschieben, können Sie zwischen den folgenden Bereitstellungsoptionen wählen, um Ihre Anforderungen zu erfüllen:

  • Stellen Sie auf virtuellen Red Hat Enterprise Linux-Pay-as-you-go-Computern bereit. Diese Option wird als PAYG bezeichnet.
  • Verschieben Sie Ihre Red Hat JBoss EAP- und Red Hat Enterprise Linux-Abonnements in Azure über das Red Hat Cloud Access-Programm . Diese Option wird als BYOS bezeichnet.

In beiden Optionen werden Sie für die Lizenzübertragbarkeit nach der Pool-ID von Red Hat gefragt. Stellen Sie sicher, dass Sie diese ID zur Hand haben, bevor Sie die Angebote ausprobieren.

Zu den vorgefertigten Azure Marketplace-Angeboten gehören Unterstützung für Red Hat Satellite für die Lizenzverwaltung. Eine Übersicht über Red Hat Satellite finden Sie unter Red Hat Satellite.

Hinweis

Wenn Sie keine EAP-Berechtigung haben, können Sie sich über Red Hat Entwicklerabonnements für Einzelpersonen für ein kostenloses Entwicklerabonnement registrieren. Notieren Sie sich die Kontodetails für die Verwendung als RHSM-Benutzername und RHSM-Kennwort in den vordefinierten Azure Marketplace-Angeboten.

Die Schritte zum Ermitteln Ihrer Pool-ID werden im Abschnitt "Voraussetzungen" in der Schnellstartanleitung erläutert: Bereitstellen von JBoss EAP-Server auf einem virtuellen Azure-Computer mithilfe der Azure-Portal.

Inventarisieren der Serverkapazität

Dokumentieren Sie die Hardware (Arbeitsspeicher, CPU, Datenträger) der aktuellen Produktionsserver und die durchschnittliche und maximale Anzahl von Anforderungen und die Ressourcennutzung. Sie benötigen diese Informationen unabhängig vom gewählten Migrationspfad. Es ist beispielsweise hilfreich, die Auswahl der Größe der virtuellen Computer in Ihrem Knotenpool, die Menge des vom Container verwendeten Arbeitsspeichers und die Anzahl der CPU-Freigaben des Containers zu unterstützen.

Es ist möglich, die Größe von Knotenpools in AKS zu ändern. Informationen dazu finden Sie unter Ändern der Größe von Knotenpools in Azure Kubernetes Service (AKS).To learn how, see Resize node pools in Azure Kubernetes Service (AKS).

Bestand: Alle Geheimnisse

Überprüfen Sie alle Eigenschaften und Konfigurationsdateien auf dem Produktionsserver oder auf Servern auf geheime Schlüssel und Kennwörter. Überprüfen Sie unbedingt die jboss-web.xml Datei in Ihren WARs. Unter Umständen finden Sie in Ihrer Anwendung auch Konfigurationsdateien mit Kennwörtern oder Anmeldeinformationen.

Es empfiehlt sich gegebenenfalls, diese Geheimnisse in Azure Key Vault zu speichern. Weitere Informationen finden Sie unter Grundlegende Konzepte von Azure Key Vault.

Inventarisieren aller Zertifikate

Dokumentieren Sie alle Zertifikate, die für öffentliche SSL-Endpunkte verwendet werden. Sie können alle Zertifikate auf den Produktionsservern anzeigen, indem Sie den folgenden Befehl ausführen:

keytool -list -v -keystore <path to keystore>

Überprüfen, ob die unterstützte Java-Version richtig funktioniert

JBoss EAP auf Azure-VMs erfordert eine unterstützte Version von Java. Anleitungen dazu, welche Version des JDK verwendet werden soll, finden Sie in der Red Hat-Dokumentation unter "Unterstützte Konfigurationen ".

Hinweis

Diese Überprüfung ist besonders wichtig, wenn Ihr aktueller Server auf einem nicht unterstützten JDK (z. B. Oracle JDK oder IBM OpenJ9) ausgeführt wird.

Melden Sie sich an Ihrem Produktionsserver an, und führen Sie den folgenden Befehl aus, um Ihre aktuelle Java-Version zu ermitteln:

java -version

Bestand: Externe Ressourcen

Externe Ressourcen, z. B. Datenquellen, JMS-Nachrichtenbroker und andere, werden per JNDI (Java Naming and Directory Interface) eingefügt. Für einige dieser Ressourcen ist unter Umständen eine Migration oder erneute Konfiguration erforderlich.

Innerhalb Ihrer Anwendung

Untersuchen Sie die Datei WEB-INF/jboss-web.xml und/oder WEB-INF/web.xml. Suchen Sie im <Context>-Element nach <Resource>-Elementen.

Datenquellen

Datenquellen sind JNDI-Ressourcen, für die das type-Attribut auf javax.sql.DataSource festgelegt ist. Dokumentieren Sie für jede Datenquelle die folgenden Informationen:

  • Wie lautet der Name der Datenquelle?
  • Wie ist der Verbindungspool konfiguriert?
  • Wo ist die JAR-Datei mit den JDBC-Treibern zu finden?

Weitere Informationen finden Sie in der JBoss EAP-Dokumentation unter Informationen zu JBoss EAP-Datenquellen.

Alle anderen externen Ressourcen

Es würde den Rahmen dieses Leitfadens sprengen, jede mögliche externe Abhängigkeit zu dokumentieren. Ihr Team ist dafür verantwortlich, zu überprüfen, dass nach der Migration die Anforderungen aller externen Abhängigkeiten Ihrer Anwendung abgedeckt werden können.

Ermitteln, ob und wie das Dateisystem verwendet wird

Jede Verwendung des Dateisystems auf dem Anwendungsserver erfordert eine Neukonfiguration oder in seltenen Fällen Architekturänderungen. JBoss-EAP-Module oder Ihr Anwendungscode können das Dateisystem verwenden. Unter Umständen kann es zu den Szenarien kommen, die in den folgenden Abschnitten beschrieben sind.

Schreibgeschützter statischer Inhalt

Falls mit Ihrer Anwendung derzeit statischer Inhalt bereitgestellt wird, benötigen Sie dafür einen anderen Speicherort. Sie können beispielsweise erwägen, statischen Inhalt in Azure Blob Storage zu verschieben und Azure CDN hinzuzufügen, um global eine sehr hohe Downloadgeschwindigkeit zu erzielen. Weitere Informationen finden Sie unter Hosten von statischen Websites in Azure StorageundSchnellstart: Integrieren eines Azure-Speicherkontos in Azure CDN. Sie können den statischen Inhalt auch direkt in einer App im Azure Spring Apps Enterprise-Plan bereitstellen. Weitere Informationen finden Sie unter Bereitstellen statischer Webdateien.

Dynamisch veröffentlichter statischer Inhalt

Wenn Ihre Anwendung statischen Inhalt zulässt, der von Ihrer Anwendung hochgeladen bzw. produziert wird, nach der Erstellung aber unveränderlich ist, können Sie Azure Blob Storage und Azure CDN wie oben beschrieben nutzen. Hierbei können Sie auch eine Azure-Funktion zum Verarbeiten von Uploads und der CDN-Aktualisierung verwenden. Eine entsprechende Beispielimplementierung finden Sie unter Hochladen und CDN-Vorabladen von statischem Inhalt mit Azure Functions. Sie können den statischen Inhalt auch direkt in einer App im Azure Spring Apps Enterprise-Plan bereitstellen. Weitere Informationen finden Sie unter Bereitstellen statischer Webdateien.

Ermitteln, ob eine Verbindung mit der lokalen Umgebung erforderlich ist

Wenn Ihre Anwendung auf Ihre lokalen Dienste zugreifen muss, müssen Sie einen der Konnektivitätsdienste von Azure bereitstellen. Weitere Informationen finden Sie unter Auswählen einer Lösung zum Herstellen einer Verbindung zwischen einem lokalen Netzwerk und Azure. Alternativ müssen Sie Ihre Anwendung so umgestalten, dass öffentlich zugängliche APIs genutzt werden, die von Ihren lokalen Ressourcen verfügbar gemacht werden.

Ermitteln, ob JMS-Warteschlangen oder -Themen (Java Message Service) verwendet werden

Wenn Ihre Anwendung JMS-Warteschlangen oder -Themen nutzt, müssen diese zu einem extern gehosteten JMS-Server migriert werden. Azure Service Bus und das Advanced Message Queuing Protocol (AMQP) können bei Verwendung von JMS eine hervorragende Migrationsstrategie sein. Weitere Informationen finden Sie unter Verwenden von Java Message Service (JMS) mit Azure Service Bus und AMQP 1.0.

Wenn beständige JMS-Speicher konfiguriert wurden, müssen Sie die zugehörige Konfiguration erfassen und nach dem Migrationsvorgang anwenden.

Ermitteln, ob JCA-Connectors genutzt werden

Falls Ihre Anwendung JCA-Connectors verwendet, sollten Sie sich vergewissern, dass der JCA-Connector in JBoss EAP genutzt werden kann. Wenn der JCA-Connector in JBoss EAP genutzt werden kann, müssen Sie die JAR-Dateien dem Serverklassenpfad hinzufügen und die erforderlichen Konfigurationsdateien in den JBoss EAP-Serververzeichnissen platzieren, damit der Connector verfügbar ist.

Ermitteln, ob JAAS verwendet wird

Wenn für Ihre Anwendung JAAS verwendet wird, müssen Sie erfassen, wie JAAS konfiguriert wird. Sofern hierfür eine Datenbank verwendet wird, können Sie sie in eine JAAS-Domäne unter JBoss EAP konvertieren. Falls es sich um eine benutzerdefinierte Implementierung handelt, müssen Sie überprüfen, ob sie unter JBoss EAP verwendet werden kann.

Ermitteln, ob Ihre Anwendung aus mehreren WAR-Dateien besteht

Besteht Ihre Anwendung aus mehreren WAR-Dateien, sollten Sie die einzelnen WAR-Dateien als separate Anwendungen behandeln und für jede Datei diese Anleitung ausführen.

Ermitteln, ob Ihre Anwendung als EAR-Datei gepackt ist

Ist Ihre Anwendung als EAR-Datei gepackt, untersuchen Sie die Datei application.xml, und erfassen Sie die Konfiguration.

Hinweis

Wenn Sie in der Lage sein möchten, jede Ihrer Webanwendungen unabhängig zu skalieren, um Ihre Azure VM-Ressourcen besser zu nutzen, sollten Sie das EAR in separate Webanwendungen aufteilen.

Ermitteln aller externen Prozesse und Daemons, die auf den Produktionsservern ausgeführt werden

Werden einige Ihrer Prozesse außerhalb des Anwendungsservers ausgeführt (z. B. die Überwachung von Daemons), müssen Sie sie beseitigen oder zu einem anderen Ort migrieren.

Migration

Auswählen eines JBoss EAP auf virtuellen Azure-Computern

Die in den folgenden Abschnitten beschriebenen Angebote sind für JBoss EAP auf virtuellen Azure-Computern verfügbar.

Während der Bereitstellung eines Angebots werden Sie aufgefordert, die Größe des virtuellen Computers für Ihre JBoss EAP-Serverknoten auszuwählen. Es ist wichtig, bei der Auswahl der VM-Größe alle Größenaspekte (Arbeitsspeicher, Prozessor, Datenträger) zu berücksichtigen. Weitere Informationen finden Sie unter "Größen für Cloud Services (klassisch)".

JBoss EAP auf Azure Virtual Machine Scale Sets

Skalierungssätze für virtuelle Computer bieten Gruppen mit lastenausgleichen, hoch skalierbaren virtuellen Computern für Workloads beliebiger Größe. Weitere Informationen finden Sie unter Was sind Skalierungssätze für virtuelle Computer?

JBoss EAP auf gruppierten virtuellen Computern

Wenn Sie es vorziehen, eignet sich ein herkömmlicher VMs-Cluster mit dem JBoss EAP-Clusteringmechanismus für einen Lift und eine Umstellung von Bereitstellungen, die dieses Feature bereits verwenden. Weitere Informationen finden Sie unter Configuring a Red Hat JBoss EAP 7 Cluster in der JBoss EAP-Dokumentation. Das vorgefertigte Azure Marketplace-Angebot umfasst Unterstützung für den Do Standard modus. Eine Übersicht über EAP-Do Standard s and do Standard-Modus finden Sie unter "Do Standard Management".

JBoss EAP Single Server

Wenn Sie nur einen einzelnen Server benötigen, z. B. zum Testen und Auswerten oder für einfache Workloads, gibt es ein Angebot, das einen einzelnen JBoss-EAP-Server auf einem einzelnen virtuellen Computer bereitstellt.

Red Hat Migration Toolkit für Apps

Das Red Hat Migration Toolkit for Applications ist eine kostenlose Erweiterung für Visual Studio Code. Diese Erweiterung analysiert Ihren Anwendungscode und Ihre Konfiguration, um Empfehlungen für die Migration von der lokalen Bereitstellung in die Cloud bereitzustellen. Weitere Informationen finden Sie in der Übersicht über das Migrations-Toolkit für Applikationen.

Der Inhalt dieses Leitfadens hilft Ihnen, die anderen Komponenten der Migrationsreise zu beheben, z. B. die Auswahl der richtigen VM-Größe und das Externalisieren des Sitzungszustands.

Nach der Migration

Nachdem Sie die Migrationsziele erreicht haben, die Sie unter Vor der Migration definiert haben, führen Sie einige End-to-End-Akzeptanztests durch. Hiermit soll sichergestellt werden, dass alles wie gewünscht funktioniert. Informationen zu möglichen Verbesserungen nach der Migration finden Sie in den folgenden Artikeln: