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.

appcatnyí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ő appcatfeladatokat 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 appcatle 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 appcattartalmazza: .
  • 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.

Képernyőkép az appcat összefoglaló jelentéséről.

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.

Képernyőkép az AppCAT összefoglaló incidensjelentéséről.

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 .

Képernyőkép az appcat felderítési jelentéséről.

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

Képernyőkép az AppCAT értékelési jelentéséről.

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.

Képernyőkép az AppCAT-probléma részletes jelentéséről.

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.

Képernyőkép az AppCAT problémakód jelentéséről.

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 appcata 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 appcatvé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.

Képernyőkép az appcatről egy szabály végrehajtásával.

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

Következő lépések