JBoss EAP-toepassingen migreren naar JBoss EAP op Virtuele Azure-machines

In deze handleiding wordt beschreven waar u rekening mee moet houden wanneer u een bestaande JBoss EAP-toepassing wilt migreren om te worden uitgevoerd op JBoss EAP in Azure-VM's.

Premigratie

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

Definieer wat u bedoelt met een voltooide migratie

Deze handleiding en de bijbehorende Azure Marketplace-aanbiedingen zijn een startpunt om de migratie van uw JBoss EAP-workloads naar Azure te versnellen. Het is belangrijk om het bereik van uw migratie-inspanning te definiëren. Gaat u bijvoorbeeld een strikte lift-and-shift uitvoeren van uw bestaande infrastructuur naar Azure Virtual Machines? Als dat het geval is, komt u misschien in de verleiding om tijdens het migreren enige verbeteringen aan te brengen.

Het is beter om zo dicht mogelijk bij de pure lift-and-shift te blijven, waarmee u de benodigde wijzigingen doorvoert die in deze handleiding worden beschreven. Definieer wat u bedoelt met een voltooide migratie zodat u weet wanneer u deze mijlpaal hebt bereikt. Wanneer u de 'migratie voltooid' hebt bereikt, kunt u een momentopname van uw virtuele machines maken, zoals beschreven in Een momentopname van een virtuele harde schijf maken. Het is veiliger om de verbeteringen uit te voeren nadat u hebt gecontroleerd of u kunt herstellen vanuit uw momentopname. Op die manier kunt u doorgaan zonder bang te zijn dat u de migratievoortgang verliest die u tot nu toe hebt bereikt.

Bepalen of de vooraf gemaakte Azure Marketplace-aanbiedingen een goed uitgangspunt zijn

Red Hat en Microsoft hebben samengewerkt om een set Azure-oplossingssjablonen naar Azure Marketplace te brengen om een solide uitgangspunt te bieden voor migratie naar Azure. U kunt de lijst met aanbiedingen bekijken in de sectie JBoss EAP in Azure Virtual Machines van Red Hat JBoss EAP in Azure.

Zie de quickstart: JBoss EAP Server implementeren op Azure VM met behulp van Azure Portal om een idee te krijgen van de vooraf samengestelde Azure Marketplace-aanbieding.

Als geen van de bestaande aanbiedingen een goed uitgangspunt is, moet u de implementatie handmatig reproduceren met behulp van de resources die beschikbaar zijn in Virtuele Azure-machines. Zie Wat is IaaS voor meer informatie?

Bepalen of de JBoss EAP-versie compatibel is

Uw bestaande JBoss EAP-versie moet compatibel zijn met de versie in de IaaS-aanbiedingen (Infrastructure-as-a-Service). Op de Azure-portalpagina's voor de aanbiedingen ziet u welke versies van JBoss EAP beschikbaar zijn. Zie het JBoss EAP-cluster op VM's in Azure Portal voor meer informatie. Als uw bestaande JBoss EAP-versie niet compatibel is met de versies die beschikbaar zijn in de aanbieding, moet u de implementatie handmatig reproduceren met behulp van Azure IaaS-resources. Zie Wat is IaaS voor meer informatie?

Zorg ervoor dat u over de benodigde licenties beschikt

Wanneer u de vooraf gemaakte Azure Marketplace-aanbiedingen gebruikt, moet u beschikken over huidige licenties van Red Hat voor al uw JBoss EAP-servers. Als u ze naar Azure verplaatst, kunt u kiezen tussen de volgende implementatieopties om aan uw behoeften te voldoen:

  • Implementeer op virtuele Machines met betalen per gebruik in Red Hat Enterprise Linux. Deze optie staat bekend als PAYG.
  • Verplaats uw Red Hat JBoss EAP- en Red Hat Enterprise Linux-abonnementen naar Azure via het Red Hat Cloud Access-programma . Deze optie wordt BYOS genoemd.

In beide opties wordt u gevraagd om de pool-id van Red Hat voor licentieportabiliteit. Zorg ervoor dat u deze id bij de hand hebt voordat u de aanbiedingen probeert.

De vooraf gebouwde Azure Marketplace-aanbiedingen omvatten ondersteuning voor Red Hat Satellite voor licentiebeheer. Zie Red Hat Satellite voor een overzicht van Red Hat Satellite.

Notitie

Als u geen EAP-recht hebt, kunt u zich registreren voor een gratis ontwikkelaarsabonnement via het Red Hat Developer Subscription for Individuals. Noteer de accountgegevens voor gebruik als de RHSM-gebruikersnaam en het RHSM-wachtwoord in de vooraf gedefinieerde Azure Marketplace-aanbiedingen.

De stappen voor het detecteren van uw pool-id worden uitgelegd in de sectie Vereisten in quickstart: JBoss EAP-server implementeren op een virtuele Azure-machine met behulp van de Azure-portal.

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, welk migratiepad u ook kiest. Het is bijvoorbeeld handig bij het selecteren van de grootte van de VM's in uw knooppuntgroep, de hoeveelheid geheugen die door de container moet worden gebruikt en hoeveel CPU-shares de container nodig heeft.

Het is mogelijk om het formaat van knooppuntgroepen in AKS te wijzigen. Zie Het formaat van knooppuntgroepen wijzigen in Azure Kubernetes Service (AKS) voor meer informatie.

Alle geheimen inventariseren

Controleer alle eigenschappen en configuratiebestanden op de productieserver of -servers op geheimen en wachtwoorden. Controleer het bestand jboss-web.xml in uw WAR's. Mogelijk bevinden zich ook in uw toepassing configuratiebestanden met wachtwoorden of referenties.

Overweeg deze geheimen op te slaan in Azure KeyVault. Zie Basisconcepten van Azure Key Vault 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>

Controleren of de ondersteunde Java-versie goed werkt

JBoss EAP op Virtuele Azure-machines vereist een ondersteunde versie van Java. Zie Ondersteunde configuraties in de Red Hat-documentatie voor hulp bij welke versie van de JDK moet worden gebruikt.

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

Externe resources inventariseren

Externe resources, zoals gegevensbronnen, JMS-berichtenbrokers en andere resources, worden ingevoerd via Java Naming and Directory Interface (JNDI). Voor sommige resources kan migratie of herconfiguratie vereist zijn.

Binnen uw toepassing

Inspecteer de WEB-INF-/jboss-web.xml - en/of WEB-INF-/web.xml-bestanden . Zoek naar <Resource>-elementen in het <Context>-element.

Gegevensbronnen

Gegevensbronnen zijn JNDI-resources waarvoor het kenmerk type is ingesteld op javax.sql.DataSource. Documenteer voor elke gegevensbron de volgende informatie:

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

Raadpleeg Over JBoss EAP-gegevensbronnen in de Jboss EAP-documentatie voor meer informatie.

Alle andere externe resources

Het is niet haalbaar om alle mogelijke externe afhankelijkheden in deze handleiding te documenteren. Het is de verantwoordelijkheid van uw team om alle externe afhankelijkheden van uw toepassing te verifiëren na de migratie.

Nagaan of en hoe het bestandssysteem wordt gebruikt

Voor elk gebruik van het bestandssysteem op de toepassingsserver is herconfiguratie vereist of, in zeldzame gevallen, architectuurwijzigingen. JBoss EAP-modules of uw toepassingscode kunnen gebruikmaken van het bestandssysteem. U kunt enkele of alle scenario's die in de volgende secties worden beschreven identificeren.

Statische alleen-lezeninhoud

Als uw toepassing momenteel met statische inhoud werkt, hebt u hiervoor een alternatieve locatie nodig. U kunt statische inhoud verplaatsen naar Azure Blob Storage en Azure CDN toevoegen voor razendsnelle downloads wereldwijd. Zie statische websitehosting in Azure Storage en quickstart: Een Azure-opslagaccount integreren met Azure CDN voor meer informatie. U kunt de statische inhoud ook rechtstreeks implementeren in een app in het Azure Spring Apps Enterprise-abonnement. Zie Statische webbestanden implementeren voor meer informatie.

Dynamisch gepubliceerde statische inhoud

Als uw toepassing statische inhoud toestaat die wordt geüpload/geproduceerd door uw toepassing, maar onveranderbaar is nadat deze is gemaakt, kunt u Azure Blob Storage en Azure CDN gebruiken zoals hierboven beschreven, met een Azure-functie om uploads en CDN-vernieuwing te verwerken. U vindt een voorbeeldimplementatie voor gebruik in Statische inhoud uploaden en via CDN vooraf laden met Azure Functions. U kunt de statische inhoud ook rechtstreeks implementeren in een app in het Azure Spring Apps Enterprise-abonnement. Zie Statische webbestanden implementeren 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, moet 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.

Nagaan of andere JCA-connectors worden gebruikt

Als uw toepassing gebruikmaakt van JCA-connectors, controleert u of u de JCA-connector op JBoss EAP kunt gebruiken. Als u de JCA-connector op JBoss EAP kunt gebruiken, moet u de JAR's toevoegen aan het serverklassepad en de benodigde configuratiebestanden op de juiste locatie in de JBoss EAP-servermappen plaatsen.

Bepalen of JAAS wordt gebruikt

Als uw toepassing gebruikmaakt van JAAS, moet u vastleggen hoe JAAS is geconfigureerd. Als deze een database gebruikt, kunt u deze converteren naar een JAAS-domein op JBoss EAP. Als het een aangepaste implementatie is, moet u controleren of deze kan worden gebruikt in JBoss EAP.

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 het bestand application.xml controleren en de configuratie vastleggen.

Notitie

Als u elk van uw webtoepassingen onafhankelijk wilt kunnen schalen voor een beter gebruik van uw Azure VM-resources, moet u het EAR opsplitsen in afzonderlijke webtoepassingen.

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.

Migratie

Selecteer een aanbieding voor JBoss EAP in Azure Virtual Machines

De aanbiedingen die in de volgende secties worden beschreven, zijn beschikbaar voor JBoss EAP op Azure Virtual Machines.

Tijdens de implementatie van een aanbieding wordt u gevraagd de grootte van de virtuele machine te kiezen voor uw JBoss EAP-serverknooppunten. Het is belangrijk om alle aspecten van de grootte (geheugen, processor, schijf) bij uw keuze voor de VM-grootte te betrekken. Zie Grootten voor Cloud Services (klassiek) voor meer informatie.

JBoss EAP in Virtuele-machineschaalsets van Azure

Virtuele-machineschaalsets bieden groepen met taakverdeling, zeer schaalbare virtuele machines voor workloads van elke grootte. Zie Wat zijn virtuele-machineschaalsets voor meer informatie ?

JBoss EAP op geclusterde virtuele machines

Als u wilt, is een traditioneel cluster met VM's met behulp van het JBoss EAP-clusteringmechanisme geschikt voor een lift-and-shift van implementaties die deze functie al gebruiken. Zie Een Red Hat JBoss EAP 7-cluster configureren in de JBoss EAP-documentatie voor meer informatie. De vooraf samengestelde Azure Marketplace-aanbieding bevat ondersteuning voor de domeinmodus. Zie Domeinbeheer voor een overzicht van EAP-domeinen en -domeinmodus.

JBoss EAP Enkele server

Als u slechts één server nodig hebt, misschien voor testen en evalueren, of voor lichtgewicht workloads, is er een aanbieding die een JBoss EAP-server op één VIRTUELE machine implementeert.

Red Hat Migration Toolkit for Apps

De Red Hat Migration Toolkit for Applications is een gratis extensie voor Visual Studio Code. Deze extensie analyseert uw toepassingscode en configuratie om aanbevelingen te bieden voor migratie naar de cloud vanaf on-premises. Zie het overzicht van Migration Toolkit for Applications voor meer informatie.

De inhoud van deze handleiding helpt u de andere onderdelen van het migratietraject aan te pakken, zoals het kiezen van de juiste VM-grootte en het externaliseren van de sessiestatus.

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: