Migrace aplikací WebSphere do služby Azure Kubernetes Service

Tato příručka popisuje, o čem byste měli vědět, když chcete migrovat stávající úlohu WebSphere Application Server (WAS) do IBM WebSphere Liberty nebo Open Liberty ve službě Azure Kubernetes Service (AKS).

Před migrací

Pokud chcete zajistit úspěšnou migraci, dokončete kroky posouzení a inventáře popsané v následujících částech.

Ujistěte se, že cíl je vhodným cílem pro vaše úsilí o migraci.

Prvním krokem úspěšné migrace aplikace WAS do Azure je výběr nejvhodnějšího cíle migrace.

Was Traditional funguje dobře na virtuálních počítačích Azure. Cíl virtuálního počítače je nejjednodušší volbou, protože se nejvíce podobá místnímu nasazení. Prostředí pro správu a nasazení virtuálních počítačů je podobné tomu, co máte místně.

Další možností je migrovat na kontejnery převodem tradiční úlohy WAS na kontejnery aplikací. Cíl kontejneru můžete spustit ve službě Azure Kubernetes Service (AKS) a Azure Red Hat OpenShiftu. Kompromis pro tuto jednoduchost je ekonomické náklady.

Obecně řečeno, náklady na minutu pro řešení založené na virtuálních počítačích jsou ve srovnání s kontejnery vyšší. I když náklady na řešení založené na kontejnerech jsou méně spuštěné, musíte aplikaci omezit tak, aby vyhovovala požadavkům platformy orchestrace kontejnerů.

Pokud je minimalizace změn nejdůležitějším faktorem pro vaše úsilí o migraci, zvažte migraci založenou na virtuálních počítačích. V tomto případě si přečtěte téma Migrace aplikací WebSphere do služby Azure Virtual Machines.

Pokud můžete tolerovat převod aplikace tak, aby běžela v kontejnerech, abyste snížili náklady na běh, zvažte migraci založenou na AKS nebo migraci založenou na Azure Red Hat OpenShiftu.

U migrace založené na AKS můžete začít používat úroveň Free. Získejte bezplatnou správu clusteru a platíte jenom za virtuální počítače, přidružené úložiště a síťové prostředky spotřebované. V tomto případě si přečtěte téma Migrace aplikací WebSphere do služby Azure Kubernetes Service.

U migrace založené na Azure Red Hat OpenShiftu kromě nákladů na výpočetní prostředky a infrastrukturu mají uzly aplikací další náklady na komponentu licence OpenShift. Tyto náklady se účtují na základě počtu uzlů aplikace a typu instance. Používejte ceny na vyžádání nebo rezervované instance, podle toho, co nejlépe vyhovuje potřebám vaší úlohy a firmy. V tomto případě si přečtěte téma Migrace aplikací WebSphere do Azure Red Hat OpenShiftu.

Průvodci postupy v dokumentaci k Azure Red Hat OpenShiftu pokrývají některé aspekty, které jsou relevantní pro migraci. Úplný seznam návodů najdete v dokumentaci k Azure Red Hat OpenShiftu.

Určení, jestli je předem připravená nabídka Azure Marketplace dobrým výchozím bodem

Jakmile se rozhodnete, že je AKS vhodným cílem nasazení, musíte přijmout, že operátor IBM WebSphere Liberty nebo Open Liberty Operator (operátor) je jediný způsob, jak spustit Liberty v Kubernetes. Po přijetí této skutečnosti se musíte rozhodnout, jestli je předem připravená nabídka Azure Marketplace dobrým výchozím bodem. Tady je několik věcí, které byste měli zvážit o předem připravené nabídce Azure Marketplace:

  • IBM a Microsoft vytvořili tuto nabídku, abyste mohli rychle zřídit Liberty v AKS. Tento koncept je podrobněji vysvětlen v následujícím obsahu.
  • Nabídka na vysoké úrovni automatizuje následující kroky za vás.
    • V případě potřeby převezmte existující image aplikace.
    • V případě potřeby zřiďte cluster AKS a instanci služby Azure Container Registry (ACR).
    • Nainstalujte a nakonfigurujte operátor IBM WebSphere Liberty nebo operátor Open Liberty v AKS.
    • Pomocí operátoru spusťte celou věc. Operátor nasadí a spravuje kontejnerizované aplikace Liberty v AKS. Referenční dokumentaci najdete v operátoru IBM WebSphere Liberty a operátoru Open Liberty.

Pokud předem připravenou nabídku Azure Marketplace nepoužíváte, musíte se naučit, jak operátor používat přímo. Zvládnutí operátoru je nad rámec tohoto článku. Kompletní dokumentace pro operátora je k dispozici u operátoru IBM WebSphere Liberty a operátoru Open Liberty.

Teď, když jste se seznámili s různými způsoby zpracování Liberty v AKS, jste lépe schopni zvolit, jestli použít předem připravenou nabídku Azure Marketplace, nebo to udělat sami pomocí operátora.

Určení, jestli je verze Liberty kompatibilní

K nasazení a správě aplikací v clusterech založených na Kubernetes potřebujete operátor Open Liberty nebo operátor WebSphere Liberty. Ujistěte se, že vaše stávající verze Liberty je jednou z verzí podporovaných operátorem. Verze Open Liberty se udržují v GitHubu OpenLiberty/open-liberty. IBM udržuje verze IBM WebSphere Application Server Liberty. Další informace naleznete v tématu WebSphere Application Server Liberty.

Předem připravená nabídka Azure Marketplace umožňuje vybrat image aplikací z veřejného registru, a proto implicitně podporuje všechny verze.

Určení, jestli je potřeba licence

V případě IBM WebSphere Liberty musíte přijmout podmínky licenční smlouvy odpovídající verzi programu IBM v kontejneru aplikací. Licenční smlouvu platnou pro tento program IBM naleznete v části Zobrazení informací o licencích pro operátora WebSphere Liberty. Další informace naleznete v tématu Spuštění WebSphere Liberty v Microsoft Azure.

Pokud je vaše edice produktu jiná než výchozí server IBM WebSphere Application Server (základní), .spec.license.edition value musí být zadána edice vašeho produktu. Další dostupné hodnoty jsou IBM WebSphere Application Server Liberty Core a IBM WebSphere Application Server Network Deployment. Předem připravená nabídka Azure Marketplace umožňuje vybrat podporovanou edici produktu.

Rozdíly v inventáři pomocí nástrojů pro migraci IBM

Pokud chcete přesunout aplikace na WebSphere Application Server Liberty nebo Open Liberty, musíte naplánovat migraci, analyzovat aplikace a aktualizovat zdrojový kód. IBM poskytuje nástroje pro migraci, které pomáhají identifikovat všechny rozdíly mezi vaším aktuálním prostředím a technologiemi v novém prostředí Liberty, jako je Java EE 7 nebo Java EE 8 a Java SE 8 nebo Java SE 11. Další informace naleznete v tématu Migrace aplikací do Liberty.

Inventarizace kapacity serverů

Zdokumentujte hardware (paměť, procesor, disk) aktuálních produkčních serverů a průměrný počet požadavků a využití prostředků ve špičce. Tyto informace budete potřebovat bez ohledu na zvolenou cestu migrace. Užitečné je například pomoct při výběru velikosti virtuálních počítačů ve fondu uzlů, množství paměti, které kontejner používá, a počet sdílených procesorů, které kontejner potřebuje.

Ve službě AKS je možné změnit velikost fondů uzlů. Postup najdete v tématu Změna velikosti fondů uzlů ve službě Azure Kubernetes Service (AKS).

Inventarizace všech tajných kódů

Před nástupem technologií „konfigurace jako služba“ typu Azure Key Vault neexistoval řádně definovaný koncept „tajných kódů“. Místo toho jste měli různorodou sadu konfiguračních nastavení, která v podstatě fungovala stejně jako dnešní „tajné kódy“. U aplikačních serverů, jako je WAS, jsou tyto tajné kódy v mnoha různých konfiguračních souborech a úložištích konfigurace. Ve všech vlastnostech a konfiguračních souborech na produkčních serverech vyhledejte tajné kódy a hesla. Konfigurační soubory obsahující hesla nebo přihlašovací údaje se mohou nacházet také ve vaší aplikaci. Was ukládá konfigurační data do několika dokumentů v kaskádové hierarchii adresářů. Většina konfiguračních dokumentů obsahuje obsah XML. Další informace najdete v tématu Dokumenty konfigurace a základní koncepty služby Azure Key Vault.

Jakmile budete mít solidní inventář tajných kódů, projděte si dokumentaci operátora týkající se tajných kódů. Další informace najdete v následujících článcích:

Inventarizace všech certifikátů

Zdokumentujte všechny certifikáty používané pro veřejné koncové body SSL. Všechny certifikáty na produkčních serverech zobrazíte spuštěním následujícího příkazu:

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

Jakmile budete mít solidní inventář certifikátů, nakonfigurujte je pomocí následujících článků:

Ověření správné funkce podporované verze jazyka Java

Použití Liberty vyžaduje konkrétní verzi Javy, takže musíte ověřit, že vaše aplikace běží správně pomocí této podporované verze.

Modul runtime WebSphere Application Server Liberty má specifické požadavky na minimální úroveň prostředí Java Runtime Environment (JRE). Další informace najdete v tématu Závislosti verzí Javy pro funkce.

Open Liberty vyžaduje modul runtime Java SE. Může běžet pomocí prostředí Java Runtime Environment (JRE) nebo distribuce sady Java SE Development Kit (JDK). Další informace najdete v tématu Podporované verze Java SE.

Inventarizace prostředků JNDI

Proveďte inventarizaci všech prostředků JNDI. Zdroje dat, jako jsou databáze, mohou mít například přidružený název JNDI, který umožňuje JPA správně navazovat instance EntityManager ke konkrétní databázi. Další informace o prostředcích a databázích JNDI naleznete v tématu Zdroje dat WebSphere v dokumentaci IBM. Jiné prostředky související s JNDI, například zprostředkovatelé zpráv JMS, mohou vyžadovat migraci nebo změnu konfigurace. Další informace o konfiguraci JMS najdete v tématu Použití prostředků JMS.

Pokud používáte předem připravenou nabídku Azure Marketplace, sada prostředků JNDI, které můžete přizpůsobit v době nasazení, je omezená na to, co nabídka podporuje. Pro WebSphere Liberty v AKS můžete objekt zpřístupnit ve výchozím oboru názvů Java Naming and Directory Interface (JNDI). Další informace naleznete v tématu Vývoj pomocí výchozího oboru názvů JNDI ve funkci Liberty. Pro Open Liberty viz Java Pojmenování a rozhraní adresáře.

Kontrola konfigurace profilu

Hlavní konfigurační jednotka ve was je profil. Soubor resources.xml proto obsahuje řadu konfigurací, které je nutné pečlivě zvážit při migraci. Soubor obsahuje odkazy na jiné soubory XML, které jsou uloženy v podadresářích. Další informace najdete v tématu Správa profilů v distribuovaných operačních systémech a operačních systémech IBM i.

Ve vaší aplikaci

Zkontrolujte soubor deployment.xml nebo soubor WEB-INF/web.xml.

Tato přizpůsobení je potřeba zachytit v imagi kontejneru, na které běží AKS. Když použijete předem připravenou nabídku Azure Marketplace, tato přizpůsobení se nejlépe zpracují vytvořením vlastní image kontejneru a jejím zpřístupněním ve veřejném registru a následným nasměrováním na tento registr v době nasazení.

Pokud používáte buňku nasazení sítě aplikačního serveru WebSphere, každý člen clusteru běží v instalaci tradičního systému WAS. Liberty je jednoduchý profil aplikačního serveru WebSphere. Je to flexibilní a dynamický profil WAS, který umožňuje serveru WAS nasadit jenom požadované vlastní funkce místo nasazení velké sady dostupných komponent Java EE.

Určení, zda se používá replikace relace

Pokud vaše aplikace spoléhá na replikaci relací, máte následující možnosti:

  • U relací HTTP můžete v závislosti na úrovni správy relací použít mezipaměť nebo databázi ke shromažďování dat relace.
  • U distribuovaných relací můžete ukládat relace do databáze pomocí trvalosti relace databáze.
  • U dynamické mezipaměti můžete spravovat data relací v mezipaměti nebo databázi.
  • Aplikaci můžete refaktorovat tak, aby používala databázi pro správu relací.
  • Aplikaci můžete refaktorovat tak, aby se relace externalizovala do služby Azure Redis. Další informace najdete v článku, který se věnuje službě Azure Cache for Redis.

Pro všechny tyto možnosti je vhodné zvládnout, jak Liberty dělá replikaci stavu relace HTTP. Následující dokumenty vám pomůžou pochopit, jak spravovat relace HTTP ve službě Liberty:

Předem připravená nabídka Azure Marketplace podporuje spřažení relací prostřednictvím kontroleru příchozího přenosu dat služby Application Gateway. Při nasazování nabídky vyberte Povolit spřažení na základě souborů cookie.

Dokumentování zdrojů dat

Pokud vaše aplikace používá nějaké databáze, potřebujete shromáždit následující informace:

  • Jaký je název zdroje dat?
  • Jaká je konfigurace fondu připojení?
  • Kde najdu soubor JAR ovladače JDBC?

Další informace o ovladačích JDBC v WAS naleznete v tématu Použití ovladačů JDBC s Webovým aplikačním serverem WebSphere.

Konfigurace JDBC je základní konfigurace serveru v Liberty. Další informace naleznete v tématu Ovladač JDBC.

Předem připravená nabídka Azure Marketplace má omezenou podporu pro databáze. Konfiguraci můžete zpracovat v imagích aplikací a použít image při nasazení nabídky.

Určení, jestli byla was přizpůsobená

Určete, která z následujících přizpůsobení byla provedena, a zachyťte provedenou akci.

  • Došlo ke změně spouštěcích skriptů? Mezi tyto skripty patří wsadmin, Správa Control, Správa Config, Správa App a Správa Task.
  • Byly do prostředí JVM předány nějaké konkrétní parametry?
  • Byly do cesty ke třídě serveru přidány nějaké soubory JAR?
  • Mají zařízení na úrovni operačního systému, jako systemd je například použití k automatickému spuštění komponent WAS po restartování serveru?

V závislosti na odpovědích na tyto otázky je potřeba vzít v úvahu aspekty migrace.

Tato přizpůsobení je potřeba zachytit v imagi kontejneru, na které běží AKS. Když použijete předem připravenou nabídku Azure Marketplace, tato přizpůsobení se nejlépe zpracují vytvořením vlastní image kontejneru a jejím zpřístupněním ve veřejném registru a následným nasměrováním na tento registr v době nasazení.

Určení, jestli je potřeba připojení k místnímu prostředí

Pokud vaše aplikace potřebuje přístup k některým místním službám, budete muset zřídit jednu ze služeb připojení Azure. Další informace najdete v článku Volba řešení pro připojení místní sítě k Azure. Alternativně budete muset aplikaci refaktorovat tak, aby používala veřejně přístupná rozhraní API, která nabízejí vaše místní prostředky.

Určení, jestli se používají fronty nebo témata JMS (Java Message Service)

Pokud vaše aplikace používá fronty nebo témata JMS, musíte je migrovat na externě hostovaný server JMS. Jednou ze strategií pro ty, kteří používají JMS, je použití služby Azure Service Bus a rozšířeného protokolu řízení front zpráv. Další informace najdete v tématu, které se věnuje použití JMS se službou Azure Service Bus a protokolem AMQP 1.0.

Pokud jste nakonfigurovali trvalá úložiště JMS, musíte zaznamenat jejich konfiguraci a použít ji po migraci.

Pokud používáte IBM MQ, můžete tento software migrovat do služby Azure Virtual Machines a používat ho tak, jak je.

Microsoft má řešení pro integraci IBM MQ s Logic Apps. Další informace najdete v tématu Připojení k serveru IBM MQ z pracovního postupu v Azure Logic Apps.

Určení, jestli používáte své vlastní vytvořené sdílené knihovny Java EE

Pokud používáte funkci sdílených knihoven Java EE, máte dvě možnosti:

  • Refaktorováním kódu své aplikace odeberte všechny závislosti na těchto knihovnách a místo toho začleňte jejich funkčnost přímo do aplikace.
  • Přidejte tyto knihovny do cesty ke třídám serveru.

