WebLogic Server-alkalmazások migrálása a JBoss EAP-ba Azure-alkalmazás szolgáltatásban

Ez az útmutató azt ismerteti, hogy mire érdemes figyelnie, amikor át szeretne telepíteni egy meglévő WebLogic Server-alkalmazást, hogy a JBoss EAP használatával fusson Azure-alkalmazás szolgáltatásban.

A migrálás előtt

A sikeres migrálás biztosításához a kezdés előtt végezze el az alábbi szakaszokban leírt értékelési és leltározási lépéseket.

Ha a migrálás előtti követelmények egyikét sem tudja teljesíteni, tekintse meg az alkalmazások virtuális gépekre való migrálásához szükséges útmutatót: WebLogic Server-alkalmazások migrálása Azure-beli virtuális gépekre

A leltárkiszolgáló kapacitása

Dokumentálja az aktuális üzemi kiszolgáló(ok) hardverét (memóriáját, processzorát, lemezét), valamint az átlagos és csúcsidőszaki kérelmek számát és az erőforrás-kihasználtságot. Ezekre az információkra szüksége lesz a választott migrálási útvonaltól függetlenül. Hasznos lehet például az App Service-csomag kiválasztásának útmutatója.

Az elérhető App Service-csomagszintek listája megjeleníti a memóriát, a processzormagokat, a tárterületet és a díjszabási információkat. Vegye figyelembe, hogy az App Service JBoss EAP-ja csak a Prémium V3 és az Izolált V2 App Service-csomag szintjeien érhető el.

Az összes titkos kód leltározása

A szolgáltatásként nyújtott konfigurációs technológiák (például az Azure Key Vault) elterjedése előtt a titkos kódok fogalma kissé homályos volt. Ehelyett olyan eltérő konfigurációs beállítások közül választhatott, amelyek tulajdonképpen a mai titkos kódoknak feleltek meg. Az alkalmazáskiszolgálóknak (például a WebLogic-kiszolgálónak) köszönhetően ezek a titkos kódok számos eltérő konfigurációs fájlban és tárolóban találhatók. Ellenőrizze az éles kiszolgáló(k) minden tulajdonságát és konfigurációs fájlját titkos kódokhoz és jelszavakhoz. Ellenőrizze a WAR-fájlok weblogic.xml fájlját is. Az alkalmazásban jelszavakat vagy hitelesítő adatokat tartalmazó konfigurációs fájlok is szerepelhetnek. További információ: Azure Key Vault – alapvető fogalmak.

Az összes tanúsítvány leltározása

Dokumentáljon minden, nyilvános SSL-végponthoz használt tanúsítványt. A következő parancs futtatásával megtekintheti az éles kiszolgáló(ko)n található összes tanúsítványt:

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

JNDI-erőforrások leltározása

Leltározzon minden JNDI-erőforrást. Előfordulhat például, hogy az adatforrások (például az adatbázisok) olyan JNDI-névvel rendelkeznek, amely lehetővé teszi, hogy a JPA helyesen kössön EntityManager-példányokat egy adott adatbázishoz. További információt a JNDI-erőforrásokról és -adatbázisokról az Oracle-dokumentáció A WebLogic-kiszolgáló adatforrásai című témakörében találhat. Egyéb JNDI-erőforrások (például a JMS-üzenetközvetítők) migrálást vagy újrakonfigurálást igényelhetnek. A JMS-konfigurációval kapcsolatos további információkért lásd: Oracle WebLogic Server 12.2.1.4.0.

A tartomány konfigurációjának vizsgálata

A WebLogic-kiszolgáló fő konfigurációs egysége a tartomány. Ennek megfelelően a config.xml fájl olyan konfigurációkat tartalmaz, amelyeket figyelembe kell vennie a migrálás során. A fájl az alkönyvtárakban tárolt további XML-fájlokra mutató hivatkozásokat tartalmaz. Az Oracle azt javasolja, hogy a felügyeleti konzollal konfigurálja a WebLogic-kiszolgáló felügyelhető objektumait és szolgáltatásait, és engedélyezze a WebLogic-kiszolgáló számára a config.xml fájl karbantartását. További információ: Tartománykonfigurációs fájlok.

Az alkalmazáson belül

Tekintse meg a WEB-INF/weblogic.xml ás/vagy a WEB-INF/web.xml fájlt.

Annak meghatározása, hogy az alkalmazás munkamenet-replikációt használ-e

Ha az alkalmazás munkamenet-replikációt használ – Oracle Coherence*Web segítségével vagy anélkül –, két lehetősége van:

  • Bontsa újra az alkalmazást munkamenet-kezeléshez szükséges adatbázis használatához.
  • Bontsa újra az alkalmazást az Azure Redis Service-ben való külső elérhetővé tételéhez. További információ: Azure Cache for Redis.

Az összes opció esetében érdemes elsajátítani, hogy a WebLogic hogyan végzi el a HTTP-munkamenetek állapotának replikálását. További információt az Oracle-dokumentáció HTTP-munkamenetek állapotának replikációja című témakörében találhat.

Dokumentum-adatforrások

Ha az alkalmazása adatbázisokat használ, Önnek rögzítenie kell az alábbi adatokat:

  • Mi az adatforrás neve?
  • Milyen a kapcsolatkészlet konfigurációja?
  • Hol található a JDBC-illesztőprogram JAR-fájlja?

További információ a WebLogic JDBC-illesztőprogramjairól: JDBC-illesztőprogramok használata a WebLogic-kiszolgálóval.

Annak megállapítása, hogy a WebLogic testre van-e szabva

Határozza meg, hogy a következő testreszabások közül melyik lett végrehajtva, és rögzítse, mi történt.

  • Módosultak az indítási szkriptek? Ilyen szkript például a setDomainEnv, commEnv, startWebLogic, és stopWebLogic.
  • Küld adott paramétereket a JVM-nek az alkalmazás?
  • Tartalmaz JAR-fájlokat a kiszolgáló osztályútvonala?

Annak megállapítása, hogy szükséges-e helyszíni kapcsolat

Ha az alkalmazásnak hozzá kell férnie helyszíni szolgáltatásokhoz, ki kel építenie egy Azure-beli kapcsolati szolgáltatást. További információ: Megoldás választása a helyszíni hálózat Azure-hoz való csatlakoztatásához. Másik megoldásként újrabonthatja az alkalmazást, hogy az nyilvánosan elérhető, a helyszíni erőforrások által közzétett API-kat használjon.

Állapítsa meg, hogy használ-e Java Message Service- (JMS-) üzenetsorokat és -témákat

Ha az alkalmazása JMS-üzenetsorokat vagy -témákat használ, azokat egy külsőleg üzemeltetett JMS-kiszolgálóra kell migrálnia. Az Azure Service Bus és az Advanced Message Queueing Protocol (AMQP) remek migrálási stratégia lehet a JMS-t használóknak. További információkért lásd: A JMS használata az Azure Service Busszal és az AMQP 1.0-val.

Ha a JMS állandó tárolói konfigurálva vannak, Önnek rögzítenie kell azok konfigurációját, majd alkalmaznia a migrálás után.

Annak meghatározása, hogy saját, egyénileg létrehozott megosztott Java EE-könyvtárakat használ-e

Ha a megosztott Java EE-könyvtár funkciót használja, két lehetősége van:

  • Bontsa újra az alkalmazás kódját a könyvtárak minden függőségének eltávolításához, majd foglalja közvetlenül az alkalmazásba a funkciókat.
  • Adja hozzá a könyvtárakat a kiszolgáló osztályútvonalához.

Annak meghatározása, hogy a kiszolgáló OSGi-csomagokat használ-e

Ha hozzáadott OSGi-csomagokat a WebLogic-kiszolgálóhoz, az egyenértékű JAR-fájlokat is hozzá kell adnia közvetlenül a webalkalmazáshoz.

Annak meghatározása, hogy az alkalmazás tartalmaz-e az operációs rendszerre vonatkozó kódot

Ha az alkalmazás tartalmaz a gazdagép operációs rendszeréhez tartozó függőségekkel rendelkező kódot, azt Önnek újra kell bontania a függőségek eltávolításához. Előfordulhat például, hogy a File.Separator vagy Paths.get fájlrendszerbeli útvonalakkal rendelkező /- vagy \-előfordulásokat cserélnie kell.

Annak megállapítása, hogy az Oracle Service Bus használatban van-e

Ha az alkalmazása Oracle Service Bust (OSB) használ, rögzítenie kell annak konfigurációját. További információ: Az Oracle Service Bus telepítése.

Annak meghatározása, hogy az alkalmazás több WAR-fájlból áll-e

Ha az alkalmazása több WAR-fájlból áll, ezeket különálló alkalmazásként kell kezelnie, és az útmutató lépéseit egyenként elvégeznie mindegyikhez.

Annak megállapítása, hogy az alkalmazás EAR-ként van-e csomagolva

Ha az alkalmazása EAR-fájlként van csomagolva, tekintse meg az application.xml és a weblogic-application.xml fájlt, és rögzítse a konfigurációjukat.

Az éles kiszolgálókon futó összes külső folyamat és démon azonosítása

Ha rendelkezik az alkalmazáskiszolgálón kívül futó folyamatokkal, például figyelési démonokkal, ezeket el kell távolítania, vagy máshová kell migrálnia.

Annak ellenőrzése, hogy a támogatott Java-verzió megfelelően működik-e

A JBoss EAP a Azure-alkalmazás Szolgáltatásban támogatja a Java 8-at és a 11-et. Ezért ellenőrizze, hogy az alkalmazása megfelelően működhet-e az adott támogatott verzió használatával. Ez az ellenőrzés különösen fontos, ha az aktuális kiszolgáló támogatott JDK-t használ (például az Oracle JDK-t vagy az IBM OpenJ9 rendszert).

A jelenlegi Java-verzió beszerzéséhez jelentkezzen be az éles kiszolgálóra, és futtassa a következő parancsot:

java -version

Annak meghatározása, hogy az alkalmazás ütemezett feladatokra támaszkodik-e

Az ütemezett feladatokat, például a Quartz Scheduler-feladatokat vagy a Unix cron-feladatokat nem szabad használni Azure-alkalmazás szolgáltatással. Azure-alkalmazás szolgáltatás nem akadályozza meg az ütemezett feladatokat tartalmazó alkalmazások belső üzembe helyezését. Ha azonban az alkalmazást horizontálisan felskálázza, ez az ütemezett feladat ütemezett időszakonként többször is lefuthat. Ez nem várt következményekkel járhat.

Ha ütemezett feladatokat szeretne végrehajtani az Azure-ban, fontolja meg az Azure Functions időzítő eseményindítóval való használatát. További információkért tekintse meg az Azure Functions időzítő eseményindítóját. Nem kell a feladat kódját egy függvénybe migrálnia. A függvény egyszerűen meghívhat egy URL-címet az alkalmazásban a feladat aktiválásához.

Megjegyzés:

A kártékony használat megelőzése érdekében valószínűleg meg kell győződnie arról, hogy a feladat meghívási végpontja megköveteli a hitelesítő adatokat. Ebben az esetben az eseményindító függvénynek meg kell adnia a hitelesítő adatokat.

Annak megállapítása, hogy az alkalmazás WebLogic Scripting Toolt (WLST) használ-e

Ha jelenleg a WLST-t használja az üzembe helyezés végrehajtásához, értékelnie kell, hogy mit csinál. Ha a WLST az üzembe helyezés részeként módosítja az alkalmazás bármely (futtatókörnyezeti) paraméterét, győződjön meg arról, hogy ezek a paraméterek megfelelnek az alábbi lehetőségek egyikének:

  • Külsőleg alkalmazásbeállításokként vannak meghatározva.
  • Be vannak ágyazva az alkalmazásba.
  • Üzembe helyezés során a JBoss CLI-t használják.

Ha a WLST a fent említettnél többet tesz, a migrálás során további teendői lesznek.

Határozza meg, hogy az alkalmazás WebLogic-specifikus API-kat használ-e

Ha az alkalmazás WebLogic-specifikus API-kat használ, újra kell szakosítania az alkalmazást, hogy NE használja őket. Ha például az Oracle WebLogic Server Java API-referenciájában említett osztályt használt, akkor WebLogic-specifikus API-t használt az alkalmazásban. A Red Hat Migration Toolkit for Apps segíthet ezeknek a függőségeknek a eltávolításában és újrabontásában.

Annak meghatározása, hogy az alkalmazás használ-e entitásbeaneket vagy EJB 2.x típusú CMP-beaneket

Ha az alkalmazás Entity Beans vagy EJB 2.x stílusú CMP-babot használ, újra kell formáznia az alkalmazást, hogy NE használja őket.

Annak meghatározása, hogy az alkalmazás használja-e a Java EE Application Client funkciót

Ha rendelkezik olyan ügyfélalkalmazásokkal, amelyek a Java Enterprise kiadás Application Client szolgáltatással csatlakoznak a (kiszolgálói) alkalmazáshoz, akkor az ügyfélalkalmazásokat és a (kiszolgálói) alkalmazást is újra kell átépítenie a HTTP API-k használatához.

Állapítsa meg, hogy használtak-e üzembehelyezési tervet

Ha az üzembe helyezés végrehajtásához üzembe helyezési tervet használtak, fel kell mérnie, hogy mit csinál az üzembe helyezési terv. Ha az üzembehelyezési terv egyszerű üzembe helyezés, módosítás nélkül üzembe helyezheti a webalkalmazást is. Ha összetettebb üzembehelyezési tervről van szó, meg kell állapítania, hogy a JBoss CLI használatával megfelelően tudja-e konfigurálni az alkalmazást az üzembe helyezés részeként. Ha nem lehet használni a JBoss CLI-t, újra kell bontania az alkalmazást, hogy már ne legyen szükség központi üzembehelyezési tervre.

Annak megállapítása, hogy az alkalmazás használ-e EJB időzítőket

Ha az alkalmazás EJB időzítőket használ, ellenőriznie kell, hogy az EJB időzítőkódot minden JBoss EAP-példány egymástól függetlenül aktiválhatja-e. Erre az ellenőrzésre azért van szükség, mert amikor az App Service horizontálisan skálázódik, minden EJB-időzítő a saját JBoss EAP-példányán aktiválódik.

Annak ellenőrzése, hogy a fájlrendszer használata és használata hogyan történik

Az alkalmazáskiszolgáló fájlrendszerének bármely használatához újrakonfigurálásra vagy bizonyos ritka esetekben architekturális módosításokra van szükség. A fájlrendszert használhatják a WebLogic megosztott moduljai vagy az alkalmazás kódja. Az alábbi forgatókönyvek némelyike vagy mindegyike igaz lehet Önre.

Csak olvasható statikus tartalom

Ha az alkalmazás jelenleg statikus tartalmat szolgál ki, a statikus tartalomhoz másik helyre lesz szükség. Érdemes lehet statikus tartalmat áthelyezni az Azure Blob Storage-ba , és globálisan hozzáadni az Azure CDN-t a villámgyors letöltésekhez.

Dinamikusan közzétett statikus tartalom

Ha az alkalmazás engedélyezi az alkalmazás által feltöltött/előállított statikus tartalmakat, azonban a létrehozás után nem módosítható, az Azure Blob Storage és az Azure CDN fent ismertetett módon történő, egy Azure-függvénnyel közös használatával kezelheti a feltöltéseket és a CDN-frissítést. Egy minta implementációt biztosítunk az Ön számára.

Dinamikus vagy belső tartalom

Az alkalmazás által gyakran írt és olvasott fájlok (például ideiglenes adatfájlok) vagy a csak az alkalmazás számára látható statikus fájlok esetében az Azure Storage csatlakoztatható az App Service fájlrendszeréhez.

JCA-összekötők használatának meghatározása

Ha az alkalmazás JCA-összekötőket használ, ellenőriznie kell, hogy a JCA-összekötő használható-e a JBoss EAP-n. Ha a JCA-implementáció a WebLogichoz van kötve, újra kell átépítenie az alkalmazást, hogy NE használja a JCA-összekötőt. Ha használható, akkor hozzá kell adnia a JARs-eket a kiszolgálói osztályúthoz, és a szükséges konfigurációs fájlokat a megfelelő helyre kell helyeznie a JBoss EAP-kiszolgáló könyvtáraiban ahhoz, hogy elérhető legyen.

Annak meghatározása, hogy az alkalmazás használ-e erőforrás-adaptert

Ha az alkalmazásnak erőforrás-adapterre (RA) van szüksége, kompatibilisnek kell lennie a JBoss EAP-val. Annak meghatározásához, hogy az RA megfelelően működik-e a JBoss EAP különálló példányán, üzembe helyezi a kiszolgálón, és megfelelően konfigurálja azt. Ha az RA megfelelően működik, hozzá kell adnia a JARs-eket az App Service-példány kiszolgálói osztályútvonalához, és a szükséges konfigurációs fájlokat a megfelelő helyre kell helyeznie a JBoss EAP-kiszolgáló könyvtáraiban ahhoz, hogy elérhető legyen.

Annak meghatározása, hogy a JAAS használatban van-e

Ha az alkalmazás JAAS-t használ, akkor rögzítenie kell a JAAS konfigurálását. Ha adatbázist használ, a JBoss EAP-n JAAS-tartománysá alakíthatja. Ha egyéni implementációról van szó, ellenőriznie kell, hogy használható-e a JBoss EAP-ben.

Annak meghatározása, hogy az alkalmazás használ-e WebLogic-fürtözést

Az alkalmazást valószínűleg több WebLogic-kiszolgálón is üzembe helyezte a magas rendelkezésre állás érdekében. Azure-alkalmazás szolgáltatás képes a skálázásra, de ha a WebLogic Cluster API-t használta, újra kell átépítenie a kódot az API használatának megszüntetéséhez.

Áttelepítés

Red Hat Migration Toolkit for Apps

A Red Hat Migration Toolkit for Applications a Visual Studio Code ingyenes bővítménye. Ez a bővítmény elemzi az alkalmazáskódot és a konfigurációt, hogy javaslatokat nyújtson a Jakarta Enterprise kiadás-alkalmazások JBoss EAP-ba történő áttelepítéséhez más alkalmazáskiszolgálókról, például a védett API-k függőségeinek eltávolításához. A bővítmény javaslatokat is nyújt, ha helyszíni felhőbe migrál. További információ: Migration Toolkit for Applications – áttekintés.

Az útmutató tartalma segít a migrálási folyamat egyéb összetevőinek kezelésében, például a megfelelő App Service-csomag típusának kiválasztásában, a munkamenet állapotának külsővé tétele, valamint az Azure használata az EAP-példányok JBoss Management-felület helyett történő kezeléséhez.

App Service-csomag kiépítése

Az elérhető szolgáltatáscsomagok listájából válassza ki azt a csomagot, amelynek specifikációi megfelelnek vagy túllépik az aktuális éles hardver specifikációit.

Megjegyzés:

Ha előkészítési/Canary-alapú üzemet szeretne futtatni, vagy üzembe helyezési pontokat tervez használni, az App Service-csomagnak tartalmaznia kell az ehhez megfelelő plusz kapacitást. Java-alkalmazásokhoz Premium vagy magasabb szintű csomag használatát javasoljuk.

Hozza létre az App Service-csomagot.

Webalkalmazás(ok) létrehozása és üzembe helyezése

A JBoss EAP-kiszolgálón üzembe helyezett összes WAR-fájlhoz létre kell hoznia egy webalkalmazást az App Service-csomagban.

Megjegyzés:

Habár több WAR-fájlt is üzembe helyezhet egyetlen webalkalmazásban, ez nagyon nem javasolt. Több WAR-fájl egyetlen webalkalmazásban való üzembe helyezése megakadályozza, hogy az alkalmazások saját használati igényeiknek megfelelően legyenek méretezhetők. Emellett összetettebbé teszi a későbbi üzembe helyezési folyamatokat is. Ha több alkalmazásnak is elérhetőnek kell lennie egyetlen URL-címen, érdemes lehet olyan útválasztási megoldást használnia, mint például az Azure Application Gateway.

Maven-alkalmazások

Ha az alkalmazása egy Maven POM-fájl alapján készült, használja a Maven webalkalmazási beépülő modulját a webalkalmazás létrehozásához és az alkalmazás üzembe helyezéséhez. További információt a Rövid útmutató Maven beépülő moduljánakkonfigurálása című szakaszában talál: Java-alkalmazás létrehozása Azure-alkalmazás szolgáltatásban.

Nem Maven-alkalmazások

Ha nem tudja használni a Maven beépülő modulját, a webalkalmazást más mechanizmusokkal kell kiépítenie, például:

A webalkalmazás létrehozása után használja az egyik elérhető üzembehelyezési mechanizmust az alkalmazás üzembe helyezéséhez. További információ:Fájlok üzembe helyezése az App Service-ben.

JVM futtatókörnyezeti beállítások migrálása

Ha az alkalmazáshoz konkrét futtatókörnyezeti beállítások szükségesek, a legmegfelelőbb mechanizmussal adja meg azokat. További információ: Java-alkalmazás konfigurálása Azure-alkalmazás szolgáltatáshoz című Java-futtatókörnyezet beállításainak beállítása című szakasz.

Külső paraméterek migrálása

Ha külső paramétereket kell használnia, alkalmazásbeállításokként kell beállítania őket. További információ: Alkalmazásbeállítások konfigurálása.

Indítási szkriptek migrálása

Ha az eredeti alkalmazás egyéni indítási szkriptet használt, át kell telepítenie egy Bash-szkriptbe. További információ: Az alkalmazáskiszolgáló konfigurációjának testreszabása.

Titkos kulcsok feltöltése

Az alkalmazásbeállításokkal tárolhatja az alkalmazáshoz tartozó összes titkos kódot. Ha ugyanazt a titkos kulcsot vagy titkos kódot szeretné használni több alkalmazás között, vagy részletes hozzáférési szabályzatokat és naplózási képességeket igényel, használja helyette az Azure Key Vault-hivatkozásokat. További információ: Java-alkalmazás konfigurálása Azure-alkalmazás szolgáltatáshoz – KeyVault-hivatkozások használata című szakasz.

Egyéni tartomány és SSL konfigurálása

Ha az alkalmazás látható egy egyéni tartományban, le kell képeznie rá a webalkalmazást. További információ: Oktatóanyag: Meglévő egyéni DNS-név leképezése Azure-alkalmazás szolgáltatásra.

Ezután a tartományhoz tartozó TLS/SSL-tanúsítványt az App Service Web App alkalmazáshoz kell kötnie. További információ: Egyéni DNS-név védelme TLS-/SSL-kötéssel a Azure-alkalmazás Szolgáltatásban.

Adatforrások, könyvtárak és JNDI-erőforrások migrálása

Az adatforrások migrálásához kövesse a Java-alkalmazás konfigurálása Azure-alkalmazás Szolgáltatáshoz című szakasz adatforrások konfigurálása szakaszának lépéseit.

A további kiszolgálószintű classpath-függőségek áttelepítése a Java-alkalmazás konfigurálása Azure-alkalmazás Szolgáltatáshoz című JBoss EAP szakasz utasításait követve.

További megosztott kiszolgálószintű JDNI-erőforrások migrálása. További információt a Java-alkalmazás konfigurálása Azure-alkalmazás szolgáltatáshoz című JBoss EAP-szakaszbantalál.

JCA-összekötők és JAAS-modulok migrálása

A JCA-összekötők és JAAS-modulok migrálása a modulok és függőségek telepítése című témakör utasításait követve.

Megjegyzés:

Ha alkalmazásonként egy WAR ajánlott architektúráját követi, fontolja meg a kiszolgálószintű classpath-kódtárak és JNDI-erőforrások áttelepítését az alkalmazásba. Ez jelentősen leegyszerűsíti az összetevők szabályozását és a változáskezelést. Ha alkalmazásonként egynél több WAR-t szeretne üzembe helyezni, tekintse át az útmutató elején említett útikalauzok egyikét.

Ütemezett feladatok migrálása

Legalább át kell helyeznie az ütemezett feladatokat egy Azure-beli virtuális gépre, hogy azok többé ne legyenek az alkalmazás részei. Alternatív megoldásként dönthet úgy is, hogy azokat eseményvezérelt Java-ra modernizálja olyan Azure-szolgáltatások használatával, mint az Azure Functions, az SQL Database és az Event Hubs.

Újraindítás és buildtesztelés

Utolsó lépésként újra kell indítania a webalkalmazást a konfigurációs módosítások alkalmazásához. Az újraindítást követően ellenőrizze, hogy az alkalmazás megfelelően fut-e.

A migrálás után

Most, hogy migrálta az alkalmazást Azure-alkalmazás Szolgáltatásba, ellenőriznie kell, hogy az a várt módon működik-e. Ha ezt elvégezte, néhány javaslatunk van, amelyek segítségével az alkalmazás natívabbá teheti az alkalmazást.

Javaslatok