Migrera JBoss EAP-program till JBoss EAP på virtuella Azure-datorer

Den här guiden beskriver vad du bör känna till när du vill migrera ett befintligt JBoss EAP-program som ska köras på JBoss EAP på virtuella Azure-datorer.

Före migrering

För att säkerställa en lyckad migrering slutför du de utvärderings- och inventeringssteg som beskrivs i följande avsnitt innan du börjar.

Definiera vad du menar vid "slutförd migrering"

Den här guiden och motsvarande Azure Marketplace-erbjudanden är en startpunkt för att påskynda migreringen av dina JBoss EAP-arbetsbelastningar till Azure. Det är viktigt att vi definierar din migreringsansträngnings omfattning. Genomför du exempelvis en strikt Lift and Shift-migrering från din befintliga infrastruktur till Azure Virtual Machines? Om så är fallet är du kanske frestad av att arbeta med ”lift and improve”-metoden när du migrerar.

Det är bättre att hålla sig så nära ren ”Lift and Shift”-lösning som möjligt, med tanke på de nödvändiga ändringar som beskrivs i den här vägledningen. Definiera vad du menar vid "slutförd migrering", så att du vet när du har nått denna milstolpe. När du har nått "migreringen är klar" kan du ta en ögonblicksbild av dina virtuella datorer enligt beskrivningen i Skapa en ögonblicksbild av en virtuell hårddisk. Det är säkrare att göra förbättringarna när du har verifierat att du kan återställa från ögonblicksbilden. På så sätt kan du fortsätta utan att vara rädd för att förlora de migreringsframskridanden som du har uppnått hittills.

Ta reda på om de fördefinierade Azure Marketplace-erbjudandena är en bra utgångspunkt

Red Hat och Microsoft har samarbetat för att ta en uppsättning Azure-lösningsmallar till Azure Marketplace för att ge en bra startpunkt för migrering till Azure. Du kan se listan över erbjudanden i avsnittet JBoss EAP on Azure Virtual Machines i Red Hat JBoss EAP på Azure.

Information om hur du får en känsla för det fördefinierade Azure Marketplace-erbjudandet finns i Snabbstart: Distribuera JBoss EAP Server på en virtuell Azure-dator med Hjälp av Azure-portalen.

Om inget av de befintliga erbjudandena är en bra startpunkt måste du återskapa distributionen för hand med hjälp av de resurser som är tillgängliga i Azure Virtual Machines. Mer information finns i Vad är IaaS?

Avgöra om JBoss EAP-versionen är kompatibel

Din befintliga JBoss EAP-version måste vara kompatibel med versionen i IaaS-erbjudandena (infrastructure-as-a-service). Azure-portalsidorna för erbjudandena visar vilka versioner av JBoss EAP som är tillgängliga. Mer information finns i JBoss EAP-kluster på virtuella datorer på Azure-portalen. Om din befintliga JBoss EAP-version inte är kompatibel med de versioner som är tillgängliga i erbjudandet måste du återskapa distributionen för hand med hjälp av Azure IaaS-resurser. Mer information finns i Vad är IaaS?

Se till att du har nödvändiga licenser

När du använder de fördefinierade Azure Marketplace-erbjudandena måste du ha aktuella licenser från Red Hat för alla dina JBoss EAP-servrar. Om du flyttar dem till Azure kan du välja mellan följande distributionsalternativ för att uppfylla dina behov:

  • Distribuera på red hat enterprise linux betala per användning virtuella datorer. Det här alternativet kallas PAYG.
  • Flytta dina Red Hat JBoss EAP- och Red Hat Enterprise Linux-prenumerationer till Azure via Red Hat Cloud Access-programmet . Det här alternativet kallas BYOS.

För licensportabilitet i båda alternativen uppmanas du att ange pool-ID:t från Red Hat. Kontrollera att du har det här ID:t till hands innan du provar erbjudandena.

De fördefinierade Azure Marketplace-erbjudandena omfattar stöd för Red Hat Satellite för licenshantering. En översikt över Red Hat Satellite finns i Red Hat Satellite.

Kommentar

Om du inte har en EAP-behörighet kan du registrera dig för en kostnadsfri utvecklarprenumeration via Red Hat Developer-prenumerationen för enskilda användare. Skriv ned kontoinformationen för användning som RHSM-användarnamn och RHSM-lösenord i de fördefinierade Azure Marketplace-erbjudandena.

Stegen för att identifiera ditt pool-ID beskrivs i avsnittet Krav i Snabbstart: Distribuera JBoss EAP Server på en virtuell Azure-dator med hjälp av Azure-portalen.

