Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebből a cikkből megtudhatja, hogyan használhatja a GitHub Copilot-alkalmazások modernizálását Java-alkalmazások értékelésére, szervizelésére, tárolóba helyezésére és üzembe helyezésére az Azure Container Appsben. A GitHub Copilot-alkalmazások modernizálása egy AI-alapú asszisztens, amely a GitHub Copilotot nyílt forráskódú eszközökkel kombinálja, például OpenRewrite az összetett frissítési és migrálási lépések automatizálásához.
Az eszköz támogatja a Maven- és a Gradle-projekteket is, a Java 8-as, 11-s, 17-as és 21-s verziói közötti frissítést célozza, és a Spring Boot-alkalmazások modernizálására összpontosít. Előre definiált feladatokat biztosít a gyakori migrálási forgatókönyvekhez, és bemutatja az alkalmazások Azure Container Appsben való futtatásának ajánlott eljárásait.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Készíts egyet ingyen.
- Egy GitHub fiók aktív GitHub Copilot előfizetéssel bármilyen csomagban.
- Az alábbi szerkesztők egyike:
- A Visual Studio Code legújabb verziója. Az 1.106-os vagy újabb verziónak kell lennie.
- GitHub Copilot a Visual Studio Code-ban. A beállítási utasításokat a GitHub Copilot beállítása a Visual Studio Code-ban című témakörben találja. Mindenképpen jelentkezzen be a GitHub-fiókjába a Visual Studio Code-ban.
- GitHub Copilot alkalmazás modernizálása. A telepítés után indítsa újra a Visual Studio Code-ot.
- Az IntelliJ IDEA legújabb verziója. A 2023.3-s vagy újabb verziónak kell lennie.
- GitHub Copilot. Az 1.5.59-es vagy újabb verziónak kell lennie. További útmutatást a GitHub Copilot beállítása az IntelliJ IDEA-ban című témakörben talál. Mindenképpen jelentkezzen be GitHub-fiókjába az IntelliJ IDEA-ban.
- GitHub Copilot alkalmazás modernizálása. A telepítés után indítsa újra az IntelliJ IDEA-t.
- A Visual Studio Code legújabb verziója. Az 1.106-os vagy újabb verziónak kell lennie.
- Java 21 vagy újabb verzió.
- A Maven vagy a Gradle Java-projektek létrehozásához.
- A Docker telepítve van és fut (konténerizáláshoz).
- Az Azure CLI telepítve és konfigurálva van.
Megjegyzés:
Ha Gradle-t használ, csak a Gradle burkoló 5-ös vagy újabb verziója támogatott. A Kotlin tartományspecifikus nyelve (DSL) nem támogatott. Az IntelliJ IDEA még nem támogatja a függvényt My Tasks .
JDK és keretrendszerverziók frissítése
Mielőtt migrálna az Azure Container Appsbe, győződjön meg arról, hogy a Java alkalmazás egy támogatott és naprakész JDK-verzión fut. A JDK és a keretrendszerek frissítése először biztosítja, hogy a későbbi migrálási lépések modern kódbázist céloznak meg.
A JDK-verzió kétféleképpen frissíthető. Mindkét módon használhatja a GitHub Copilot alkalmazás modernizálási panelét, amelyet a Visual Studio Code oldalsávjáról érhet el.
- Válassza a Runtime > Keretrendszerek frissítése lehetőséget a QUICKSTART szakaszban.
- Másik lehetőségként futtassa a frissített Java-futtatókörnyezeti feladatot a FELADATOK – Tevékenységek frissítése szakaszban.
A Spring-keretrendszer vagy egy nem Microsoft-függőség frissítéséhez futtassa a Java-keretrendszer frissítése feladatot a FELADATOK – Tevékenységek frissítése szakaszban.
Az Azure Container Apps felhőbeli felkészültségének felmérése
Az értékelés azonosítja a felhő felkészültségi kihívásait a kódbázisban, és értékeli azok hatását. Konkrét javaslatokat nyújt az Azure Container Appshez.
Az értékelés konfigurálása
Az értékelés futtatása előtt konfigurálja azt a GitHub Copilot alkalmazáskorszerűsítési felmérés paneljén az Értékelés konfigurálása lehetőség kiválasztásával.
Az Azure Container Apps esetében használja a következő konfigurációt:
appcat:
- target:
- azure-container-apps
os:
- linux
mode: source-only
Hajtsa végre az értékelést
Az értékelés futtatásához kövesse az alábbi lépéseket:
Az oldalsávon válassza a GitHub Copilot alkalmazás modernizálási panelét, majd a ASSESSMENT szakaszban válassza a Migrálás az Azure-ba vagy a Run Assessment lehetőséget.
Megnyílik a GitHub Copilot csevegőablaka az agent módban, hogy kapcsolatot létesítsen a modernizációs értékelővel. A megerősítéshez válassza a Folytatás lehetőséget.
A modernizációs értékelő először ellenőrzi a helyi környezetet. Ha az AppCAT és függőségei nincsenek telepítve, az ügynök segít a telepítésben. A telepítés után az ügynök meghívja az AppCAT-et a projekt értékeléséhez. Ez a lépés több percet is igénybe vehet.
Amikor az értékelés befejeződik, a modernizációs értékelő kategorizált nézetet készít a felhő készültségi problémáiról az értékelési jelentésben.
Az értékelési jelentés értelmezése
Az értékelési jelentés átfogó elemzési eredményeket nyújt. A jelentés több fontos szakaszból áll:
- Alkalmazásinformációk: Alapvető információk, beleértve a Java-verziót, a keretrendszereket, a buildeszközöket, a projektstruktúrát és a cél Azure-szolgáltatást.
- Probléma összefoglalása: A tartomány szerint kategorizált áttelepítési problémák áttekintése kritikussági százalékokkal.
-
Részletes elemzés négy lapra rendezve:
- Problémák: A felhőbeli készültségi és Java-frissítési problémák kategorizált listája, amelyet meg kell oldania.
- Függőségek: Az alkalmazásban található összes Java-csomagú függőség.
- Technológiák: Az elemzett alkalmazásban található függvények szerint csoportosított technológiák.
- Elemzések: Fájladatok és információk az észlelt technológiák megértéséhez.
A jelentés a következő kritikussági szintek szerint kategorizálja a problémákat:
| Kritikusság | Leírás |
|---|---|
| Kötelező | Az Azure Container Appsbe való migrálás során kijavítandó problémák. |
| Potenciál | Olyan problémák, amelyek hatással lehetnek a migrálásra, és felülvizsgálatra szorulnak. |
| Választható | Alacsony hatású problémák. A javításuk javasolt, de nem kötelező. |
Az egyes jelentett problémák kibontásával megtekintheti az érintett fájlok listáját és részletes leírását, beleértve a problémát, az ismert megoldásokat és a dokumentációt.
Értékelési jelentések kezelése
A bővítmény támogatja az értékelési jelentések importálását, exportálását és törlését, így megoszthatja az eredményeket a csapatával, vagy rendszerezheti a munkaterületet.
- Importálás: Válassza az Importálás lehetőséget az értékelés szakaszban, ha jelentéseket szeretne importálni az AppCAT CLI-eredményekből, egy exportált jelentésből vagy egy alkalmazáskörnyezetfájlból.
- Exportálás: Kattintson a jobb gombbal az Értékelő jelentés elemre , és válassza az Exportálás lehetőséget a jelentések másokkal való megosztásához.
- Törlés: Kattintson a jobb gombbal az Értékelő jelentés elemre , és válassza a Törlés lehetőséget egy jelentés eltávolításához.
Migrálási problémák elhárítása
Az értékelés elvégzése után előre definiált vagy egyéni feladatok használatával orvosolhatja az azonosított problémákat. A GitHub Copilot-alkalmazások modernizálása két megközelítést kínál: előre definiált feladatokat, amelyek a gyakori migrálási mintákat kezelik, és egyéni feladatokat, amelyeket a szervezet adott igényeihez határoz meg.
Az AppModernization-ügynök kiválasztása
Az AppModernization ügynök a Java-alkalmazások migrálási és modernizálási feladatainak legjobb élményét nyújtja. A kijelöléshez:
- Nyissa meg a Copilot csevegőablakát a tevékenységsáv csevegés ikonjának kiválasztásával.
- A csevegőablakban keresse meg az ügynökválasztó legördülő menüt a csevegés beviteli mezőjének tetején, és válassza az AppModernization lehetőséget a listából.
Megjegyzés:
A Visual Studio Code-ban az alkalmazáskorszerűsítés az AppModernization egyéni ügynököt használja a legjobb eredmény érdekében alapértelmezés szerint kiválasztott ajánlott modellel. A modellt az Ügynök menü Egyéni ügynökök konfigurálása parancsával módosíthatja.
Ha az AppModernization-ügynök van kiválasztva, egyszerű, természetes nyelvi utasításokat használva végezze el a migrálási feladatokat:
-
Adatbázis migrálása:
migrate to Managed Identity for Azure SQL Database -
Tároló áttelepítése:
migrate from AWS S3 to Azure Storage Blob -
Üzenetküldés migrálása:
migrate from RabbitMQ to Azure Service Bus -
Titkos kódok kezelése:
migrate secrets to Azure Key Vault -
Hitelesítési migrálás:
migrate to Microsoft Entra ID authentication
Előre definiált áttelepítési feladatok futtatása
A GitHub Copilot alkalmazáskorszerűsítési funkciója az alábbi előre definiált feladatokat támogatja az Azure Container Apps migrálásához:
| tevékenység | Leírás |
|---|---|
| Spring RabbitMQ és Azure Service Bus | A Spring AMQP/JMS-t a RabbitMQ-val azure Service Bus-ra alakítja át, megőrizve az üzenetkezelési mintákat, és lehetővé teszi a biztonságos hitelesítést. |
| Felügyelt identitások adatbázis-migráláshoz | Előkészíti a kódbázist a felügyelt identitás hitelesítéséhez az Azure SQL Server, az Azure Database for MySQL, az Azure Database for PostgreSQL, az Azure Cosmos DB for Cassandra API és az Azure Cosmos DB for MongoDB számára. |
| Kezelt identitások a hitelesítő adatok migrációjához | Átalakítja Java-alkalmazásait úgy, hogy az Azure Managed Identity-hitelesítést használják az olyan üzenetkezelési szolgáltatásokhoz, mint az Azure Event Hubs és az Azure Service Bus, kiküszöbölve a kapcsolati sztringeket. |
| AWS S3 az Azure Storage Blobhoz | Az AWS S3-mal kommunikáló kódot az Azure Storage Blob használatával működő kódká alakítja át, ugyanazokkal a szemantikával. |
| Naplózás helyi fájlba | A fájlalapú naplózást konzolalapú naplózássá alakítja, így készen áll az Azure Monitorral való integrációra. |
| Helyi fájl I/O az Azure Storage fájlmegosztások csatolásához | A helyi fájlok olvasását és írását egységes csatlakoztatási elérési úttá alakítja, lehetővé téve az Azure Storage-fájlmegosztások csatlakoztatását az Azure Container Appsben. További információért lásd: Tárolócsatlakozások használata az Azure Container Apps-ben. |
| Java Mail az Azure Communication Service-be | Az SMTP-en keresztül e-mailt küldő alkalmazásokat konvertálja az Azure Communication Services használatára, amely teljes mértékben kompatibilis az Azure Container Apps üzemeltetésével. |
| Titkos kódok és tanúsítványkezelés az Azure Key Vaultban | A kódolt titkos kódokat és a helyi TLS/mTLS-tanúsítványokat migrálja az Azure Key Vaultba. További információ: Titkos kódok kezelése az Azure Container Appsben. |
| Felhasználói hitelesítés a Microsoft Entra-azonosítóhoz | Átállás a helyi felhasználói hitelesítési mechanizmusokról (például LDAP-alapú) a Microsoft Entra ID-hoz történő hitelesítésre. További információ: Hitelesítés és engedélyezés az Azure Container Appsben. |
| SQL Dialect: Oracle to PostgreSQL | Az Oracle-specifikus SQL-lekérdezéseket, adattípusokat és védett függvényeket PostgreSQL-ekvivalenssé alakítja az Azure Database for PostgreSQL-hez való használatra. |
| AWS Secret Manager az Azure Key Vaultba | A titkos kódok kezelésének minden aspektusát átalakítja az AWS Secret Managerből az Azure Key Vaultba. |
| ActiveMQ az Azure Service Bus-ra | Az ActiveMQ-üzenetek gyártóit, felhasználóit, kapcsolati gyárait és üzenetsor-/témakör-interakcióit Azure Service Bus-ekvivalenssé alakítja. |
| AWS SQS–Azure Service Bus | Lefordítja az SQS-specifikus kódszerkezeteket az Azure Service Bus-partnereknek, megőrizve az üzenetkezelési szemantikát. |
Előre definiált tevékenység alkalmazása az értékelésből
- Az Értékelési jelentésben válassza ki a kívánt megoldást egy észlelt probléma alatt, majd válassza a Feladat futtatása lehetőséget.
- Megnyílik a Copilot csevegőablaka ügynök móddal. Az ügynök generálja
és , és a folytatás előtt áttekintheti a tervet. - A migrálási folyamat megerősítéséhez és elindításához manuálisan adja meg a bemenetet
continue. - A kód módosítása előtt az ügynök ellenőrzi a verziókövetési rendszer állapotát, és kivesz egy új ágat.
- A Folytatás gombra kattintva vagy beírásával erősítse meg az eszköz használatát, és várja meg, amíg a kódmódosítások befejeződnek.
Érvényesítési eredmények áttekintése
A kódmódosítások befejezése után az ügynök egy automatikus ellenőrzési ciklust futtat, amely a következő ellenőrzéseket tartalmazza:
- Validate-CVEs: Észleli az aktuális függőségek gyakori biztonsági réseit és kitettségeit, és kijavítja őket.
- Build-Project: A buildelési hibák elhárítására tett kísérletek.
- Konzisztencia-ellenőrzés: Elemzi a funkcionális konzisztencia kódját.
- Futtatási teszt: Egységteszteket futtat, és automatikusan létrehoz egy tervet a hibák elhárításához.
- Teljesség ellenőrzése: A kezdeti kódmigrálás során kihagyott migrálási elemeket rögzíti, és kijavítja őket.
Miután minden ellenőrzés befejeződött, írja be continue, hogy elkészítse a migráció összefoglalóját. Tekintse át a kód módosításait, és erősítse meg a Keep (Megtartás) lehetőséget.
Egyéni tevékenységek létrehozása
Az előre definiált feladatok mellett egyéni feladatokat is létrehozhat a szervezet adott migrálási mintái alapján. Az egyéni feladatok Git-véglegesítésekből, külső hivatkozásokból vagy szövegfájlokból származó hivatkozásokat használnak az áttelepítési ügynök irányításához.
Egyéni feladat létrehozása Git-véglegesítésekből
A Tevékenység oldalsávon nyissa meg a GitHub Copilot alkalmazás modernizálási bővítménypanelt, mutasson a FELADATOK szakaszra, majd válassza az Egyéni tevékenység létrehozása lehetőséget.
A megnyitott
task.mdfájlban adja meg a feladat nevét és a feladatkérést.Válassza a Hivatkozások hozzáadása lehetőséget, majd az előugró párbeszédpanelen válassza a Git-véglegesítések lehetőséget.
Keresse meg és válassza ki a megfelelő véglegesítést, majd kattintson az OK gombra.
Válassza az Mentésgombot. Az egyéni tevékenység most megjelenik a FELADATOK – Saját feladatok szakaszban.
Egyéni feladat létrehozása külső hivatkozásokból és szövegfájlokból
Nyissa meg a
task.mdfájlt, és adja meg a feladat nevét és a kérést. Például:-
Tevékenység neve:
Expose health endpoint via Spring Boot Actuator -
Feladatkérés:
You are a Spring Boot developer assistant, follow the Spring Boot Actuator documentation to add basic health endpoints for Azure Container Apps deployment.
-
Tevékenység neve:
Válassza a Hivatkozások hozzáadása lehetőséget, válassza a Külső hivatkozások lehetőséget, majd illessze be az URL-hivatkozást. Válassza ismét a Hivatkozások hozzáadása lehetőséget, válassza a Szövegfájlok lehetőséget, majd adjon hozzá egy további utasításokat tartalmazó fájlt.
A feladat létrehozásához válassza a Mentés lehetőséget.
Egyéni tevékenységek megosztása
Az egyéni feladatokat megoszthatja más csapattagokkal a feladatmappa megosztásával.
Egyéni feladat megosztásához másolja a mappát .github/appmod/custom-tasks alá, és ossza meg a kívánt címzettel. A címzett beilleszti a feladatmappát a .github/appmod/custom-tasks könyvtárba, és a bővítménypanelen a Feladat frissítése lehetőséget választja.
Egyéni feladat futtatása
Válassza a Feladatfájl alján található Futtatás lehetőséget, vagy keresse meg a feladatot a FELADATOK – Saját feladatok szakaszban, és válassza a Feladat futtatása lehetőséget. A Copilot csevegőablak ügynök módban nyílik meg, és automatikusan futtatja az áttelepítési munkafolyamatot.
Ha az alkalmazás Oracle-adatbázist használ, folytassa a következő szakaszsal. Ellenkező esetben ugorjon az alkalmazás tárolóba helyezése elemre.
Migrálás Oracle-ről PostgreSQL-re
Megjegyzés:
Ez a szakasz csak akkor érvényes, ha az alkalmazás Oracle-adatbázist használ. Ha az alkalmazás nem használja az Oracle-t, ugorjon tovább az alkalmazás konténerizálására.
A GitHub Copilot-alkalmazás modernizálása dedikált migrálási feladatot biztosít az Oracle-ről az Azure Database for PostgreSQL-be, amely a következőket tartalmazza:
- AI-alapú adatbázis-migrálási eszköz: További információ: Mi a Visual Studio Code előzetes verziójához készült PostgreSQL-bővítmény?
- Intelligens SQL-átalakítás az alkalmazáskódban: Beépített SQL-konverziós funkciók a GitHub Copilot-alkalmazások modernizálásában, zökkenőmentesen integrálva egy egységes feladat-munkafolyamat részeként.
Az Oracle használata a PostgreSQL migrálási feladatához
Futtassa az alkalmazásértékelést az Azure Container Apps felhőbeli készültségének felmérése című szakaszban leírtak szerint.
Az értékelés befejezése után tekintse át a jelentést. Ha az alkalmazás Oracle-t használ, a jelentés egy Oracle-hez kapcsolódó adatbázis-migrálással (Oracle) kapcsolatos problémát jelenít meg, amely az Oracle DB-ből a PostgreSQL-be való migrálás alapértelmezett megoldásával kapcsolatos.
Ha szeretné, ellenőrizze, hogy szerepel-e
coding_notes.mda.github/postgre-migrations/*/results/application_guidance/mappában. Ha van ilyen, az alkalmazáskorszerűsítés ezekre a megjegyzésekre hivatkozik a jobb minőségű SQL-átalakításhoz. Ha nem, vegye fel a kapcsolatot az adatbázis csapatával, hogy a PostgreSQL Visual Studio Code bővítmény segítségével generálják azokat.Válassza a Feladat futtatása lehetőséget az áttelepítés végrehajtásához.
Az alkalmazás tárolóba helyezése
A kódmigrálás befejezése után tárolóba helyezze a Java-alkalmazást, hogy előkészítse az Azure Container Appsben való üzembe helyezésre.
Győződjön meg arról, hogy a Docker telepítve van és fut.
Nyissa meg a migrált projektet a Visual Studio Code-ban.
A Tevékenység oldalsávon nyissa meg a GitHub Copilot alkalmazás modernizálási bővítménypanelét.
A Feladatok szakaszban nyissa meg a Java-t, majd nyissa meg a Containerize Tasks (Tevékenységek tárolóba helyezése ) elemet, majd válassza a Containerize Application (Alkalmazás tárolóba helyezése) lehetőséget.
Ellenőrizze az egyes eszközműveleteket a Folytatás gombra kattintva, amikor a rendszer kéri.
A Copilot a következő lépéseket hajtja végre:
- Ellenőrzi, hogy a Docker telepítve van-e és fut-e.
- Ellenőrzi, hogy az alkalmazáskód készen áll-e a tárolóban való futtatásra.
- Minden projekthez létrehoz egy Dockerfile-fájlt.
- Docker-rendszerképeket készít minden projekthez.
- A tárolókra vonatkozó eredmények összegzését hozza létre.
Megjegyzés:
A legjobb eredmény érdekében használja a bővítmény ügynökbeállításaiban látható legújabb ajánlott modellt. Előfordulhat, hogy a Copilot néhány iterációt vesz igénybe a tárolók hibáinak kijavításához.
A tárolóeszközökkel kapcsolatos további információkért tekintse meg a GitHubon található containerization-assist adattárat.
Üzembe helyezés az Azure Container Apps-ben
Az alkalmazás tárolóba helyezése után helyezze üzembe az Azure Container Appsben.
Nyissa meg a migrált projektet a Visual Studio Code-ban.
A Tevékenység oldalsávon nyissa meg a GitHub Copilot alkalmazás modernizálási bővítménypanelét.
A Feladatok szakaszban nyissa meg a Java-t, majd nyissa meg az Üzembe helyezési feladatokat , és válasszon az alábbi telepítési lehetőségek közül:
- Üzembe helyezés a meglévő Azure-infrastruktúrában: A Copilot a meglévő erőforráscsoportot kéri, és üzembe helyezi a megfelelő erőforrásokat.
- Infrastruktúra kiépítése és üzembe helyezés az Azure-ban: A Copilot új Azure-erőforrásokat hoz létre, és üzembe helyezi a projektet.
Erősítse meg az egyes eszközműveleteket a Folytatás gombra kattintva, amikor a rendszer kéri, és adja meg a szükséges információkat, például az előfizetést és az erőforráscsoportot.
A Copilot a következő lépéseket hajtja végre:
- Létrehoz egy üzembehelyezési terv markdown-fájlját az üzembe helyezési céllal, a projektinformációkkal, az Azure-erőforrásarchitektúrával, az Azure-erőforrásokkal és a végrehajtási lépésekkel.
- A terv végrehajtási lépéseit követi.
- Kijavít minden üzembe helyezési hibát.
- Létrehoz egy összefoglaló fájlt, amely ismerteti az üzembe helyezés eredményeit.
Megjegyzés:
A legjobb eredmény érdekében használja a bővítmény ügynökbeállításaiban látható legújabb ajánlott modellt. Előfordulhat, hogy a Copilot néhány iterációt vesz igénybe az üzembehelyezési hibák kijavításához.
A migrálás utáni ajánlott eljárások
Miután migrálta a Java-alkalmazást az Azure Container Appsbe, vegye figyelembe az alábbi ajánlott eljárásokat:
- Állapotadat-mintavételek konfigurálása: Állapotadat-mintavételek beállítása az Azure Container Apps számára az alkalmazás állapotának figyeléséhez.
- Naplózás beállítása: Konfigurálja a konzolalapú naplózást, hogy integrálható legyen az Azure Monitorral a központi naplóösszesítéshez és -elemzéshez.
- Skálázási szabályok konfigurálása: Skálázási szabályok beállítása HTTP-forgalom, PROCESSZOR, memória vagy egyéni metrikák alapján a különböző számítási feladatok kezeléséhez.
- Titkos kódok kezelése: Az Azure Container Apps titkos kulcskezelésével vagy az Azure Key Vault használatával biztonságosan tárolhatja és érheti el a bizalmas konfigurációs értékeket.
- CI-/CD-folyamatok beállítása: Az üzembehelyezési folyamat automatizálása a GitHub Actions vagy az Azure Pipelines használatával a folyamatos integráció és teljesítés érdekében.
- Kék-zöld telepítések engedélyezése: A változatok és a forgalom felosztása révén állásidő nélküli telepítéseket valósíthat meg.
- Egyéni tartományok konfigurálása: Egyéni tartományok és tanúsítványok beállítása az éles forgalomhoz.
- Figyelés metrikákkal és riasztásokkal: Metrikák és riasztások használatával proaktívan monitorozza az alkalmazás állapotát és teljesítményét.
- Zónaredundancia engedélyezése: A zónaredundancia konfigurálása a rendelkezésre állási zónák közötti magas rendelkezésre állás érdekében.