WebSphere-toepassingen migreren naar Azure Virtual Machines

In deze handleiding wordt beschreven waar u rekening mee moet houden wanneer u een bestaande traditionele WebSphere Application Server -toepassing (WAS) wilt migreren om te worden uitgevoerd op Azure Virtual Machines. Zie Wat zijn oplossingen voor het uitvoeren van de IBM WebSphere-producten in Azure? voor een overzicht van de beschikbare traditionele WAS-oplossingen in Azure Marketplace.

Premigratie

Voltooi voordat u begint de evaluatie- en inventarisstappen die in de volgende secties worden beschreven om een succesvolle 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 traditionele WAS-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 Virtual Machines maken, zoals beschreven in Een momentopname van een virtuele harde schijf maken. Nadat u hebt gecontroleerd of u met succes kunt herstellen vanuit uw momentopname, kunt u de verbeteringen uitvoeren zonder dat u bang hoeft te zijn dat de migratievoortgang verloren gaat die u tot nu toe hebt bereikt.

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

De eerste stap in een geslaagde migratie van een WAS-toepassing naar Azure is het selecteren van het meest geschikte migratiedoel.

WAS wordt traditioneel goed uitgevoerd op Azure Virtual Machines. Het doel van de virtuele machine (VM) 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.

Een andere optie is om te migreren naar containers door de traditionele WAS-workload te converteren naar toepassingscontainers. U kunt het containerdoel uitvoeren op Azure Kubernetes Service (AKS) en Azure Red Hat OpenShift. De afweging voor dit gemak is economische kosten.

Over het algemeen zijn de kosten per minuut voor een vm-oplossing hoger in vergelijking met containers. Hoewel een oplossing op basis van containers minder kost om uit te voeren, moet u uw toepassing beperken om te voldoen aan de vereisten van het containerindelingsplatform.

Als het minimaliseren van wijzigingen de belangrijkste factor is voor uw migratie-inspanning, kunt u een migratie op basis van een VM overwegen. Zie in dit geval WebSphere-toepassingen migreren naar Azure Virtual Machines.

Als u het converteren van uw toepassing kunt tolereren om te worden uitgevoerd in containers om de runtimekosten te verlagen, kunt u een migratie op basis van AKS of Azure Red Hat OpenShift overwegen.

Voor migratie op basis van AKS kunt u de gratis laag gaan gebruiken. Ontvang gratis clusterbeheer en betaal alleen voor de virtuele machines, de bijbehorende opslag en de verbruikte netwerkresources. Zie in dit geval WebSphere-toepassingen migreren naar Azure Kubernetes Service.

Voor migratie op basis van Azure Red Hat OpenShift hebben toepassingsknooppunten naast de reken- en infrastructuurkosten nog andere kosten voor het OpenShift-licentieonderdeel. Deze kosten worden gefactureerd op basis van het aantal toepassingsknooppunten en het exemplaartype. Gebruik on-demand prijzen of gereserveerde instanties, afhankelijk van wat het beste voldoet aan de behoeften van uw workload en bedrijf. Zie in dit geval WebSphere-toepassingen migreren naar Azure Red Hat OpenShift.

De handleidingen in de Documentatie van Azure Red Hat OpenShift hebben betrekking op enkele aspecten die relevant zijn voor migratie. Zie de Documentatie van Azure Red Hat OpenShift voor de volledige lijst met handleidingen.

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

IBM en Microsoft hebben samengewerkt om een set Azure-oplossingssjablonen te Azure Marketplace om een solide uitgangspunt te bieden voor migratie naar Azure. Zie Run the WebSphere family of products and Liberty on Microsoft Azure (De WebSphere-productfamilie en Liberty on Microsoft Azure uitvoeren) voor de lijst met aanbiedingen en kies vervolgens de aanbieding die het meest overeenkomt met uw bestaande implementatie. U kunt de lijst met aanbiedingen bekijken in het overzichtsartikel Wat zijn oplossingen voor het uitvoeren van de IBM WebSphere-producten in Azure?

Als geen van de bestaande aanbiedingen een goed uitgangspunt is, moet u de implementatie handmatig reproduceren met behulp van Azure Virtual Machine-resources. U vindt de stapsgewijze richtlijnen in Zelfstudie: Ibm WebSphere Application Server Network-implementatie handmatig installeren in Azure Virtual Machines. Zie Wat is IaaS? voor meer informatie.

Bepalen of de traditionele WAS-versie compatibel is

Uw bestaande traditionele WAS-versie moet compatibel zijn met de versie in de IaaS-aanbiedingen. U vindt de versie-informatie op de overzichtspagina van IBM WebSphere Application Server Single Instance op Azure VM en IBM WebSphere Application Server Cluster op Azure-VM's. Als uw bestaande traditionele WAS-versie niet compatibel is met die versie, moet u de implementatie handmatig reproduceren met behulp van Azure IaaS-resources. Zie Wat is IaaS? voor meer informatie.

Servercapaciteit inventariseren

Documenteer de hardware (geheugen, CPU, schijf) van de huidige productieserver(s), evenals het gemiddelde aantal en piekaantal aanvragen en het resourcegebruik. Deze informatie wordt gebruikt om de VM-grootte te bepalen. Zie Groottes voor Cloud Services 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 WAS bevinden deze geheimen zich in veel verschillende configuratiebestanden en configuratiearchieven. Controleer alle eigenschaps- en configuratiebestanden op de productieserver(s) op geheimen en wachtwoorden. Mogelijk bevinden zich ook in uw toepassing configuratiebestanden met wachtwoorden of referenties. WAS slaat configuratiegegevens op in verschillende documenten in een trapsgewijze hiërarchie van mappen. De meeste configuratiedocumenten bevatten XML-inhoud. Zie Configuratiedocumenten en 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>

Zie het IBM-document Certificaatbeheer in SSL voor meer informatie

Controleren of de ondersteunde Java-versie goed werkt

Voor het gebruik van WAS in Azure Virtual Machines is een specifieke versie van Java vereist. U moet dus controleren of uw toepassing correct wordt uitgevoerd met behulp van die ondersteunde versie.

IBM Java 8 wordt geleverd met de WAS9-distributie. U wordt aangeraden de door IBM geleverde Java JRE te gebruiken. Zie Java SE 8 in traditionele V9 van WebSphere Application Server voor meer informatie.

Als u wilt overschakelen naar een andere Java SDK, volgt u het IBM-document Overschakelen naar de Java SDK in WebSphere Application Server.

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 WebSphere-gegevensbronnen in de IBM-documentatie voor meer informatie over JNDI-resources en -databases. Andere JNDI-gerelateerde resources, zoals JMS-berichtenbrokers, moeten mogelijk worden gemigreerd of opnieuw worden geconfigureerd. Zie JMS-resources gebruiken voor meer informatie over de configuratie van JMS.

Uw profielconfiguratie controleren

De belangrijkste configuratie-eenheid in WAS is het profiel. Als zodanig bevat het resources.xml-bestand een schat aan configuraties die u zorgvuldig moet overwegen voor migratie. Het bestand bevat verwijzingen naar meer XML-bestanden die zijn opgeslagen in submappen. IBM adviseert dat u normaal gesproken de IBM-console moet gebruiken om de beheerbare objecten en services van WAS te configureren en WAS toe te staan de map profiles/profile-name te onderhouden. Zie Profielen beheren op gedistribueerde en IBM i-besturingssystemen voor meer informatie.

Binnen uw toepassing

Inspecteer het deployment.xml-bestand en/of het WEB-INF/web.xml-bestand .

Bepalen of sessiereplicatie wordt gebruikt

Als uw toepassing afhankelijk is van sessiereplicatie, hebt u de volgende opties:

  • Voor HTTP-sessies kunt u, afhankelijk van het niveau van sessiebeheer, geheugen of een database gebruiken om sessiegegevens te verzamelen.
  • Voor gedistribueerde sessies kunt u sessies opslaan in een database met behulp van databasesessiepersistentie.
  • Voor dynamische cache kunt u sessiegegevens beheren in replicatie van geheugen naar geheugen of een database.
  • 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 WAS http-sessiestatusreplicatie doet. Zie Sessiebonen beheren in de IBM-documentatie voor meer informatie.

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 JDBC-stuurprogramma's gebruiken met WebSphere-toepassingsserver voor meer informatie over JDBC-stuurprogramma's in WAS.

Bepalen of WAS is aangepast

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

  • Zijn de opstartscripts gewijzigd? Dergelijke scripts omvatten wsadmin, AdminControl, AdminConfig, AdminApp en AdminTask.
  • Zijn er specifieke parameters aan de JVM doorgegeven?
  • Zijn er JAR's toegevoegd aan het classpath van de server?
  • Zijn er voorzieningen systemd op besturingssysteemniveau zoals gebruikt om WAS-onderdelen automatisch te laten starten nadat de server opnieuw is opgestart?

U moet rekening houden met migratieoverwegingen, afhankelijk van de antwoorden op deze vragen.

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 JMS-wachtrijen of -onderwerpen (Java Message Service) in gebruik zijn

Als uw toepassing JMS-wachtrijen of -onderwerpen gebruikt, moet u deze migreren naar een extern gehoste JMS-server. Een strategie voor gebruikers van JMS is het gebruik van Azure Service Bus en het Advanced Message Queuing Protocol. Zie JMS gebruiken met Azure Service Bus en AMQP 1.0 voor meer informatie.

Als u permanente JMS-archieven hebt geconfigureerd, moet u de configuratie ervan vastleggen en toepassen na de migratie.

Als u IBM MQ gebruikt, kunt u deze software migreren naar Azure Virtual Machines en deze ongewijzigd gebruiken.

Microsoft heeft een oplossing om IBM MQ te integreren met Logic Apps. Zie Verbinding maken met een IBM MQ-server vanuit een werkstroom in Azure Logic Apps 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.

Bepalen of OSGi-bundels worden gebruikt

Als u OSGi-bundels hebt gebruikt die zijn toegevoegd aan de WAS, moet u de equivalente JAR-bestanden rechtstreeks aan uw webtoepassing toevoegen.

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

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

Bepalen of IBM Integration Bus in gebruik is

Als uw toepassing gebruikmaakt van IBM Integration Bus, moet u vastleggen hoe IBM Integration Bus is geconfigureerd. Zie documentatie voor IBM Integration Bus voor meer informatie.

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, controleert u de bestandenapplication.xml, ibm-application-bnd.xmi en ibm-application-ext.xmi en leg de bijbehorende configuraties vast. Zie Het ENTERPRISE-archiefpakket (EAR) bouwen op WebSphere voor meer informatie.

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.

Bepalen of en hoe het bestandssysteem wordt gebruikt

VM-bestandssystemen werken op dezelfde manier als on-premises bestandssystemen met betrekking tot persistentie, opstarten en afsluiten. Het is ook belangrijk om rekening te houden met de behoeften van uw bestandssysteem en om ervoor te zorgen dat de opslagruimte en prestaties van de VM's voldoende zijn.

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 website hosten 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.

De netwerktopologie bepalen

De huidige set Azure Marketplace aanbiedingen is een startpunt voor uw migratie. Als de aanbieding geen betrekking heeft op aspecten van uw architectuur die u moet migreren, moet u de netwerktopologie van uw bestaande implementatie vastleggen. Vervolgens moet u die netwerktopologie in Azure reproduceren, zelfs nadat u de basisaanbieding hebt opgesteld met een van de oplossingssjablonen.

Netwerktopologie is een breed onderwerp, maar de volgende verwijzingen kunnen richting geven aan uw migratie-inspanningen:

Account voor het gebruik van JCA-adapters en resourceadapters

Als uw bestaande toepassing gebruikmaakt van JCA-adapters of andere resourceadapters om verbinding te maken met andere bedrijfssystemen, moet u ervoor zorgen dat u de configuratie voor deze artefacten toepast op de WAS die wordt uitgevoerd in Azure Virtual Machines. Zie Relationele resourceadapters en JCA in de IBM-documentatie voor meer informatie.

Account voor verificatie en autorisatie

De meeste toepassingen hebben een soort verificatie en autorisatie. Als u OpenID gebruikt voor verificatie, kunt u OpenID Connect-verificatie configureren met Azure AD. Zie OpenID Connect-verificatie met Azure Active Directory voor meer informatie.

Bepalen of WAS-clustering wordt gebruikt

Waarschijnlijk hebt u uw toepassing op meerdere WAS-servers geïmplementeerd om hoge beschikbaarheid te bereiken. U kunt deze clusters rechtstreeks vanuit uw on-premises installatie migreren naar WAS dat wordt uitgevoerd in Azure Virtual Machines. Zie WebSphere Application Server Network Deployment in de IBM-documentatie voor meer informatie.

Account voor taakverdelingsvereisten

Taakverdeling is een essentieel onderdeel van het migreren van uw WAS-cluster naar Azure. De eenvoudigste oplossing is om de ingebouwde ondersteuning te gebruiken voor Azure Application Gateway of IBM HTTP Server in de Azure Marketplace aanbieding voor IBM WebSphere Application Server Cluster.

Zie Opties voor taakverdeling voor een overzicht van de mogelijkheden van Azure Application Gateway vergeleken met andere Azure-oplossingen voor taakverdeling.

Bepalen of de functie Java EE Application Client wordt gebruikt

Als uw toepassing gebruikmaakt van de functie Java EE Application Client, moet deze ongewijzigd blijven werken na de migratie naar Azure Virtual Machines. Zie Java EE Client Application-modules gebruikenvoor meer informatie.

Migratie

Selecteer een traditionele WAS-aanbieding op Azure Virtual Machines

De volgende aanbiedingen zijn beschikbaar voor WAS in Azure Virtual Machines.

Tijdens de implementatie van een aanbieding wordt u gevraagd om de grootte van de virtuele machine voor uw WAS-knooppunten te kiezen. 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.

  • IBM WebSphere Application Server Single Instance op Azure VM

    Deze aanbieding automatiseert de meeste standaardstappen voor het inrichten van één WebSphere-exemplaar op een virtuele Azure-machine. Er wordt een toepassingsserverprofiel gemaakt met de WAS-beheerconsole.

  • IBM WebSphere Application Server Cluster op Azure-VM's

    Deze aanbieding automatiseert de meeste standaardstappen voor het inrichten van een WebSphere-cluster op Azure-VM's. Er wordt een implementatiebeheerder gemaakt met de WAS-beheerconsole op een Azure-VM en het vereiste aantal knooppuntagenten op gescheiden Azure-VM's.

De aanbieding inrichten

Nadat u hebt geselecteerd met welke aanbieding u wilt beginnen, richt u deze aanbieding in door de instructies te volgen in WebSphere-toepassingsservercluster (traditioneel) implementeren op Azure Virtual Machines.

De profielen migreren

Nadat u de aanbieding hebt ingericht, kunt u de profielconfiguratie bekijken. Zie Profielconcepten in de IBM-documentatie voor meer informatie.

De databases verbinden

Nadat u de profielen hebt gemigreerd, kunt u de databases verbinden door de instructies te volgen in De Gegevensbron van de WebSphere Application Server configureren in de IBM-documentatie.

Account voor sleutelarchieven

U moet rekening houden met de migratie van SSL-sleutelarchieven die door uw toepassing worden gebruikt. Zie Keystore-configuraties voor SSL in de IBM-documentatie voor meer informatie.

De JMS-bronnen verbinden

Nadat u de databases hebt verbonden, kunt u JMS configureren door de instructies te volgen in JMS instellen in IBM WebSphere Application Server in de IBM-documentatie.

Account voor verificatie en autorisatie

De meeste toepassingen hebben een soort verificatie en autorisatie. Als u OpenID gebruikt voor verificatie, kunt u OpenID Connect-verificatie configureren met Azure AD. Zie OpenID Connect-verificatie met Azure Active Directory voor meer informatie.

Account voor logboekregistratie

U kunt Elastic Stack configureren door de instructies te volgen in Logboeken van WebSphere-toepassingsserver analyseren met Elastic Stack in de IBM-documentatie. Azure biedt ondersteuning voor Elastic. Zie Wat is Elastische integratie met Azure? voor meer informatie. U kunt de kennis in deze twee resources combineren om een voor Azure geoptimaliseerde oplossing voor logboekregistratie te bereiken voor WAS op VM's.

Uw toepassingen migreren

De technieken die worden gebruikt om toepassingen van het ontwikkelteam in de test-, faserings- en productieservers te implementeren variëren sterk per geval. In sommige gevallen is er een sterk ontwikkeld CI/CD-platform dat ertoe leidt dat de toepassingen worden geïmplementeerd op de WebSphere-toepassingsserver. In andere gevallen kan het proces meer handmatig zijn. Een voordeel van het gebruik van Azure Virtual Machines om traditionele WAS-toepassingen naar de cloud te migreren, is dat uw bestaande processen blijven werken.

U moet de netwerkbeveiligingsgroep configureren die door de aanbieding wordt ingesteld om toegang toe te staan vanuit uw CI/CD-pijplijn of handmatig implementatiesysteem. Zie Netwerkbeveiligingsgroepen voor meer informatie.

Testen

U moet eventuele in-containertests configureren voor toepassingen om toegang te krijgen tot de nieuwe servers die in Azure worden uitgevoerd. Net als bij de CI/CD-problemen moet u ervoor zorgen dat de benodigde netwerkbeveiligingsregels uw tests toegang geven tot de toepassingen die in Azure zijn geïmplementeerd. Zie Netwerkbeveiligingsgroepen voor meer informatie.

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 aanbevelingen voor hulp bij een aantal mogelijke verbeteringen na de migratie: