Migrace aplikací Serveru WebLogic do protokolu JBoss EAP ve službě Aplikace Azure

Tato příručka popisuje, o čem byste měli vědět, když chcete migrovat existující aplikaci Serveru WebLogic, která se má spouštět ve službě Aplikace Azure Service pomocí protokolu JBoss EAP.

Před migrací

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

Pokud nemůžete splnit žádný z těchto požadavků na předběžnou migraci, přečtěte si doprovodnou příručku k migraci aplikací do služby Virtual Machines: Migrace aplikací serveru WebLogic do služby Azure Virtual Machines

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. Je užitečné například pomoct s výběrem plánu služby App Service.

Seznam dostupných úrovní plánu služby App Service zobrazuje informace o paměti, jádrech procesoru, úložišti a cenách. Mějte na paměti, že plán JBoss EAP ve službě App Service je k dispozici pouze na úrovních plánu služby App Service úrovně Premium V3 a Izolované verze 2 .

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“. Při používání aplikačních serverů, jako je server WebLogic, se tyto tajné kódy nacházejí v mnoha různých konfiguračních souborech a úložištích konfigurací. Ve všech vlastnostech a konfiguračních souborech na produkčních serverech vyhledejte tajné kódy a hesla. Nezapomeňte zkontrolovat soubor weblogic.xml v souborech WAR. Konfigurační soubory obsahující hesla nebo přihlašovací údaje se mohou nacházet také ve vaší aplikaci. Další informace najdete v článku Základní koncepty služby Azure Key Vault.

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>

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 najdete v článku Zdroje dat serveru WebLogic v dokumentaci Oracle. 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 naleznete v tématu Oracle WebLogic Server 12.2.1.4.0.

Kontrola konfigurace domény

Hlavní konfigurační jednotkou na serveru WebLogic je doména. Soubor config.xml obsahuje rozsáhlou konfiguraci, kterou při migraci musíte pečlivě zvážit. Tento soubor obsahuje odkazy na další soubory XML, které jsou uložené v podadresářích. Oracle doporučuje, abyste ke konfiguraci spravovatelných objektů a služeb serveru WebLogic normálně používali konzolu pro správu a umožnili serveru WebLogic spravovat soubor config.xml. Další informace najdete v článku Konfigurační soubory domény.

Ve vaší aplikaci

Prověřte soubor WEB-INF/weblogic.xml a/nebo soubor WEB-INF/web.xml.

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

Pokud vaše aplikace spoléhá na replikaci relace, ať už s modulem Oracle Coherence*Web, nebo bez něj, máte dvě možnosti:

  • Refaktorujte aplikaci tak, aby používala databázi pro správu relace.
  • Refaktorujte aplikaci tak, aby externalizovala relaci do služby Azure Redis. Další informace najdete v článku, který se věnuje službě Azure Cache for Redis.

U všech těchto možností je vhodné osvojit si znalosti toho, jak WebLogic provádí replikaci stavu relace HTTP. Další informace najdete v článku, který se věnuje replikaci stavu relace HTTP v dokumentaci společnosti Oracle.

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 u serveru WebLogic najdete v článku o používání ovladačů JDBC se serverem WebLogic.

Určení, zda byla platforma WebLogic přizpůsobena

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ří setDomainEnv, commEnv, startWebLogic a stopWebLogic.
  • 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?

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 věnovaném 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, budete je muset migrovat na externě hostovaný server JMS. Pro aplikace používající JMS může skvělou migrační strategii představovat Azure Service Bus a rozšířený protokol řízení front zpráv (AMQP). Další informace najdete v tématu Použití služby Java Message Service 1.1 se standardem služby Azure Service Bus a AMQP 1.0.

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

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.

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

Pokud jste použili sady OSGi přidané na server WebLogic, budete muset přidat ekvivalentní soubory JAR přímo do webové aplikace.

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, musíte ho refaktorovat, abyste tyto závislosti odebrali. Může být například nutné nahradit jakékoli použití / cest systému souborů nebo \ v cestě File.Separator k systému souborů nebo Paths.get v případě, že je vaše aplikace spuštěná ve Windows.

Určení, jestli se používá Oracle Service Bus

Pokud vaše aplikace používá Oracle Service Bus (OSB), budete muset zjistit konfiguraci OSB. Další informace najdete v článku Informace o instalaci Oracle Service Bus.

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, prověřte soubory application.xml a weblogic-application.xml a poznačte si jejich konfiguraci.

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.

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