Lagerserverkapacitet

Dokumentera maskinvaran (minne, CPU, disk) för de aktuella produktionsservrarna och det genomsnittliga och högsta antalet begäranden och resursanvändningen. Du behöver denna information oavsett vilken migrerings väg du väljer. Det är till exempel användbart att hjälpa dig att välja storlek på de virtuella datorerna i nodpoolen, mängden minne som ska användas av containern och hur många CPU-resurser containern behöver.

Det går att ändra storlek på nodpooler i AKS. Mer information finns i Ändra storlek på nodpooler i Azure Kubernetes Service (AKS).

Inventera alla hemligheter

Kontrollera alla egenskaper och konfigurationsfiler på produktionsservern eller -servrarna efter hemligheter och lösenord. Se till att kontrollera jboss-web.xml filen i dina WARs. Konfigurationsfiler som innehåller lösenord eller autentiseringsuppgifter kan också finnas i ditt program.

Överväg att lagra dessa hemligheter i Azure KeyVault. Mer information finns i Grundläggande koncept för Azure Key Vault.

Inventera alla certifikat

Dokumentera alla certifikat som används för offentliga SSL-slutpunkter. Du kan visa alla certifikat på produktionsservrarna genom att köra följande kommando:

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

Validera att Java-versionen som stöds fungerar som den ska

JBoss EAP på virtuella Azure-datorer kräver en version av Java som stöds. Vägledning om vilken version av JDK som ska användas finns i Konfigurationer som stöds i Red Hat-dokumentationen.

Kommentar

Den här verifieringen är särskilt viktig om den aktuella servern körs på en JDK som inte stöds (till exempel Oracle JDK eller IBM OpenJ9).

Du får den aktuella Java-versionen genom att logga in på din produktionsserver och köra följande kommando:

java -version

Inventera externa resurser

Externa resurser som datakällor, JMS asynkron meddelandekö och andra matas via Java-namngivnings- och kataloggränssnittet (JNDI). Vissa resurser kan kräva migrering eller omkonfiguration.

I ditt program

Granska FILERNA WEB-INF/jboss-web.xml och/eller WEB-INF/web.xml. Leta efter <Resource>-element i <Context>-elementet.

Datakällor

Datakällor är JNDI-resurser med attributet type inställt på javax.sql.DataSource. För varje datakälla, dokumenterar du följande information:

  • What is the datakällans namn?
  • Vad är konfigurationen för anslutningspoolen?
  • Var hittar jag JAR-filen för JDBC-drivrutinen?

Mer information finns i Om JBoss EAP-datakällor i dokumentationen till JBoss EAP.

Alla andra externa resurser

Det är inte möjligt att dokumentera alla möjliga externa beroenden i den här guiden. Det är ditt teams ansvar att kontrollera att du kan uppfylla varje externt beroende för ditt program efter migreringen.

Kontrollera om och hur filsystemet används

All användning av filsystemet på programservern kräver omkonfiguration eller i sällsynta fall arkitektoniska ändringar. JBoss EAP-moduler eller programkoden kan använda filsystemet. Du kanske identifierar några eller alla scenarier som beskrivs i följande avsnitt.

Skrivskyddat statiskt innehåll

Om ditt program för tillfället hanterar statiskt innehåll behöver du en alternativ plats för det. Du kanske kan tänka dig att flytta det statiska innehållet till Azure Blob Storage och lägga till Azure CDN för blixtsnabba nedladdningar globalt. Mer information finns i Värd för statiska webbplatser i Azure Storage och snabbstart: Integrera ett Azure Storage-konto med Azure CDN. Du kan också distribuera det statiska innehållet direkt till en app i Azure Spring Apps Enterprise-planen. Mer information finns i Distribuera webbstatiska filer.

Dynamiskt publicerat statiskt innehåll

Om ditt program tillåter att statiskt innehåll laddas upp/skapas av ditt program, men inte kan ändras efter att det har skapats, så kan du använda Azure Blob Storage och Azure CDN enligt beskrivningen ovan, med en Azure-funktion för hantering av överföringar och CDN-uppdateringar. Vi har tillhandahållit en exempelimplementering som du kan använda i Överföra och CDN-för inläsa statiskt innehåll med Azure Functions. Du kan också distribuera det statiska innehållet direkt till en app i Azure Spring Apps Enterprise-planen. Mer information finns i Distribuera webbstatiska filer.

Avgör om en anslutning till lokalt behövs

Om ditt program behöver har åtkomst till någon av dina lokala tjänster måste du etablera en av Azures anslutningstjänster. Mer information finns i Välj en lösning för att ansluta ett lokalt nätverk till Azure. Alternativt måste du omstrukturera programmet för att använda allmänt tillgängliga API:er som dina lokala resurser exponerar.

Ta reda på om JMS-köer eller -ämnen (Java Message Service) används

Om ditt program använder JMS-köer eller -ämnen måste du migrera dem till en extern JMS-server. Azure Service Bus och AMQP (Advanced Message Queueing Protocol) kan vara en bra migreringsstrategi för de som använder JMS. Mer information finns i Använda JMS med Azure Service Bus och AMQP 1.0.

Om JMS beständiga arkiv har konfigurerats måste du avbilda konfigurationen och tillämpa den efter migreringen.

Kontrollera om JCA-anslutningsprogram används

Om ditt program använder JCA-anslutningsappar kontrollerar du att du kan använda JCA-anslutningsappen på JBoss EAP. Om du kan använda JCA-anslutningsappen på JBoss EAP måste du lägga till JAR:erna i serverklasssökvägen och placera de nödvändiga konfigurationsfilerna på rätt plats i JBoss EAP-serverkatalogerna.

Ta reda på om JAAS används

Om ditt program använder JAAS måste du avbilda hur JAAS har konfigurerats. Om den använder en databas kan du konvertera den till en JAAS-domän på JBoss EAP. Om det är en anpassad implementering måste du verifiera att den kan användas på JBoss EAP.

Ta reda på om ditt program består av flera WAR

Om ditt program består av flera WAS så ska du behandla vart och ett av dem som separarata program och gå igenom den här guiden för varje.

Ta reda på om ditt program är paketerat som EAR

Om ditt program är paketerat som en EAR-fil kontrollerar du filen application.xml och avbildar konfigurationen.

Kommentar

Om du vill kunna skala var och en av dina webbprogram oberoende av varandra för bättre användning av dina resurser för virtuella Azure-datorer bör du dela upp EAR i separata webbprogram.

Identifiera alla externa processer och daemons som körs på produktionsservrarna

Om du har processer som körs utanför programservern, som övervaknings-daemons så behöver du eliminera dem eller migrera dem någon annanstans.

Migrering

Välj ett JBoss EAP på Azure Virtual Machines-erbjudande

De erbjudanden som beskrivs i följande avsnitt är tillgängliga för JBoss EAP på Azure Virtual Machines.

Under distributionen av ett erbjudande uppmanas du att välja storleken på den virtuella datorn för dina JBoss EAP-servernoder. Det är viktigt att du tar hänsyn till alla storleksaspekter (minne, processor, disk) när du väljer virtuell datorstorlek. Mer information finns i Storlekar för Cloud Services (klassisk).

JBoss EAP på Skalningsuppsättningar för virtuella Azure-datorer

Vm-skalningsuppsättningar tillhandahåller grupper med belastningsutjämning, mycket skalbara virtuella datorer för arbetsbelastningar av valfri storlek. Mer information finns i Vad är VM-skalningsuppsättningar?

JBoss EAP på klustrade virtuella datorer

Om du vill är ett traditionellt kluster med virtuella datorer som använder JBoss EAP-klustringsmekanismen lämplig för en lift and shift från distributioner som redan använder den här funktionen. Mer information finns i Konfigurera ett Red Hat JBoss EAP 7-kluster i JBoss EAP-dokumentationen. Det fördefinierade Azure Marketplace-erbjudandet innehåller stöd för domänläge. En översikt över EAP-domäner och domänläge finns i Domänhantering.

JBoss EAP – enskild server

Om du bara behöver en enskild server, kanske för testning och utvärdering, eller för lätta arbetsbelastningar, finns det ett erbjudande som distribuerar en JBoss EAP-enskild server på en enda virtuell dator.

Red Hat Migration Toolkit för appar

Red Hat Migration Toolkit for Applications är ett kostnadsfritt tillägg för Visual Studio Code. Det här tillägget analyserar programkoden och konfigurationen för att ge rekommendationer för migrering till molnet från en lokal plats. Mer information finns i Översikt över Migreringsverktyg för program.

Innehållet i den här guiden hjälper dig att hantera de andra komponenterna i migreringsresan, till exempel att välja rätt VM-storlek och externalisera sessionstillståndet.

Efter migreringen

När du har nått de migreringsmål som du definierade i steget före migreringen, så utför några godkännandetester från slutpunkt till slutpunkt för att se att allt fungerar som förväntat. Information om några potentiella förbättringar efter migreringen finns i följande artiklar: