Azure Migrate-alkalmazás és kódértékelés Java-hoz
Ez az útmutató azt ismerteti, hogyan használhatja a Java Azure Migrate-alkalmazását és kódfelmérő eszközét bármilyen Típusú Java-alkalmazás értékelésére és visszataszítására. Az eszköz lehetővé teszi az alkalmazások felkészültségének kiértékelését az Azure-ba való replatformáláshoz és migráláshoz.
appcat
Az Azure Migrate parancssori eszköze a Java-alkalmazások bináris fájljainak és a forráskódnak az Azure-beli replatformálási és migrálási lehetőségek azonosításához. Segít a nagy méretű Java-alkalmazások modernizálásában és replatformálásában a gyakori használati esetek és kódminták azonosításával, valamint az ajánlott módosítások javaslatával.
appcat
az alkalmazástechnológia használatát statikus kódelemzéssel deríti fel, támogatja az erőfeszítés becslését, és felgyorsítja a kódismétlést, segít a Java-alkalmazások Azure-ba való áthelyezésében. A motorokkal és szabályokkal különböző technológiákat fedezhet fel és értékelhet, mint például a Java 11, a Java 17, a Jakarta Enterprise kiadás 10, a Quarkus, a Spring stb. Ezután segít a Java-alkalmazás különböző Azure-célokra (Azure-alkalmazás Service, Azure Kubernetes Service, Azure Container Apps és Azure Spring Apps) való replatformálásában meghatározott Azure-replatformálási szabályokkal.
appcat
nyílt forráskód, és a Red Hat által létrehozott és az Eclipse nyilvános licencével közzétett WindUp-projekten alapul.
Mikor érdemes az Azure Migrate-alkalmazást és a kódértékelést használni?
appcat
Célja, hogy segítse a szervezeteket Java-alkalmazásaik modernizálásában oly módon, hogy az csökkenti a költségeket, és gyorsabb innovációt tesz lehetővé. Az eszköz fejlett elemzési technikákat használ a Java-alkalmazások szerkezetének és függőségeinek megértéséhez, és útmutatást nyújt az alkalmazások azure-ba való újrabontásához és migrálásához.
A következő appcat
feladatokat végezheti el:
- Fedezze fel a technológia használatát: Gyorsan láthatja, hogy az alkalmazás mely technológiákat használja. A felderítés akkor hasznos, ha régebbi, nem sok dokumentációval rendelkező alkalmazásokkal rendelkezik, és tudni szeretné, hogy mely technológiákat használják.
- A kód értékelése egy adott célra: Alkalmazás értékelése egy adott Azure-célhoz. Ellenőrizze a szükséges erőfeszítéseket és módosításokat az alkalmazások Azure-ba való visszataszításához.
Támogatott Azure-célok
Az eszköz olyan szabályokat tartalmaz, amelyek segítenek az alkalmazások replatformálásában az alábbi Azure-szolgáltatások üzembe helyezéséhez és használatához.
A következő szolgáltatásokat használhatja üzembehelyezési célokként:
- Azure App Service
- Azure Spring Apps
- Azure Kubernetes Service
- Azure Container-alkalmazások
- felhőbeli felkészültség
- felderítés
- linux
- openjdk11
- openjdk17
- openjdk21
A következő szolgáltatásokat használhatja erőforrás-szolgáltatásként:
- Azure-adatbázisok
- Azure Service Bus
- Azure Storage
- Azure CDN
- Azure-eseményközpontok
- Azure Key Vault
Azure Migrate-alkalmazás és kódértékelés használata Java-hoz
A használathoz appcat
le kell töltenie a következő szakaszban leírt ZIP-fájlt, és rendelkeznie kell egy kompatibilis JDK 11+ telepítéssel a számítógépen. appcat
Windows, Linux vagy Mac rendszeren fut, Intel, Arm és Apple Silicon hardverekhez egyaránt. Az OpenJDK Microsoft Buildjének használatával futtathatja a parancsotappcat
.
Letöltés
A appcat
parancssori felület zip-fájlként letölthető aka.ms/appcat/azure-appcat-cli-latest.zip.
Appcat futtatása
Bontsa ki a zip-fájlt egy tetszőleges mappában. Ezután a következő könyvtárstruktúrát kapja:
appcat-cli-<version> # APPCAT_HOME
├── README.md
├── bin
│ ├── appcat
│ └── appcat.bat
├── docs
│ └── appcat-guide.html
└── samples
├── airsonic.war
├── run-assessment
├── run-assessment-custom-rules
├── run-assessment-exclude-packages
├── run-assessment-no-code-report
├── run-assessment-openjdk21
├── run-assessment-zip-report
└── run-discovery
- docs: Ez a könyvtár a következő dokumentációját
appcat
tartalmazza: . - bin: Ez a könyvtár tartalmazza a parancssori
appcat
felület végrehajtható fájljait (Windows/Linux/Mac esetén). - minták: Ez a könyvtár egy mintaalkalmazást és több, a mintaalkalmazáson futtatandó
appcat
szkriptet tartalmaz.
Az eszköz futtatásához nyisson meg egy terminál munkamenetet, és írja be a következő parancsot a $APPCAT_HOME/bin könyvtárból:
./appcat --help
Ha a számítógép bármely pontjáról szeretné futtatni az eszközt, konfigurálja a $APPCAT_HOME/bin könyvtárat a PATH
környezeti változóba, majd indítsa újra a terminálmunkamenetet.
Dokumentáció
A Java fő dokumentációját appcat
az alábbi útmutatók ismertetik:
Technológiai használat felderítése Azure-cél nélkül
A technológiák felfedezése az alkalmazások replatformálásának és modernizálásának első szakasza. A felderítési fázis során megvizsgálja az alkalmazást és annak összetevőit, appcat
hogy átfogóan megismerje annak szerkezetét, architektúráját és függőségeit. Ezek az információk az alkalmazás és összetevői részletes leltárának létrehozására szolgálnak (lásd a Discovery jelentés szakaszát), amely a további elemzések és tervezés alapja.
A következő paranccsal kezdeményezheti a felderítést:
./appcat \
--input ./<my-application-source-path or my-application-jar-war-ear-file> \
--target discovery
A felderítési fázis akkor hasznos, ha nincs figyelembe véve egy adott Azure-cél. Ellenkező esetben implicit appcat
módon futtatja a felderítést bármely Azure-célhoz.
Java-alkalmazás értékelése egy adott célhoz
Az értékelési fázisban appcat
elemzi az alkalmazást és annak összetevőit, hogy megállapítsa az újratelepítésre való alkalmasságát, és azonosítsa az esetleges kihívásokat és korlátozásokat. Ez a fázis magában foglalja az alkalmazáskód elemzését és a kiválasztott Azure-cél vagy OpenJDK-célnak való megfelelés ellenőrzését.
Az elérhető célok ellenőrzéséhez futtassa a következő parancsot:
./appcat --listTargetTechnologies
Ez a parancs az alábbi példához hasonló kimenetet hoz létre:
Available target technologies:
azure-aks
azure-appservice
azure-container-apps
azure-spring-apps
cloud-readiness
discovery
linux
openjdk11
openjdk17
openjdk21
Ezután futtathatja appcat
az elérhető Azure-célok egyikét, ahogyan az alábbi példában látható:
./appcat \
--input ./<my-application-source-path or my-application-jar-war-ear-file> \
--target azure-appservice
Az alábbi példában látható módon az elérhető OpenJDK-célok egyikével futtatható appcat
:
./appcat \
--input ./<my-application-source-path or my-application-jar-war-ear-file> \
--target openjdk11
Eredmények lekérése az appcatből
A felderítési és értékelési fázisok eredménye egy részletes jelentés, amely ütemtervet biztosít a Java-alkalmazás replatformálásához és modernizálásához, beleértve az Azure-szolgáltatásra és a replatform megközelítésre vonatkozó javaslatokat. A jelentés a replatformálási folyamat következő szakaszainak alapja. Segít a szervezeteknek megismerni az ilyen átalakításhoz szükséges erőfeszítéseket, és döntéseket hozni arról, hogyan modernizálhatják alkalmazásaikat a maximális előnyök érdekében.
A létrehozott appcat
jelentés átfogó áttekintést nyújt az alkalmazásról és összetevőiről. A jelentés segítségével betekintést nyerhet az alkalmazás szerkezetébe és függőségeibe, és meghatározhatja a replatformálásra és a modernizációra való alkalmasságát.
A következő szakaszok további információkat nyújtanak a jelentésről.
Az elemzés összefoglalása
A jelentés kezdőlapja felsorolja az alkalmazásban használt összes technológiát. Az irányítópult összefoglalja az elemzést, beleértve az átalakítási incidensek számát, az incidensek kategóriáit vagy a történeti pontokat.
Ha nagyítja az Incidensek kategória szerint kördiagramot, a következő kategóriák szerint láthatja az incidensek számát: Kötelező, Nem kötelező, Lehetséges és Információ.
Az irányítópult a történeti pontokat is megjeleníti. A történeti pontok az Agilis szoftverfejlesztésben gyakran használt absztrakt metrikák, amelyekkel megbecsülhetők a funkciók vagy módosítások implementálásához szükséges erőfeszítések. appcat
a történeti pontok használatával fejezi ki egy adott alkalmazás migrálásához szükséges erőfeszítéseket. A történeti pontok nem feltétlenül fordíthatók munkaidőre, de az értéknek konzisztensnek kell lennie a tevékenységek között.
Felderítési jelentés
A felderítési jelentés a felderítési fázis során létrehozott jelentés. Az alkalmazás által az Információ kategóriában használt technológiák listáját jeleníti meg. Ez a jelentés csak tájékoztatja Önt a felfedezett technológiáról appcat
.
Értékelési jelentés
Az értékelési jelentés áttekintést nyújt azokról az átalakítási problémákról, amelyeket meg kell oldani az alkalmazás Azure-ba való migrálásához.
Ezek a problémák, más néven incidensek súlyossággal (kötelező, nem kötelező, lehetséges vagy információ), erőfeszítési szinttel és a történeti pontokat jelző számmal rendelkeznek. A történeti pontokat a probléma megoldásához szükséges incidensek számának kiszámításával határozzuk meg.
Részletes információ egy adott problémáról
Minden incidenshez további információkat (a probléma részleteit, a szabály tartalmát stb.) csak kiválasztva kaphat. Az incidens által érintett összes fájl listáját is lekérheti.
Ezután az incidens által érintett összes fájl vagy osztály esetében a forráskódba lépve kiemelheti a problémát létrehozó kódsort.
Egyéni szabályok
Úgy is gondolhat appcat
, mint egy szabálymotorra. Szabályokat használ a fájlok Java-archívumokból való kinyerésére, a Java-osztályok felbontására, a fájltípusok vizsgálatára és besorolására, a fájlok elemzésére és a jelentések összeállítására. Ebben appcat
a esetben a szabályok egy szabálykészlet formájában vannak definiálva. A szabálykészletek olyan egyedi szabályok gyűjteményei, amelyek meghatározott problémákat vagy mintákat határoznak meg, amelyek appcat
az elemzés során észlelhetők.
Ezek a szabályok XML-ben vannak definiálva, és a következő szabálymintát használják:
when (condition)
perform (action)
otherwise (action)
appcat
szabványos migrálási szabályok átfogó készletét biztosítja. Mivel az alkalmazások egyéni kódtárakat vagy összetevőket tartalmazhatnak, appcat
saját szabályok írásával azonosíthatja a meglévő szabálykészlet által lefedett összetevők vagy szoftverek használatát.
Egyéni szabály írásához xml-ben kifejezett, tartományspecifikus nyelvet (DLS) kell használnia. Tegyük fel például, hogy olyan szabályt szeretne, amely azonosítja a PostgreSQL JDBC-illesztő használatát egy Java-alkalmazásban, és ehelyett a rugalmas Azure PostgreSQL-kiszolgáló használatát javasolja. Egy Maven-pom.xml-fájlban vagy egy Gradle-fájlban definiált PostgreSQL JDBC-illesztő megkereséséhez szabályra van szükség, például a következő példában látható függőségre:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
A függőség használatának észleléséhez a szabály a következő XML-címkéket használja:
ruleset
: A szabálykészlet egyedi azonosítója. A szabálykészletek olyan szabályok gyűjteményei, amelyek egy adott technológiához kapcsolódnak.targetTechnology
: A technológia, amelyet a szabály céloz. Ebben az esetben a szabály a Azure-alkalmazás Services, az Azure Kubernetes Service (AKS), az Azure Spring Apps és az Azure Container Apps szolgáltatást célozza.rule
: Egyetlen szabály gyökéreleme.when
: A szabály aktiválásához teljesítendő feltétel.perform
: A szabály aktiválásakor végrehajtandó művelet.hint
: A jelentésben megjelenítendő üzenet, annak kategóriája (Információ, Nem kötelező vagy Kötelező), valamint a probléma megoldásához szükséges munka, 1 (egyszerű) és 13 (nehéz) között.
Az alábbi XML az egyéni szabálydefiníciót jeleníti meg:
<ruleset id="azure-postgre-flexible-server"
xmlns="http://windup.jboss.org/schema/jboss-ruleset"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://windup.jboss.org/schema/jboss-ruleset http://windup.jboss.org/schema/jboss-ruleset/windup-jboss-ruleset.xsd">
<metadata>
<description>Recommend Azure PostgreSQL Flexible Server.</description>
<dependencies>
<addon id="org.jboss.windup.rules,windup-rules-xml,3.0.0.Final"/>
</dependencies>
<targetTechnology id="azure-appservice"/>
<targetTechnology id="azure-aks"/>
<targetTechnology id="azure-container-apps"/>
<targetTechnology id="azure-spring-apps"/>
</metadata>
<rules>
<rule id="azure-postgre-flexible-server">
<when>
<project>
<artifact groupId="org.postgresql" artifactId="postgresql"/>
</project>
</when>
<perform>
<hint title="Azure PostgreSQL Flexible Server" category-id="mandatory" effort="7">
<message>The application uses PostgreSQL. It is recommended to use Azure PostgreSQL Flexible Server instead.</message>
<link title="Azure PostgreSQL Flexible Server documentation" href="https://learn.microsoft.com/azure/postgresql/flexible-server/overview"/>
</hint>
</perform>
</rule>
</rules>
</ruleset>
A szabály appcat
végrehajtása után futtassa újra az elemzést a létrehozott jelentés áttekintéséhez. A többi incidenshez hasonlóan az értékelési jelentés felsorolja a szabályhoz kapcsolódó azonosított problémákat és érintett fájlokat.
A szabályok fejlesztésének teljes útmutatója elérhető a azure.github.io/appcat-docs/rules-development-guide.
Licenc
Az Azure Migrate-alkalmazás és a Java kódértékelése ingyenes, nyílt forráskód eszköz, amely a felsőbb rétegbeli WindUp-projekt licencével azonos licenccel rendelkezik.
Gyakori kérdések
K: Hol tölthetem le az Azure Migrate-alkalmazás és a Java kódértékelésének legújabb verzióját?
A aka.ms/appcat/azure-appcat-cli-latest.zip innen tölthető leappcat
.
K: Hol találhatok további információt az Azure Migrate-alkalmazásról és a Java kódértékeléséről?
Letöltéskor appcat
egy dokumentumkönyvtárat kap az első lépésekhez szükséges összes információval.
K: Hol találom a konkrét Azure-szabályokat?
Az összes Azure-szabály elérhető az appcat Rulesets GitHub-adattárban.
K: Hol találhatok további információt az egyéni szabályok létrehozásáról?
Tekintse meg az Azure Migrate-alkalmazás és a Java kódértékelésének szabályzatfejlesztési útmutatóját .
K: Hol kaphatok segítséget egyéni szabályok létrehozásakor?
A legjobb megoldás, ha problémát hoz létre az appcat-rulesets GitHub-adattárban.