Migrera WebSphere-program till Azure Virtual Machines
Den här guiden beskriver vad du bör känna till när du vill migrera ett befintligt websfärprogramserver (WAS) som ska köras på virtuella Azure-datorer. En översikt över tillgängliga traditionella WAS-lösningar på Azure Marketplace finns i Vad är lösningar för att köra IBM WebSphere-serien med produkter i Azure?
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 traditionella WAS-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 slutfört migreringen kan du ta en ögonblicksbild av dina virtuella datorer enligt beskrivningen i Skapa en ögonblicksbild av en virtuell hårddisk. När du har kontrollerat att du kan återställa från ögonblicksbilden kan du göra förbättringarna utan att vara rädd för att förlora migreringsframställningen som du har uppnått hittills.
Se till att målet är rätt mål för migreringsarbetet
Det första steget i en lyckad migrering av ett WAS-program till Azure är att välja det lämpligaste migreringsmålet.
WAS-traditionella körningar bra på Azure Virtual Machines. Målet för den virtuella datorn (VM) är det enklaste valet, eftersom det närmast liknar en lokal distribution. Den administrativa upplevelsen och distributionen för virtuella datorer motsvarar det du har lokalt.
Ett annat alternativ är att migrera till containrar genom att konvertera den traditionella WAS-arbetsbelastningen till programcontainrar. Du kan köra containermålet på Azure Kubernetes Service (AKS) och Azure Red Hat OpenShift. Kompromissen för denna lätthet är ekonomiska kostnader.
Generellt sett är kostnaden per minut för en VM-baserad lösning högre jämfört med containrar. Även om en containerbaserad lösning kostar mindre att köra måste du begränsa programmet så att det passar kraven för containerorkestreringsplattformen.
Om minimering av ändringar är den viktigaste faktorn för migreringen bör du överväga en VM-baserad migrering. I det här fallet kan du läsa Migrera WebSphere-program till Virtuella Azure-datorer.
Om du kan tolerera att konvertera ditt program till att köras i containrar för att minska körningskostnaden bör du överväga en AKS-baserad eller Azure Red Hat OpenShift-baserad migrering.
För AKS-baserad migrering kan du börja använda den kostnadsfria nivån. Få kostnadsfri klusterhantering och betala endast för de virtuella datorer, tillhörande lagrings- och nätverksresurser som förbrukas. I det här fallet kan du läsa Migrera WebSphere-program till Azure Kubernetes Service.
För Azure Red Hat OpenShift-baserad migrering, utöver beräknings- och infrastrukturkostnaderna, har programnoder en annan kostnad för OpenShift-licenskomponenten. Den här kostnaden debiteras baserat på antalet programnoder och instanstypen. Använd priser på begäran eller reserverade instanser, beroende på vilket som bäst uppfyller behovet av din arbetsbelastning och ditt företag. I det här fallet kan du läsa Migrera WebSphere-program till Azure Red Hat OpenShift.
Guiderna i Azure Red Hat OpenShift-dokumentationen beskriver några aspekter som är relevanta för migrering. Den fullständiga listan över instruktioner finns i Dokumentationen om Azure Red Hat OpenShift.
Ta reda på om de fördefinierade Azure Marketplace-erbjudandena är en bra utgångspunkt
IBM 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. Listan över erbjudanden finns i Kör WebSphere-serien med produkter och Liberty på Microsoft Azure och välj sedan den som bäst matchar din befintliga distribution. Du kan se listan över erbjudanden i översiktsartikeln Vad är lösningar för att köra IBM WebSphere-serien med produkter i Azure?
Om inget av de befintliga erbjudandena är en bra utgångspunkt måste du återskapa distributionen för hand med hjälp av Azure Virtual Machine-resurser. Du hittar den stegvisa vägledningen i Självstudie: Installera IBM WebSphere Application Server Network Deployment traditionellt på virtuella Azure-datorer manuellt. Mer information finns i Vad är IaaS?
Avgöra om den traditionella WAS-versionen är kompatibel
Din befintliga traditionella WAS-version måste vara kompatibel med versionen i IaaS-erbjudandena. Du hittar versionsinformationen från översiktssidan för IBM WebSphere Application Server Single Instance på en virtuell Azure-dator och IBM WebSphere Application Server Cluster på virtuella Azure-datorer. Om din befintliga traditionella WAS-version inte är kompatibel med den versionen måste du återskapa distributionen för hand med hjälp av Azure IaaS-resurser. Mer information finns i Vad är IaaS?
Lagerserverkapacitet
Dokumentera maskinvaran (minne, CPU, disk) för den aktuella eller de aktuella produktionsservrarna, så väl som genomsnittet och den högsta mängden begäranden och resursutnyttjande. Den här informationen måste upplysa om valet av VM-storlek. Mer information finns i Storlekar för Cloud Services.
Inventera alla hemligheter
Innan tekniker för konfiguration som en tjänst, till exempel Azure Key Vault, fanns det inget väldefinierat koncept för hemligheter. I stället hade du skilda uppsättningar konfigurationsinställningar som fungerade som det vi nu kallar hemligheter. Med appservrar som WAS finns dessa hemligheter i många olika konfigurationsfiler och konfigurationslager. Kontrollera alla egenskaper och konfigurationsfiler på produktionsservrarna efter hemligheter och lösenord. Konfigurationsfiler som innehåller lösenord eller autentiseringsuppgifter kan också finnas i ditt program. WAS lagrar konfigurationsdata i flera dokument i en sammanhängande hierarki med kataloger. De flesta konfigurationsdokument har XML-innehåll. Mer information finns i Konfigurationsdokument och Grundläggande begrepp i 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>
Mer information finns i IBM-dokumentcertifikathantering i SSL
Validera att Java-versionen som stöds fungerar som den ska
Användning av WAS på virtuella Azure-datorer kräver en specifik version av Java, så du måste bekräfta att programmet körs korrekt med den version som stöds.
IBM Java 8 levereras med WAS9-fördelningen. Vi rekommenderar att du använder JAVA JRE som tillhandahålls av IBM. Mer information finns i Java SE 8 i WebSphere Application Server traditionell V9.
Om du vill växla till en annan Java SDK följer du IBM-dokumentet Växla Java SDK i WebSphere Application Server.
Inventera JNDI-resurser
Inventera alla JNDI-resurser. Till exempel kan datakällor som databaser, ha ett associerat JNDI-namn som gör det möjligt för JPA att korrekt binda instanser av EntityManager
till en viss databas. Mer information om JNDI-resurser och databaser finns i WebSphere Data Sources i IBM-dokumentationen. Andra JNDI-relaterade resurser som JMS asynkron meddelandekö kan kräva migrering eller omkonfiguration. Mer information om JMS-konfiguration finns i Använda JMS-resurser.
Granska profilkonfigurationen
Huvudkonfigurationsenheten i WAS är profilen. Därför innehåller filen resources.xml en mängd konfigurationer som du noggrant måste överväga för migrering. Filen innehåller referenser till fler XML-filer som lagras i underkataloger. IBM rekommenderar att du normalt använder IBM-konsolen för att konfigurera WAS:s hanterbara objekt och tjänster och tillåter ATT WAS underhåller mappen profiler/profilnamn . Mer information finns i Hantera profiler på distribuerade operativsystem och IBM i-operativsystem.
I ditt program
Granska filen deployment.xml och/eller WEB-INF/web.xml .
Fastställ om sessionsreplikering används
Om programmet förlitar sig på sessionsreplikering har du följande alternativ:
- För HTTP-sessioner, enligt nivån för sessionshantering, kan du använda minne eller en databas för att samla in sessionsdata.
- För distribuerade sessioner kan du spara sessioner i en databas med hjälp av databassessionens beständighet.
- För dynamisk cache kan du hantera sessionsdata i replikering från minne till minne eller en databas.
- Omstrukturera ditt program att använda en databas för sessionshantering.
- Omstrukturera ditt program att externalisera sessionen till Azure Redis-tjänsten. Mer information finns i Azure Cache for Redis.
För alla dessa alternativ är det en bra idé att behärska hur WAS utför HTTP-sessionstillståndsreplikering. Mer information finns i Administrera sessionsbönor i IBM-dokumentationen.
Dokumentets datakällor
Om ditt program använder några databaser måste du samla in 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 om JDBC-drivrutiner i WAS finns i Använda JDBC-drivrutiner med WebSphere Application Server.
Avgöra om WAS har anpassats
Fastställ vilken av följande anpassningar som har gjorts och registrera vad som har gjorts.
- Har startskripten ändrats? Sådana skript omfattar wsadmin, AdminControl, AdminConfig, AdminApp och AdminTask.
- Finns det några speciella parametrar som skickas till JVM?
- Har JAR lagts till i server-classpath?
- Har operativsystemnivåanläggningar som
systemd
använts för att få WAS-komponenter att starta automatiskt efter en omstart av servern?
Du måste ta hänsyn till migreringsöverväganden beroende på svaren på dessa frågor.
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 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 externT värdbaserad JMS-server. En strategi för dem som använder JMS är att använda Azure Service Bus och Advanced Message Queuing Protocol. Mer information finns i Använda Java Message Service 1.1 med Azure Service Bus Standard och AMQP 1.0.
Om du har konfigurerat JMS-beständiga butiker måste du avbilda deras konfiguration och tillämpa den efter migreringen.
Om du använder IBM MQ kan du migrera den här programvaran till Azure Virtual Machines och använda den som den är.
Microsoft har en lösning för att integrera IBM MQ med Logic Apps. Mer information finns i Ansluta till en IBM MQ-server från ett arbetsflöde i Azure Logic Apps.
Fastställ om du använder dina egna anpassade Delade Java EE-bibliotek
Om du använder funktionen med Delade Java EE-bibliotek så har du två alternativ:
- Återför programkoden för att ta bort alla beroenden i dina bibliotek, och inkludera i stället funktionerna direkt i programmet.
- Lägg till biblioteken till server-classpath.
Ta reda på om OSGi-paket används
Om du använde OSGi-paket som lagts till i WAS måste du lägga till motsvarande JAR-filer direkt i webbappen.
Ta reda på om ditt program innehåller en operativsystemsspecifik kod
Om ditt program innehåller någon kod med beroenden på värdoperativsystemet måste du omstrukturera det för att ta bort dessa beroenden. Du kan till exempel behöva ersätta all användning av /
eller \
i filsystemsökvägar med File.Separator
eller Paths.get
om programmet körs i Windows.
Avgöra om IBM Integration Bus används
Om ditt program använder IBM Integration Bus måste du samla in hur IBM Integration Bus har konfigurerats. Mer information finns i IBM Integration Bus-dokumentationen.
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 paketeras som en EAR-fil bör du undersöka filerna application.xml, ibm-application-bnd.xmi och ibm-application-ext.xmi och avbilda deras konfigurationer. Mer information finns i Skapa enterprise archive-paketet (EAR) på WebSphere.
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.
Kontrollera om och hur filsystemet används
VM-filsystem fungerar på samma sätt som lokala filsystem med avseende på kvarhållning, start och avstängning. Dock är det viktigt att vara medveten om dina filsystemsbehov och se till att de virtuella datorerna har tillräckligt med lagringsutrymme och prestanda.
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.
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.
Ta reda på nätverkstopologin
Den aktuella uppsättningen Azure Marketplace-erbjudanden är en startpunkt för migreringen. Om erbjudandet inte omfattar aspekter av din arkitektur som du behöver migrera måste du samla in nätverkstopologin för din befintliga distribution. Sedan måste du återskapa nätverkstopologin i Azure, även efter att du har ställt upp det grundläggande erbjudandet med en av lösningsmallarna.
Nätverkstopologi är ett brett ämne, men följande referenser kan ge en viss riktning till migreringsarbetet:
- Följande referens räknar upp ämnen på hög nivå som är relevanta för migreringen av nätverkstopologi till Azure: Topologier för websfärprogramservernätverksdistribution.
- Eftersom datakällor är separata servrar i ett WAS-system måste du betrakta dem som en del av analysen av nätverkstopologin. Mer information finns i WebSphere Application Server-datakällor.
- Meddelandekällor är även separata servrar. Mer information finns i Nätverkstopologier: Samverka med hjälp av WebSphere MQ-meddelandeleverantören.
- Lastbalansering är ett grundläggande krav. Följande referens omfattar WAS-sidan av belastningsutjämning: WebSphere Application Server Network Deployment load-balanced clustering.
Konto för användning av JCA-kort och resurskort
Om ditt befintliga program använder JCA-kort eller andra resurskort för att ansluta till andra företagssystem kontrollerar du att du tillämpar konfigurationen för dessa artefakter på WAS som körs på virtuella Azure-datorer. Mer information finns i Relationsresurskort och JCA i IBM-dokumentationen.
Konto för autentisering och auktorisering
De flesta program har någon form av autentisering och auktorisering. Om du använder OpenID för autentisering kan du konfigurera OpenID Connect-autentisering med Microsoft Entra-ID. Mer information finns i OpenID Connect-autentisering med Microsoft Entra-ID.
Avgöra om WAS-klustring används
Troligtvis har du distribuerat ditt program på flera WAS-servrar för att uppnå hög tillgänglighet. Du kan migrera dessa kluster direkt från din lokala installation till WAS som körs i Azure Virtual Machines. Mer information finns i WebSphere Application Server Network Deployment i IBM-dokumentationen.
Konto för belastningsutjämningskrav
Belastningsutjämning är en viktig del av migreringen av DITT WAS-kluster till Azure. Den enklaste lösningen är att använda det inbyggda stödet för Azure Application Gateway eller IBM HTTP Server som tillhandahålls i Azure Marketplace-erbjudandet för IBM WebSphere Application Server Cluster.
En sammanfattning av funktionerna i Azure Application Gateway jämfört med andra Azure-belastningsutjämningslösningar finns i Alternativ för belastningsutjämning.
Ta reda på om funktionen Java EE-programklient används
Om programmet använder funktionen Java EE-programklient, bör den fortsätta att fungera oförändrad efter migrering till Azure Virtual Machines. Mer information finns i Använda Java EE-klientprogrammoduler.
Migrering
Välj ett was traditional på Azure Virtual Machines-erbjudande
Följande erbjudanden är tillgängliga för WAS på virtuella Azure-datorer.
Under distributionen av ett erbjudande uppmanas du att välja storleken på den virtuella datorn för dina WAS-noder. 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).
IBM WebSphere Application Server – enskild instans på en virtuell Azure-dator
Det här erbjudandet automatiserar de flesta standardsteg för att etablera en enda WebSphere-instans på en virtuell Azure-dator. Den skapar en programserverprofil med WAS-administratörskonsolen.
IBM WebSphere Application Server-kluster på virtuella Azure-datorer
Det här erbjudandet automatiserar de flesta exempelsteg för att etablera ett WebSphere-kluster på virtuella Azure-datorer. Den skapar en distributionshanterare med WAS-administratörskonsolen på en virtuell Azure-dator och nödvändiga antal nodagenter på avgränsade virtuella Azure-datorer.
Få tillgång till erbjudandet
När du har valt vilket erbjudande du ska börja med etablerar du erbjudandet genom att följa anvisningarna i Distribuera WebSphere Application Server-kluster (traditionellt) på Azure Virtual Machines.
Migrera profilerna
När du har etablerat erbjudandet kan du undersöka profilkonfigurationen. Mer information finns i Profilbegrepp i IBM-dokumentationen.
Anslut databaserna
När du har migrerat profilerna kan du ansluta databaserna genom att följa anvisningarna i Konfigurera WebSphere Application Server-datakällan i IBM-dokumentationen.
KeyStores-konto
Du måste ha ett konto för migreringen av de eventuella SSL KeyStores som programmet använder. Mer information finns i Keystore-konfigurationer för SSL i IBM-dokumentationen.
Anslut JMS-källorna
När du har anslutit databaserna kan du konfigurera JMS genom att följa anvisningarna i Konfigurera JMS i IBM WebSphere Application Server i IBM-dokumentationen.
Konto för autentisering och auktorisering
De flesta program har någon form av autentisering och auktorisering. Om du använder OpenID för autentisering kan du konfigurera OpenID Connect-autentisering med Microsoft Entra-ID. Mer information finns i OpenID Connect-autentisering med Microsoft Entra-ID.
Loggningskonto
Du kan konfigurera Elastic Stack genom att följa anvisningarna i Analysera WebSphere Application Server-loggar med Elastic Stack i IBM-dokumentationen. Azure tillhandahåller stöd för Elastic. Mer information finns i Vad är elastisk integrering med Azure? Du kan kombinera kunskapen i dessa två resurser för att uppnå en Azure-optimerad loggningslösning för WAS på virtuella datorer.
Migrera dina program
De tekniker som används för att distribuera program från utvecklingsteamet till test-, mellanlagrings- och produktionsservrarna varierar kraftigt från fall till fall. I vissa fall finns det en mycket utvecklad CI/CD-plattform som resulterar i att programmen distribueras till WebSphere Application Server. I andra fall är processen mer manuell. En fördel med att använda Azure Virtual Machines för att migrera traditionella WAS-program till molnet är att dina befintliga processer fortsätter att fungera.
Du måste konfigurera den nätverkssäkerhetsgrupp som erbjudandet tillhandahåller för att tillåta åtkomst från ci/CD-pipelinen eller det manuella distributionssystemet. Mer information finns i Nätverkssäkerhetsgrupper.
Testning
Du måste konfigurera alla tester i containern mot program för att få åtkomst till de nya servrar som körs i Azure. Precis som med CI/CD-problemen måste du se till att de nödvändiga nätverkssäkerhetsreglerna tillåter dina tester att komma åt de program som distribueras till Azure. Mer information finns i Nätverkssäkerhetsgrupper.
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. Vägledning om några potentiella förbättringar efter migreringen finns i följande rekommendationer:
Använd Azure Storage för att hantera statiskt innehåll som monterats på de virtuella datorerna. Mer information finns i Bifoga eller koppla från en datadisk för en virtuell labbdator i Azure DevTest Labs.
Distribuera dina program till ditt migrerade WAS-kluster med Azure DevOps. Mer information finns i Kom igång med Azure DevOps-dokumentationen.
Om du har distribuerat WAS traditional med Azure Application Gateway kanske du vill göra mer konfiguration på Application Gateway. Mer information finns i Översikt över Application Gateway-konfiguration.
Förbättra nätverkstopologin med avancerade lastbalanseringstjänster. Mer information finns i Använda lastbalanseringstjänster i Azure.
Använd Azure Managed Identities för att hantera hemligheter och tilldela rollbaserad åtkomst till Azure-resurser. Mer information finns i Vad är hanterade identiteter för Azure-resurser?
Integrera JAVA EE-autentisering och auktorisering med Microsoft Entra-ID. Mer information finns i Guiden för att integrera Microsoft Entra-ID med program som kommer igång.
Använd Azure Key Vault för att lagra information som fungerar som "hemlig". Mer information finns i Grundläggande koncept för Azure Key Vault.