Tyto knihovny můžete zpracovat stejnými technikami, jak je popsáno v tématu Přístup k rozhraním API třetích stran z aplikace Java EE.

Určení, jestli se používají sady OSGi

Pokud jste použili sady OSGi přidané do was, musíte přidat ekvivalentní soubory JAR přímo do webové aplikace.

Balíčky můžete zahrnout do image dodané do předem připravené nabídky Azure Marketplace. Další informace naleznete v tématu Konfigurace knihoven pro aplikace OSGi.

Určení, jestli aplikace obsahuje kód specifický pro operační systém

Pokud vaše aplikace obsahuje jakýkoli kód se závislostmi na hostitelském operačním systému, budete muset refaktorováním tyto závislosti odebrat. Pomocí File.Separator nebo Paths.get budete například muset nahradit použití znaků / nebo \ v cestách systému souborů.

Liberty v AKS běží na linuxových x86_64. Jakýkoli kód specifický pro operační systém musí být kompatibilní s Linuxem. Pokud se chcete dozvědět, jak zjistit konkrétní informace o operačním systému, postupujte podle kroků v části Určení, jestli je verze Liberty kompatibilní .

Určení, jestli se používá IBM Integration Bus

Pokud vaše aplikace používá IBM Integration Bus, musíte zaznamenat konfiguraci IBM Integration Bus. Další informace naleznete v dokumentaci IBM Integration Bus.

Ibm Integration Bus není přímo podporovaná v předem připravené nabídce Azure Marketplace. Pokud chcete tuto funkci povolit, postupujte podle pokynů v tématu Povolení aplikace JMS ve službě Liberty pro připojení ke sběrnici integrace služeb v dokumentaci IBM.

Určení, jestli se aplikace skládá z několika souborů WAR

Pokud se vaše aplikace skládá z několika souborů WAR, měli byste s těmito soubory WAR zacházet jako se samostatnými aplikacemi a projít tuto příručku pro každý z nich.

Určení, jestli je aplikace zabalená jako soubor EAR

Pokud je vaše aplikace zabalená jako soubor EAR, nezapomeňte prozkoumat soubory application.xml, ibm-application-bnd.xmi a ibm-application-ext.xmi a zachytit jejich konfigurace. Další informace naleznete v tématu Vytvoření balíčku podnikového archivu (EAR) na WebSphere.

Předem připravená nabídka Azure Marketplace umožňuje použít existující image kontejneru. Aplikaci můžete připravit podle svých obchodních požadavků.

Zjištění všech vnějších procesů a démonů běžících na produkčních serverech

Pokud používáte nějaké procesy, které běží mimo aplikační server, například monitorovací démony, budete je muset eliminovat nebo migrovat jinam.

Určení, jestli a jak se používá systém souborů

Kubernetes se zabývá systémy souborů s trvalými svazky (PV). Připojení trvalých svazků se v předem připravené nabídce Azure Marketplace nepodporuje. Pokud chcete povolit různé možnosti úložiště, postupujte podle pokynů v tématu Možnosti úložiště pro aplikace ve službě Azure Kubernetes Service.

Statický obsah jen pro čtení

Pokud vaše aplikace aktuálně poskytuje statický obsah, budete pro ni potřebovat alternativní umístění. Možná budete chtít statický obsah přesunout do Azure Blob Storage a přidat Azure CDN, abyste umožnili bleskově rychlé globální stahování. Další informace najdete v tématu Hostování statického webu ve službě Azure Storage a rychlém startu: Integrace účtu úložiště Azure s Azure CDN. Statický obsah můžete také přímo nasadit do aplikace v plánu Azure Spring Apps Enterprise. Další informace naleznete v tématu Nasazení webových statických souborů.

Dynamicky publikovaný statický obsah

Pokud vaše aplikace umožňuje nahrávání nebo vytváření statického obsahu, který je ale po vytvoření neměnný, můžete použít Azure Blob Storage a Azure CDN, jak je popsáno výše, s funkcí Azure Functions, která zpracovává nahrávání a aktualizace CDN. Pro vaše použití jsme poskytli ukázkovou implementaci na GitHubu – Uploading and CDN-preloading static content with Azure Functions. Statický obsah můžete také přímo nasadit do aplikace v plánu Azure Spring Apps Enterprise. Další informace naleznete v tématu Nasazení webových statických souborů.

Určení síťové topologie

Aktuální sada nabídek Azure Marketplace je výchozím bodem pro vaši migraci. Pokud nabídka nepokrývá aspekty vaší architektury, kterou potřebujete migrovat, musíte zachytit síťovou topologii stávajícího nasazení. Pak potřebujete tuto topologii reprodukovat v Azure, a to i po umístění základní nabídky pomocí jedné ze šablon řešení.

Síťová topologie je široké téma, ale následující odkazy můžou dát vašemu úsilí o migraci nějaký směr:

Účet pro použití adaptérů JCA a adaptérů prostředků

Pokud vaše stávající aplikace používá adaptéry JCA nebo adaptéry prostředků pro připojení k jiným podnikovým systémům, ujistěte se, že použijete konfiguraci těchto artefaktů na server Liberty spuštěný v AKS. Další informace najdete v tématu Přehled elementů konfigurace JCA a architektury java Připojení or.

Určení, jestli se používá clustering

Operátor zpracovává clustering pro všechny možné způsoby spouštění úloh WAS v AKS.

Kontrola clusteringu EJB

Pokud vaše aplikace používá místní podnikovou javu Beans (EJB), možná je budete muset migrovat do clusteru EJB. Další informace naleznete v tématu Vývoj aplikací EJB v Liberty.

Účet pro požadavky na vyrovnávání zatížení

Nejlepší způsob, jak počítat s vyrovnáváním zatížení, je použít integraci služby App Gateway poskytovanou integrovanou nabídkou Azure Marketplace.

Migrace

Kroky v této části předpokládají, že vaše analýza vás povede k rozhodnutí použít předem připravenou nabídku Azure Marketplace.

Zřízení nabídky

Pokud chcete nabídku otevřít na webu Azure Portal, přečtěte si téma IBM WebSphere Liberty a Open Liberty ve službě Azure Kubernetes Service. Vyberte Vytvořit a pak použijte informace, které jste shromáždili v předchozích krocích, a vyplňte pole nabídky.

Účet pro úložiště klíčů

Musíte počítat s migrací všech úložišť klíčů SSL/TLS, které vaše aplikace používá. Další informace najdete v tématu Konfigurace úložišť klíčů.

Připojení zdrojů JMS

Po připojení databází můžete JMS nakonfigurovat podle pokynů v části Přehled konfiguračních prvků JCA v dokumentaci IBM.

Účet pro protokolování

Bez hlavního protokolování nemůžete provádět cloud. Operátor poskytuje různé přístupy k monitorování. Další informace naleznete v tématu Monitorování prostředí runtime serveru Liberty. Pokud dáváte přednost použití elastického stacku, Azure poskytuje skvělou podporu pro Elastic. Úplné podrobnosti najdete v tématu Co je integrace Elastic s Azure? Znalosti v těchto dvou prostředcích můžete kombinovat, abyste dosáhli řešení protokolování optimalizovaného pro Azure pro Liberty v AKS.

Migrace aplikací

Bez ohledu na to, jestli jste se rozhodli poskytnout image aplikace v době nasazení, musíte aplikaci aktualizovat prostřednictvím CI/CD. Dokumentace IBM obsahuje ukázku, která ukazuje, jak tuto aktualizaci provést. Další informace naleznete v tématu Nasazení aplikací v Liberty.

Konfigurace testů

Abyste měli přístup k novým serverům spuštěným v Azure, musíte nakonfigurovat všechny testy v kontejneru pro aplikace. Stejně jako v případě problémů s CI/CD musíte zajistit, aby potřebná pravidla zabezpečení sítě umožňovala vašim testům přístup k aplikacím nasazeným do Azure. Další informace najdete v tématu Skupiny zabezpečení sítě.

Po migraci

Po dosažení cílů migrace, které jste definovali v části Před migrací, proveďte několik kompletních akceptačních testů, abyste ověřili, že vše funguje podle očekávání. Následující články obsahují informace o vylepšeních po migraci: