JBoss EAP-toepassingen migreren naar Azure Red Hat OpenShift

In deze handleiding wordt beschreven waar u rekening mee moet houden wanneer u een bestaande JBoss EAP-toepassing wilt migreren om uit te voeren op Azure Red Hat OpenShift.

Premigratie

Voltooi voordat u begint de evaluatie- en inventarisstappen die in de volgende secties worden beschreven om een geslaagde migratie te garanderen.

Zorg ervoor dat het doel het juiste doel is voor uw migratie-inspanning

De eerste stap bij een geslaagde migratie van een JBoss EAP-toepassing naar Azure is het selecteren van het meest geschikte migratiedoel. JBoss EAP wordt goed uitgevoerd op virtuele Azure-machines (VM's) of Azure Red Hat OpenShift.

Het VM-doel is de eenvoudigste keuze, omdat deze het meest lijkt op een on-premises implementatie. De beheer- en implementatie-ervaring voor virtuele machines is vergelijkbaar met wat u on-premises hebt. Door VM's te selecteren, kunt u modernisering uitstellen.

Red Hat OpenShift brengt geteste en vertrouwde services samen om de wrijving van het ontwikkelen, moderniseren, implementeren, uitvoeren en beheren van toepassingen te verminderen. Azure Red Hat OpenShift is gebouwd op Kubernetes. Azure Red Hat OpenShift biedt een consistente ervaring in de openbare cloud, on-premises, hybride cloud of edge-architectuur.

Als het minimaliseren van de wijziging de belangrijkste factor is voor uw migratie-inspanning, kunt u een migratie op basis van een VM overwegen. In dit geval raadpleegt u JBoss EAP-toepassingen migreren naar JBoss EAP op Azure-VM's. Als u het converteren van uw toepassing kunt tolereren om te worden uitgevoerd in Red Hat OpenShift om de runtimekosten te verlagen, kunt u overwegen om een migratie op basis van Azure Red Hat OpenShift te maken. In dit geval gaat u verder met JBoss EAP-toepassingen migreren naar JBoss EAP in Azure Red Hat OpenShift. Zie Vergelijking: JBoss EAP en JBoss EAP voor OpenShift voor meer informatie over de verschillen tussen JBoss EAP en JBoss EAP voor OpenShift.

Bepalen of de vooraf gemaakte Azure Marketplace-aanbieding een goed uitgangspunt is

Bepaal eerst dat Azure Red Hat OpenShift het juiste implementatiedoel is. Bepaal vervolgens of de vooraf gemaakte Azure Marketplace-aanbieding al dan niet een goed uitgangspunt is. Houd rekening met de volgende punten over de vooraf gemaakte Azure Marketplace-aanbieding:

  • Red Hat en Microsoft hebben deze aanbieding gemaakt om JBoss EAP snel in te richten in Azure Red Hat OpenShift.
  • Op hoog niveau automatiseert de aanbieding de volgende stappen voor u.
    • Installeer de EAP-operator in Azure Red Hat OpenShift.
    • Bouw een toepassingsinstallatiekopieën met behulp van een eap-s2i-buildsjabloon. Zie OpenJDK 11 source-to-image gebruiken voor OpenShift voor meer informatie over Source-to-image (S2I).
    • Implementeer de Java-toepassing met behulp van de EAP-operator. Zie de referentiedocumentatie voor EAP Operator bij Red Hat voor meer informatie.

Als u de vooraf gemaakte Azure Marketplace-aanbieding niet gebruikt, moet u leren hoe u de EAP-operator rechtstreeks kunt gebruiken. Het beheersen van de operator valt buiten het bereik van dit artikel. De volledige documentatie voor de EAP-operator is beschikbaar op Red Hat.

De rest van deze sectie bevat enkele overwegingen voor het kiezen van de vooraf gemaakte Azure Marketplace-aanbieding of het rechtstreeks gebruiken van de operator.

Bepalen of de JBoss EAP-versie compatibel is

Uw bestaande JBoss EAP-versie moet een van de versies zijn die door de operator worden ondersteund. Zie versiecompatibiliteit en ondersteuning in de Red Hat-documentatie voor meer informatie.

Servercapaciteit inventariseren

Documenteer de hardware (geheugen, CPU, schijf) van de huidige productieserver(s) en het gemiddelde en piekaantal aanvragen en het resourcegebruik. U hebt deze informatie nodig, ongeacht het migratiepad dat u kiest. De volgende aspecten en meer profiteren van een gedetailleerde inventarisatie van servercapaciteit.

  • Om u te helpen bij het selecteren van de grootte van de VM's in uw knooppuntgroep.
  • Om inzicht te hebben in de hoeveelheid geheugen die door de container moet worden gebruikt.
  • Als u wilt weten hoeveel CPU-shares de container nodig heeft.

Het is mogelijk om het formaat van knooppuntgroepen in Azure Red Hat OpenShift te wijzigen. Zie Het formaat van een cluster wijzigen in de Red Hat-documentatie voor meer informatie.

Alle geheimen inventariseren

Voor de ontwikkeling van 'configuratie als een service'-technologieën zoals Azure Key Vault, was er geen goed gedefinieerd concept voor 'geheimen'. In plaats daarvan had u een set uiteenlopende configuratie-instellingen die functioneerden als wat we nu 'geheimen' noemen. Met app-servers zoals JBoss EAP bevinden deze geheimen zich in veel verschillende configuratiebestanden en configuratiearchieven. Controleer alle eigenschaps- en configuratiebestanden op de productieserver(s) op geheimen en wachtwoorden. Zorg ervoor dat u configuratiebestanden controleert, zoals custom-config.xml of jboss-web.xml in uw toepassingen. Mogelijk bevinden zich ook in uw toepassing configuratiebestanden met wachtwoorden of referenties. Zie Basisconcepten van Azure Key Vault voor meer informatie.

Zodra u een solide inventarisatie van geheimen hebt, raadpleegt u de documentatie van de EAP-operator met betrekking tot geheimen. Zie Een geheim maken in de Red Hat-documentatie voor meer informatie.

Alle certificaten inventariseren

Documenteer alle certificaten die worden gebruikt voor openbare SSL-eindpunten. U kunt alle certificaten op de productieserver(s) weergeven door de volgende opdracht uit te voeren:

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

Zodra u een solide inventarisatie van certificaten hebt, kunt u deze configureren in Azure Red Hat OpenShift. Zie TLS-configuratie in OpenShift Container Platform(replace) in de Red Hat-documentatie voor meer informatie.

Controleren of de ondersteunde Java-versie goed werkt

Alle migratiepaden voor JBoss EAP naar Azure Red Hat OpenShift vereisen een specifieke Java-versie, die per pad varieert. U moet controleren of uw toepassing correct kan worden uitgevoerd met behulp van die ondersteunde versie.

Notitie

Deze validatie is vooral belangrijk als uw huidige server wordt uitgevoerd in een niet-ondersteunde JDK (zoals Oracle JDK of IBM OpenJ9).

Meld u aan bij uw productieserver en voer de volgende opdracht uit om uw huidige Java-versie te verkrijgen:

java -version

JNDI-resources inventariseren

Inventariseer alle JNDI-resources. Gegevensbronnen zoals databases kunnen bijvoorbeeld een gekoppelde JNDI-naam hebben waarmee JPA op de juiste wijze exemplaren van EntityManager aan een bepaalde database kan binden. Zie Datasource Management in de Red Hat-documentatie voor meer informatie over JNDI-resources en -databases. Andere JNDI-gerelateerde resources, zoals ActiveMQ Artemis-berichtbrokers, kunnen migratie of herconfiguratie vereisen. Zie De configuratie van Messaging configureren in de Red Hat-documentatie voor meer informatie over de Configuratie van ActiveMQ Artemis.

Bepalen of sessiereplicatie wordt gebruikt

Als uw toepassing afhankelijk is van sessiereplicatie, met of zonder Infinispan, hebt u drie opties:

  • Infinispan werkt goed in virtuele Azure-machines, maar als u een profiel gebruikt dat mogelijkheden voor hoge beschikbaarheid biedt, moet u rekening houden met de JGroups-configuratie . Bepaal of uw systeem werkt als een beheerd domein of zelfstandige server.
    • Als deze zich in een beheerd domein bevinden, hebben de profielen voor hoge of volledige beschikbaarheid te maken met JGroups.
    • Als u zich op een zelfstandige server bevindt, worden de configuratiebestanden standalone-ha.xml of standalone-full-ha.xml met JGroups uitgevoerd.
    • Microsoft Azure biedt geen ondersteuning voor JGroups-detectieprotocollen die zijn gebaseerd op UDP multicast. Zie JBoss EAP Hoge beschikbaarheid gebruiken in Microsoft Azure in de Red Hat-documentatie voor meer informatie.
  • Herstructureer uw toepassing om een database te gebruiken voor sessiebeheer.
  • Herstructureer uw toepassing om de sessie te externaliseren naar Azure Redis Service. Zie Azure Cache voor Redis voor meer informatie.

Voor al deze opties is het een goed idee om te leren hoe JBoss EAP HTTP Session State Replication doet. Zie Voor meer informatie over HTTP-sessiereplicatie in de Red Hat-documentatie.

Gegevensbronnen documenteren

Als uw toepassing gebruikmaakt van databases, moet u de volgende informatie vastleggen:

  • Wat is de naam van de gegevensbron?
  • Wat is de configuratie van de verbindingsgroep?
  • Waar vind ik het JAR-bestand van het JDBC-stuurprogramma?

Zie Datasource Management in de Red Hat-documentatie voor meer informatie over JDBC-stuurprogramma's in JBoss EAP.

Bepalen of JBoss EAP is aangepast

Bepaal welke van de volgende aanpassingen zijn uitgevoerd en leg vast wat er is gebeurd.

  • Zijn de opstartscripts gewijzigd? Dergelijke scripts omvatten host, eap_env, zelfstandig en domein.
  • Zijn er specifieke parameters aan de JVM doorgegeven?
  • Zijn er JAR's toegevoegd aan het classpath van de server?

Deze aanpassingen moeten worden vastgelegd in de containerinstallatiekopie die wordt uitgevoerd in Azure Red Hat OpenShift. Zie JBoss EAP configureren voor OpenShift Image for Your Java Application in de Red Hat-documentatie voor meer informatie.

Bepalen of er een verbinding met on-premises services is vereist

Als voor uw toepassing toegang nodig is tot een van uw on-premises services, moet u een van de connectiviteitsservices van Azure inrichten. Zie Een oplossing kiezen voor het verbinden van een on-premises netwerk met Azure voor meer informatie. U moet uw toepassing ook herstructureren voor het gebruik van openbaar beschikbare API's in uw on-premises resources.

Bepalen of Java Message Service-wachtrijen (JMS) of -onderwerpen in gebruik zijn

Als uw toepassing JMS-wachtrijen of onderwerpen gebruikt, kunt u deze migreren naar een extern gehoste JMS-server. Azure Service Bus en het Advanced Message Queueing Protocol (AMQP) kunnen een uitstekende migratiestrategie zijn wanneer er gebruik wordt gemaakt van JMS. Raadpleeg JMS gebruiken met Azure Service Bus en AMQP 1.0 voor meer informatie.

Als er met JMS permanente archieven zijn geconfigureerd, moet u de configuratie hiervan vastleggen en na de migratie toepassen.

Zie Berichten configureren in de Red Hat-documentatie voor meer informatie.

Bepalen of u uw eigen aangepaste, gedeelde Java EE-bibliotheken gebruikt

Als u de functie Gedeelde Java EE-bibliotheek gebruikt, hebt u twee opties:

  • Herstructureer uw toepassingscode om alle afhankelijkheden van uw bibliotheken te verwijderen en de functionaliteit in plaats daarvan rechtstreeks in uw toepassing op te nemen.
  • Voeg de bibliotheken toe aan het klassepad van de server.

U kunt deze bibliotheken afhandelen met behulp van dezelfde technieken als beschreven in de sectie Bepalen of JBoss EAP is aangepast .

Bepalen of uw toepassing code bevat die specifiek is voor het besturingssysteem

Als uw toepassing code bevat met afhankelijkheden van het hostbesturingssysteem, moet u de toepassing herstructureren om die afhankelijkheden te verwijderen. Zo moet u mogelijk de / of \ vervangen in bestandssysteempaden met File.Separator of Paths.get.

Azure Red Hat OpenShift wordt uitgevoerd op OpenShift 4 met Red Hat Enterprise Linux CoreOS (RHCOS) als besturingssysteem voor alle besturingsvlak- en werkknooppunten. Elke besturingssysteemspecifieke code moet compatibel zijn met RHCOS.

Bepalen of uw toepassing bestaat uit meerdere WAR's

Als uw toepassing bestaat uit meerdere WAR's, moet u deze allemaal behandelen als afzonderlijke toepassingen en deze handleiding voor al deze WAR's doorlopen.

Bepalen of uw toepassing is verpakt als een EAR

Als uw toepassing is verpakt als een EAR-bestand, moet u hun configuraties vastleggen.

Alle externe processen en daemons identificeren die worden uitgevoerd op de productieservers

U moet alle processen die buiten de toepassingsserver worden uitgevoerd, zoals controledaemons, verwijderen of naar een andere locatie migreren.

Account voor taakverdelingsvereisten

De beste manier om rekening te houden met taakverdeling is door de App Gateway-integratie te gebruiken. Zie Wat is Azure-toepassing Gateway voor meer informatie?

Migratie

In de stappen in deze sectie wordt ervan uitgegaan dat uw analyse ertoe heeft geleid dat u besluit om de vooraf gemaakte Azure Marketplace-aanbieding te gebruiken.

De aanbieding inrichten

Zie JBoss EAP in Azure Red Hat OpenShift om de aanbieding te openen in Azure Portal. Selecteer Maken en volg de instructies in de aanbieding.

Uw toepassingen migreren

De aanbieding ondersteunt het S2I-proces (Source-to-Image) voor het bouwen en uitvoeren van een Java-toepassing op de JBoss EAP voor OpenShift-installatiekopieën. Red Hat heeft een voorbeeld dat laat zien hoe u dit handmatig kunt doen als u deze later zelf wilt implementeren. Zie hoofdstuk 2 voor meer informatie. Bouw en voer een Java-toepassing uit op de JBoss EAP voor OpenShift-installatiekopie in de Red Hat-documentatie.

Postmigratie

Nadat u de migratiedoelstellingen hebt bereikt die u hebt gedefinieerd in de stap Voorafgaand aan de migratie, voert u een aantal end-to-end-acceptatietests uit om te controleren of alles werkt zoals verwacht. Zie de volgende artikelen voor informatie over enkele mogelijke verbeteringen na de migratie: