Migrace aplikací EAP JBoss do Azure Red Hat OpenShiftu

Tato příručka popisuje, o čem byste měli vědět, když chcete migrovat existující aplikaci JBoss EAP pro spuštění v Azure Red Hat OpenShiftu.

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 při úspěšné migraci aplikace EAP JBoss do Azure je výběr nejvhodnějšího cíle migrace. JBoss EAP běží dobře na virtuálních počítačích Azure nebo Azure Red Hat OpenShiftu.

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ě. Výběr virtuálních počítačů umožňuje odložit modernizaci.

Red Hat OpenShift spojuje otestované a důvěryhodné služby, které snižují tření vývoje, modernizace, nasazování, provozu a správy aplikací. Azure Red Hat OpenShift je založený na Kubernetes. Azure Red Hat OpenShift poskytuje konzistentní prostředí napříč veřejným cloudem, místním prostředím, hybridním cloudem nebo hraniční architekturou.

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í EAP JBoss do EAP JBoss na virtuálních počítačích Azure. Pokud můžete tolerovat převod aplikace tak, aby běžela v rámci Red Hat OpenShiftu, abyste snížili náklady na běh, zvažte migraci založenou na Azure Red Hat OpenShiftu. V tomto případě pokračujte v migraci aplikací JBoss EAP na JBoss EAP v Azure Red Hat OpenShiftu. Vysvětlení rozdílů mezi JBoss EAP a JBoss EAP pro OpenShift najdete v tématu Porovnání: JBoss EAP a JBoss EAP pro OpenShift.

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

Nejprve se rozhodněte, že Azure Red Hat OpenShift je vhodným cílem nasazení. Dále se rozhodněte, jestli je předem připravená nabídka Azure Marketplace dobrým výchozím bodem. Zvažte následující body týkající se předem připravené nabídky Azure Marketplace:

  • Red Hat a Microsoft vytvořili tuto nabídku, aby bylo možné rychle zřizovat JBoss EAP v Azure Red Hat OpenShiftu.
  • Nabídka na vysoké úrovni automatizuje následující kroky za vás.
    • Nainstalujte operátor EAP v Azure Red Hat OpenShiftu.
    • Sestavte image aplikace pomocí šablony eap-s2i-build. Další informace o zdrojové imagi (S2I) najdete v tématu Použití openJDK 11 source-to-image pro OpenShift.
    • Nasaďte aplikaci v Javě pomocí operátoru EAP. Další informace naleznete v referenční dokumentaci pro operátor EAP v Red Hat.

Pokud předem připravenou nabídku Azure Marketplace nepoužíváte, musíte se dozvědět, jak přímo používat operátorA protokolu EAP. Zvládnutí operátoru je nad rámec tohoto článku. Kompletní dokumentace pro operátor EAP je k dispozici v Red Hatu.

Zbývající část této části obsahuje některé aspekty, které je potřeba vzít v úvahu při rozhodování o použití předem připravené nabídky Azure Marketplace nebo použití operátora přímo.

Určení, jestli je verze protokolu EAP JBoss kompatibilní

Vaše stávající verze protokolu EAP JBoss musí být jednou z verzí podporovaných operátorem. Další informace naleznete v tématu Kompatibilita verzí a podpora v dokumentaci k Red Hat.

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 potřebujete bez ohledu na zvolenou cestu migrace. Následující aspekty a další výhody přináší podrobný inventář kapacity serveru.

  • Pomoc s výběrem velikosti virtuálních počítačů ve fondu uzlů
  • Abyste porozuměli množství paměti používané kontejnerem.
  • Pokud chcete zjistit, kolik procesoru potřebuje kontejner.

Ve službě Azure Red Hat OpenShift je možné změnit velikost fondů uzlů. Další informace najdete v tématu Změna velikosti clusteru – Microsoft Azure v dokumentaci k Red Hatu.

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 JBoss EAP, 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. Nezapomeňte zkontrolovat konfigurační soubory, jako jsou custom-config.xml nebo jboss-web.xml ve vašich aplikacích. 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.

Jakmile máte solidní inventář tajných kódů, projděte si dokumentaci operátora EAP týkající se tajných kódů. Další informace najdete v tématu Vytvoření tajného kódu v dokumentaci k Red Hatu.

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 máte solidní inventář certifikátů, můžete je nakonfigurovat v Azure Red Hat OpenShiftu. Další informace najdete v tématu Konfigurace protokolu TLS v OpenShift Container Platform(replace) v dokumentaci k Red Hatu.

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

Všechny cesty migrace pro JBoss EAP do Azure Red Hat OpenShiftu vyžadují konkrétní verzi Javy, která se pro každou cestu liší. Potřebujete ověřit, jestli je vaše aplikace schopná správně spouštět pomocí této podporované verze.

Poznámka:

Toto ověření je obzvláště důležité, pokud se váš aktuální server provozuje na nepodporované sadě 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

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 tématu Správa zdrojů dat v dokumentaci k Red Hatu. Jiné prostředky související s prostředím JNDI, jako jsou zprostředkovatelé zpráv ActiveMQ Artemis, mohou vyžadovat migraci nebo rekonfiguraci. Další informace o konfiguraci ActiveMQ Artemis najdete v tématu Konfigurace zasílání zpráv v dokumentaci k Red Hatu.

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

Pokud vaše aplikace spoléhá na replikaci relací s infinispanem nebo bez, máte tři možnosti:

  • Infinispan funguje dobře ve virtuálních počítačích Azure, ale pokud používáte profil, který poskytuje možnosti vysoké dostupnosti, mějte na paměti konfiguraci JGroups . Určete, jestli váš systém funguje jako spravovaná doména nebo samostatný server.
    • Pokud jsou ve spravované doméně, profily ha nebo full-ha se zabývají JGroups.
    • Pokud je na samostatném serveru, konfigurační soubory standalone-ha.xml nebo standalone-full-ha.xml se zabývají JGroups.
    • Microsoft Azure nepodporuje protokoly zjišťování JGroups založené na vícesměrové vysílání UDP. Další informace najdete v tématu Použití vysoké dostupnosti JBoss EAP v Microsoft Azure v dokumentaci k Red Hatu.
  • 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.

Pro všechny tyto možnosti je vhodné zvládnout, jak JBoss EAP dělá replikaci stavu relace HTTP. Další informace naleznete v tématu O replikaci relace HTTP v dokumentaci k Red Hat.

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 JBoss EAP najdete v dokumentaci ke správě zdrojů dat.

Určení, jestli je protokol EAP JBoss 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ří hostitel, eap_env, samostatný a doména.
  • 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?

Tato přizpůsobení je potřeba zachytit v imagi kontejneru spuštěné v Azure Red Hat OpenShiftu. Další informace najdete v tématu Konfigurace JBoss EAP pro OpenShift Image pro vaši aplikaci Java v dokumentaci k Red Hatu.

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, můžete je chtít 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, 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 zachytit jejich konfiguraci a po migraci ji použít.

Další informace najdete v tématu Konfigurace zasílání zpráv v dokumentaci k Red Hatu.

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 pomocí stejných technik, jak je popsáno v části Určení, jestli byl protokol EAP JBoss přizpůsobený .

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ů.

Azure Red Hat OpenShift běží na OpenShiftu 4 pomocí Red Hat Enterprise Linux CoreOS (RHCOS) jako operačního systému pro všechny řídicí roviny a pracovní uzly. Jakýkoli kód specifický pro operační systém musí být kompatibilní s RHCOS.

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 zaznamenat jejich konfigurace.

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.

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

Nejlepším způsobem, jak počítat s vyrovnáváním zatížení, je použít integraci služby App Gateway. Další informace najdete v tématu Co je Aplikace Azure Gateway?

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 JBoss EAP v Azure Red Hat OpenShiftu. Vyberte Vytvořit a pak postupujte podle pokynů v nabídce.

Migrace aplikací

Tato nabídka podporuje proces Source-to-Image (S2I) pro sestavení a spuštění aplikace Java na imagi JBoss EAP for OpenShift. Red Hat obsahuje ukázku, která ukazuje, jak to udělat ručně, pokud chcete nasazení provést později sami. Další informace naleznete v kapitole 2. V dokumentaci k Red Hatu sestavte a spusťte aplikaci Java v JBoss EAP for OpenShift Image .

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í. Informace o některých potenciálních vylepšeních po migraci najdete v následujících článcích: