Migrieren von JBoss EAP-Anwendungen zu JBoss EAP auf Azure VMs
In diesem Leitfaden wird beschrieben, was Sie beachten sollten, wenn Sie eine vorhandene JBoss EAP-Anwendung zur Ausführung auf JBoss EAP in Azure-VMs migrieren möchten.
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 guter Ausgangspunkt für die Beschleunigung der Migration Ihrer JBoss EAP-Workloads für Azure. 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. Nach dem Erreichen des Zustands „Migration abgeschlossen“ können Sie eine Momentaufnahme Ihrer virtuellen Computer erstellen. Dies ist unter Erstellen einer Momentaufnahme einer virtuellen Festplatte beschrieben. Es ist sicherer, die Verbesserungen durchzuführen, nachdem Sie verifziert haben, dass Sie erfolgreich aus Ihrer Momentaufnahme wiederherstellen können. Auf diese Weise können Sie fortfahren, ohne befürchten zu müssen, den bisher erzielten Migrationsfortschritt zu verlieren.
Ermitteln, ob die vordefinierten Azure Marketplace-Angebote ein guter Ausgangspunkt sind
Red Hat und Microsoft haben als Partner zusammengearbeitet, um auf dem Azure Marketplace einige Azure-Lösungsvorlagen bereitzustellen und so einen guten Ausgangspunkt für die Migration zu Azure zu schaffen. Die Liste der Angebote finden Sie im Abschnitt JBoss EAP" auf virtuellen Azure-Computern des Artikels Red Hat JBoss EAP in Azure.
Um ein Gefühl für das vorgefertigte Azure Marketplace-Angebot zu erhalten, lesen Sie Schnellstartanleitung: Bereitstellen eines JBoss EAP-Clusters auf virtuellen Azure-Computern (VMs).
Falls keines der vorhandenen Angebote ein guter Ausgangspunkt ist, müssen Sie die Bereitstellung mit den 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-Portalseiten 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 die Anforderungen zu erfüllen:
- Stellen Sie virtuelle Maschinen auf Red Hat Enterprise Linux mit nutzungsbasierter Bezahlung bereit. Diese Option wird als PAYG bezeichnet.
- Verschieben Sie Ihre Red Hat JBoss EAP- und Red Hat Enterprise Linux-Abonnements über das Red Hat Cloud Access-Programm zu Azure. 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 vordefinierten Azure Marketplace-Angeboten gehört die Unterstützung von 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. Speichern Sie 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: Bereitstellen eines JBoss EAP-Clusters auf virtuellen Azure-Computern (VMs) erläutert.
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. Dies ist beispielsweise hilfreich beim Auswählen der Größe von VMs in Ihrem Knotenpool, der Speichermenge für den Container und der Anzahl von benötigten CPU-Freigaben für den Container.
Es ist möglich, die Größe von Knotenpools in AKS zu ändern. Weitere Informationen finden Sie unter Ändern der Größe von Knotenpools in Azure Kubernetes Service (AKS).
Bestand: Alle Geheimnisse
Überprüfen Sie alle Eigenschaften und Konfigurationsdateien auf den Produktionsservern oder Servern auf Geheimnisse und Kennwörter. Überprüfen Sie die Datei jboss-web.xml in Ihren WAR-Dateien. 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
Für JBoss EAP auf Azure-VMs wird eine unterstützte Version von Java benötigt. Anleitungen dazu, welche Version des JDK verwendet werden soll, finden Sie 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
Für jegliche Nutzung des Dateisystems auf dem Anwendungsserver sind erneute Konfigurationen oder in selteneren Fällen auch Architekturänderungen erforderlich. Das Dateisystem kann von JBoss EAP-Modulen oder von Ihrem Anwendungscode genutzt werden. 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.
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.
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 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 1.1 mit Azure Service Bus Standard 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
Falls Sie Ihre Webanwendungen einzeln skalieren möchten, um eine bessere Nutzung Ihrer Azure VM-Ressourcen zu erzielen, sollten Sie die EAR-Datei in separate Webanwendungen unterteilen.
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-Angebots für Azure Virtual Machines
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 Clouddienste (klassisch).
JBoss EAP auf Azure Virtual Machine Scale Sets
Über Virtual Machine Scale Sets werden Gruppen mit virtuellen Computern mit Lastenausgleich und hoher Skalierbarkeit bereitgestellt, die für Workloads aller Größen geeignet sind. Weitere Informationen finden Sie unter Was sind Virtual Machine Scale Sets?.
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 in der JBoss EAP-Dokumentation unter Clustering in Webanwendungen . Das vorgefertigte Azure Marketplace-Angebot umfasst Unterstützung für den Domänenmodus. Eine Übersicht über EAP-Domänen und den Domänenmodus finden Sie unter Domänenverwaltung.
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 for 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 adressieren, 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:
Verwenden Sie Azure Storage zum Bereitstellen von statischem Inhalt auf den virtuellen Computern. Weitere Informationen finden Sie unter Anfügen oder Trennen eines Datenträgers für einen virtuellen Lab-Computer in Azure DevTest Labs.
Stellen Sie Ihre Anwendungen mit Azure DevOps in Ihrem migrierten JBoss EAP-Cluster bereit. Weitere Informationen finden Sie unter Erste Schritte mit der Azure DevOps-CLI.
Verbessern Sie Ihre Netzwerktopologie mit erweiterten Diensten für den Lastenausgleich. Weitere Informationen finden Sie unter Verwenden von Lastenausgleichsdiensten in Azure.
Verwenden Sie verwaltete Azure-Identitäten, um Geheimnisse zu verwalten und Azure-Ressourcen den rollenbasierten Zugriff zuzuweisen. Weitere Informationen finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.
Integrieren Sie Java EE-Authentifizierung und -Autorisierung mit Microsoft Entra ID. Weitere Informationen finden Sie unter Integrieren von Microsoft Entra ID in Anwendungen – Erste Schritte.
Verwenden Sie Azure Key Vault zum Speichern von Informationen, die als „Geheimnisse“ dienen. Weitere Informationen finden Sie unter Grundlegende Konzepte von Azure Key Vault.