JBoss EAP ve službě Aplikace Azure Service podporuje Javu 8 a 11. Proto budete muset ověřit, že je vaše aplikace schopna správně fungovat s použitím podporované verze. Toto ověření je obzvláště důležité, pokud váš aktuální server používá podporovanou sadu JDK (například Oracle JDK nebo IBM OpenJ9).

Aktuální verzi jazyka Java získáte tak, že se přihlásíte k produkčnímu serveru a spustíte následující příkaz:

java -version

Určení, jestli aplikace využívá naplánované úlohy

Naplánované úlohy, jako jsou úlohy plánovače Quartz nebo úlohy unixového cron, by se neměly používat se službou Aplikace Azure Service. Aplikace Azure Služba vám nezabrání v interním nasazení aplikace obsahující naplánované úlohy. Pokud ale u aplikace dojde k horizontálnímu rozšíření kapacity, může se stejná naplánovaná úloha spustit v průběhu naplánovaného období více než jednou. Tato situace může vést k nezamýšleným důsledkům.

Pokud chcete spouštět naplánované úlohy v Azure, zvažte použití služby Azure Functions s triggerem časovače. Další informace najdete v tématu Trigger časovače pro Azure Functions. Samotný kód úlohy nemusíte do funkce migrovat. Funkce může úlohu aktivovat jednoduše tak, že vyvolá adresu URL ve vaší aplikaci.

Poznámka:

Abyste zabránili zneužití, budete pravděpodobně muset zajistit, aby koncový bod vyvolávající úlohu vyžadoval přihlašovací údaje. V takovém případě bude tyto přihlašovací údaje muset poskytovat funkce triggeru.

Určení, jestli se používá nástroj WLST (WebLogic Scripting Tool)

Pokud k nasazení aktuálně používáte WLST, budete muset posoudit, co dělá. Pokud WLST mění všechny parametry aplikace (runtime) v rámci nasazení, budete muset zajistit, aby tyto parametry odpovídaly jedné z následujících možností:

  • Jsou externalizované jako nastavení aplikace.
  • Jsou vložené v aplikaci.
  • Během nasazování využívají rozhraní příkazového řádku JBoss.

Pokud WLST dělá víc, než je uvedeno výše, budete mít během migrace další práci.

Určení, jestli aplikace využívá rozhraní API specifická pro WebLogic

Pokud vaše aplikace používá rozhraní API specifická pro WebLogic, budete muset aplikaci refaktorovat tak, aby je nepoužíla. Pokud jste například použili třídu uvedenou v referenčních informacích k Java API pro Oracle WebLogic Server, znamená to, že jste ve vaší aplikaci použili rozhraní API specifické pro WebLogic. Sada nástrojů Red Hat Migration Toolkit for Apps vám může pomoct s odebráním a refaktoringem těchto závislostí.

Určení, jestli aplikace používá objekty Entity bean nebo objekty CMP bean ve stylu EJB 2.x

Pokud vaše aplikace používá Entity Beans nebo EJB 2.x styl CMP boby, budete muset refaktorovat aplikaci tak, aby je nepoužít.

Určení, jestli se používá funkce klienta aplikace Java EE

Pokud máte klientské aplikace, které se připojují k aplikaci (server) pomocí funkce Klient aplikace Java EE, budete muset refaktorovat klientské aplikace i vaši (serverovou) aplikaci tak, aby používala rozhraní HTTP API.

Určení, jestli se použil plán nasazení

Pokud se k provedení nasazení použil plán nasazení, budete muset posoudit, co plán nasazení dělá. Pokud plán znamená přímé nasazení, můžete webovou aplikaci nasadit bez jakýchkoli změn. Pokud je plán nasazení propracovanější, musíte určit, jestli můžete v rámci nasazení využít rozhraní příkazového řádku JBoss pro správnou konfiguraci vaší aplikace. Pokud se rozhraní příkazového řádku JBoss nedá použít, musíte vaši aplikaci refaktorovat takovým způsobem, aby plán nasazení už nebyl potřeba.

Určení, jestli se používají časovače EJB

Pokud vaše aplikace používá časovače EJB, budete muset ověřit, že kód časovače EJB může být aktivován každou instancí EAP JBoss nezávisle. Toto ověření je potřeba, protože při horizontálním škálování služby App Service se každý časovač EJB aktivuje na vlastní instanci EAP JBoss.

Ověření, jestli a jak se používá systém souborů

Jakékoli používání systému souborů na aplikačním serveru bude vyžadovat změnu konfigurace nebo ve vzácných případech změnu architektury. Systém souborů může být používán sdílenými moduly WebLogic nebo kódem vaší aplikace. Můžete zjistit některé nebo všechny z následujících situací.

Statický obsah jen pro čtení

Pokud vaše aplikace aktuálně obsluhuje statický obsah, bude vyžadováno alternativní umístění pro tento statický obsah. Možná budete chtít přesunout statický obsah do služby Azure Blob Storage a přidat Azure CDN pro bleskově rychlé stahování globálně.

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. Poskytli jsme ukázkovou implementaci pro vaše použití.

Dynamický nebo interní obsah

U souborů, které vaše aplikace často zapisuje a čte (například dočasné datové soubory) nebo statické soubory, které jsou viditelné jenom pro vaši aplikaci, je možné azure Storage připojit k systému souborů služby App Service.

Určení, jestli se používají konektory JCA

Pokud vaše aplikace používá konektory JCA, budete muset ověřit, že je možné konektor JCA použít v JBoss EAP. Pokud je implementace JCA svázaná s WebLogic, budete muset refaktorovat aplikaci tak, aby nepoužíla konektor JCA. Pokud se dá použít, budete muset přidat jar do cesty ke třídě serveru a umístit potřebné konfigurační soubory do správného umístění do adresářů serveru JBoss EAP, aby byl dostupný.

Určení, jestli aplikace využívá adaptér prostředků

Pokud vaše aplikace potřebuje adaptér prostředků (RA), musí být kompatibilní s protokolem JBoss EAP. Zjistěte, jestli RA funguje správně na samostatné instanci protokolu EAP JBoss, a to tak, že ji nasadíte na server a správně ji nakonfigurujete. Pokud RA funguje správně, budete muset přidat jar do cesty třídy serveru instance služby App Service a umístit potřebné konfigurační soubory do správného umístění do adresářů serveru JBoss EAP, aby byl dostupný.

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

Pokud vaše aplikace používá JAAS, budete muset zaznamenat, jak je služba JAAS nakonfigurovaná. Pokud používáte databázi, můžete ji převést na doménu JAAS v JBoss EAP. Pokud se jedná o vlastní implementaci, budete muset ověřit, že se dá použít v JBoss EAP.

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

Kvůli dosažení vysoké dostupnosti jste aplikaci pravděpodobně nasadili na několik serverů WebLogic. Aplikace Azure Služba je schopná škálovat, ale pokud jste použili rozhraní API clusteru WebLogic, budete muset refaktorovat kód, abyste eliminovali použití tohoto rozhraní API.

Migrace

Red Hat Migration Toolkit for Apps

Sada nástrojů Red Hat Migration Toolkit for Applications je bezplatné rozšíření pro Visual Studio Code. Toto rozšíření analyzuje kód a konfiguraci vaší aplikace a poskytuje doporučení pro migraci aplikací Jakarta EE na JBoss EAP z jiných aplikačních serverů, jako je odebrání závislostí na proprietárních rozhraních API. Rozšíření také nabídne doporučení, pokud migrujete do cloudu z místního prostředí. Další informace najdete v tématu Přehled sady nástrojů migration toolkit for Applications.

Obsah této příručky vám pomůže vyřešit ostatní komponenty cesty migrace, jako je volba správného typu plánu služby App Service, externalizace stavu relace a použití Azure ke správě instancí protokolu EAP místo rozhraní pro správu JBoss.

Zřízení plánu služby App Service

V seznamu dostupných plánů služeb vyberte plán, jehož specifikace splňují nebo překračují specifikace aktuálního produkčního hardwaru.

Poznámka:

Pokud hodláte provozovat přípravná/testovací nasazení nebo používat sloty nasazení, musí plán služby App Service zahrnovat tuto dodatečnou kapacitu. Pro aplikace Java doporučujeme používat plány Premium nebo vyšší.

Vytvoření plánu služby App Service

Vytváření a nasazování webových aplikací

Ve svém plánu služby App Service budete muset vytvořit webovou aplikaci pro každý soubor WAR nasazený na server JBoss EAP.

Poznámka:

I když do jedné webové aplikace je možné nasadit několik souborů WAR, je to silně nežádoucí. Nasazení několika souborů WAR do jedné webové aplikace brání škálování jednotlivých aplikací podle toho, jaká je po nich poptávka. Zvyšuje navíc složitost pro následné kanály nasazení. Pokud na jedné adrese URL musí být dostupných několik aplikací, uvažujte o použití nějakého směrovacího řešení, jako je Azure Application Gateway.

Aplikace Maven

Pokud je vaše aplikace vytvořena ze souboru Maven POM, použijte k vytvoření webové aplikace a jejímu nasazení modul plug-in WebApp pro Maven. Další informace najdete v části Rychlý start ke konfiguraci modulu plug-in Maven: Vytvoření aplikace Java ve službě Aplikace Azure Service.

Jiné aplikace než Maven

Pokud modul plug-in Maven nelze použít, budete muset webovou aplikaci zřídit prostřednictvím jiných mechanismů, mezi které patří:

Po vytvoření webové aplikace použijte jeden z dostupných mechanismů nasazení k nasazení aplikace. Další informace najdete v tématuNasazení souborů do služby App Service.

Migrace parametrů modulu runtime JVM

Pokud vaše aplikace vyžaduje konkrétní parametry modulu runtime, použijte k jejich určení nejvhodnější mechanismus. Další informace najdete v části Nastavení možností modulu runtime Java v části Konfigurace aplikace Java pro službu Aplikace Azure Service.

Migrace externalizovaných parametrů

Pokud potřebujete použít externí parametry, budete je muset nastavit jako nastavení aplikace. Další informace najdete v tématu Konfigurace nastavení aplikace.

Migrace spouštěcích skriptů

Pokud původní aplikace používala vlastní spouštěcí skript, budete ho muset migrovat do skriptu Bash. Další informace naleznete v tématu Přizpůsobení konfigurace aplikačního serveru.

Naplnění tajných kódů

K uložení všech tajných kódů vaší aplikace můžete použít Nastavení aplikace. Pokud máte v úmyslu používat stejný tajný klíč nebo tajné kódy mezi více aplikacemi nebo potřebujete jemně odstupňované zásady přístupu a možnosti auditu, použijte místo toho odkazy služby Azure Key Vault. Další informace najdete v části Použití odkazů služby KeyVault v části Konfigurace aplikace Java pro službu Aplikace Azure Service.

Konfigurace vlastní domény a SSL

Pokud vaše aplikace bude viditelná ve vlastní doméně, budete k ní muset namapovat webovou aplikaci. Další informace najdete v tématu Kurz: Mapování existujícího vlastního názvu DNS na službu Aplikace Azure Service.

Pak budete muset svázat certifikát TLS/SSL pro danou doménu s webovou aplikací služby App Service. Další informace najdete v tématu Zabezpečení vlastního názvu DNS pomocí vazby TLS/SSL ve službě Aplikace Azure Service.

Migrace zdrojů dat, knihoven a prostředků JNDI

Pokud chcete migrovat zdroje dat, postupujte podle kroků v části Konfigurace zdrojů dat v aplikaci Java pro službu Aplikace Azure Service.

Podle pokynů v části JBoss EAP v části Konfigurace aplikace Java pro službu Aplikace Azure Service migrujte všechny další závislosti cesty na úrovni serveru.

Migrujte všechny další sdílené prostředky JDNI na úrovni serveru. Další informace najdete v části JBoss EAP konfigurace aplikace Java pro službu Aplikace Azure Service.

Migrace konektorů JCA a modulů JAAS

Pokud chcete migrovat všechny konektory JCA a moduly JAAS, postupujte podle pokynů v tématu Instalace modulů a závislostí.

Poznámka:

Pokud postupujete podle doporučené architektury jedné war na aplikaci, zvažte migraci knihoven tříd na úrovni serveru a prostředků JNDI do vaší aplikace. Tím se výrazně zjednoduší zásady správného řízení komponent a správa změn. Pokud chcete nasadit více než jednu war na aplikaci, měli byste si projít jednu z našich doprovodných příruček uvedených na začátku této příručky.

Migrace naplánovaných úloh

Minimálně byste měli naplánované úlohy přesunout na virtuální počítač Azure, aby už nebyly součástí vaší aplikace. Alternativně se můžete rozhodnout je modernizovat do Javy řízené událostmi pomocí služeb Azure, jako jsou Azure Functions, SQL Database a Event Hubs.

Restartování a orientační test

Nakonec budete muset všechny změny konfigurace uplatnit restartováním webové aplikace. Po restartování ověřte, že vaše aplikace správně funguje.

Po migraci

Teď, když jste migrovali aplikaci do služby Aplikace Azure Service, byste měli ověřit, že funguje podle očekávání. Jakmile to uděláte, máme pro vás několik doporučení, která vám umožní, aby vaše aplikace byla nativní pro cloud.

Doporučení