A modernizálási terv testreszabása GitHub Copilot modernizálás használatakor

Ez a cikk azt ismerteti, hogyan szabhatja testre a GitHub Copilot modernizálás által létrehozott modernizálási tervet az Java és .NET alkalmazások Azure való migrálásához.

Modernizálási munkamenetet kezdeményezhet úgy, hogy több kijelölési probléma miatt létrehoz egy tervet az értékelő jelentésben, vagy a Migrate to Azure elemre kattintva modernizálási tervet hozhat létre és hajthat végre az oldalsávról. Modernizálási munkamenet indításakor GitHub Copilot létrehoz egy plan.md fájlt (és egy társfájlt .metadata/tasks.json fájlt), amely leírja az áttelepítési célt, a hatókört, az aktuális és a célarchitektúrát, valamint a feladatlistát. Ez a fájlpár szolgál a modernizálási ügynök által végrehajtott tervként. A projekt igényeinek megfelelően a végrehajtás előtt finomíthatja a tervet.

Az ügynök plan.md létrehozása után automatikusan megnyílik a Visual Studio Code szerkesztőben. Ebben a szakaszban áttekintheti és testre szabhatja a tervet, hogy megfeleljen a konkrét modernizációs céloknak.

Important

Testre szabhatja a tervet azzal, hogy megkéri a Copilotot a terv újragenerálására vagy frissítésére, ahelyett hogy plan.md közvetlenül, kézzel szerkesztené. A plan.md közvetlen szerkesztése nem frissíti a végrehajtást vezérlő társ-tasks.json fájlt, ezért a két fájl szinkronon kívülre kerülhet. Az alábbi összes szakaszban a javasolt eljárás a következő: „mondja meg a Copilotnak, mit módosítson, majd hagyja, hogy újragenerálja.”

Példa plan.md fájlstruktúrára

Az ügynök létrehoz egy plan.md fájlt a következő szakaszokkal. Ugyanezt a struktúrát használják Java és .NET projektekhez.

Szakasz Alkalmazás célja Prompttal testre szabható
Projekt fejléc A projekt neve és a modernizáció címe. Igen – módosítsa a címet úgy, hogy tükrözze a hullámot vagy a hatókört.
Technikai keretrendszer A forráskódból észlelt aktuális nyelv, keretrendszer, buildelési eszköz, adatbázis és kulcsfüggőségek. Közvetve – javítsa ki a hibásan felismert tényeket a Copilot utasításával.
Overview A modernizációs cél narratív leírása: mi változik, miért és a fázisos megközelítés. Üzleti jellegű, nincsenek technikai részletek. Igen – tisztázni az üzleti szándékot, listajeleket hozzáadni vagy eltávolítani.
Migrálási hatás összefoglalása Egy tábla, amely az egyes alkalmazás × eredeti szolgáltatás párokat az új Azure-szolgáltatáshoz, a hitelesítési módszerhez és a megjegyzésekhez rendeli hozzá. Igen – a célszolgáltatás módosítása, a hitelesítés módosítása, sorok hozzáadása vagy eltávolítása.
Kérdések és kérdőív megnyitása A terv létrehozása során felmerülő pontosítási kérdések és a felhasználó válaszai. A feladat kiválasztását vezérli. Igen – válaszoljon a nyitott kérdésekre, vizsgálja felül a korábbi válaszokat.

A részletes feladatlista nem található itt: plan.md. A(z) .metadata/tasks.json helyen található, és az Ön válaszaiból, a Nyitott kérdések és kérdőív szakaszban megadott információkból, valamint az ügynök elemzése alapján jön létre. A tevékenységek módosításához kérje meg Copilot a terv újragenerálását (lásd: Hogyan szabja testre).

A testre szabható beállítások

A modernizálási terv négy testreszabási felületet tesz elérhetővé. Mindegyik a plan.md egy szakaszának felel meg, és közvetlen szerkesztés helyett a Copilotnak adott utasítással érhető el.

1. Modernizációs hatókör

A hatókör határozza meg, hogy az ügynök milyen típusú feladatokat hoz létre. A terv négy hatókörtípust támogat:

  • Upgrade – futtatókörnyezet és keretrendszer verziófrissítései (például JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
  • Migration to Azure – helyszíni vagy nem Azure szolgáltatás cseréje Azure egyenértékűre (például Oracle → Azure Database for PostgreSQL, ActiveMQ → Azure Service Bus, merevlemezes titkos kódok → Azure Key Vault).
  • Konténerizálás — Dockerfile és kapcsolódó fordítási összetevők létrehozása.
  • Deployment – üzembehelyezési fájlok létrehozása és üzembe helyezés Azure. Az üzembe helyezési feladatok implicit módon tartalmazzák a tárolók telepítését.

A hatókör testreszabásához adja meg a Copilotnak, hogy mely hatókörtípusok vonatkoznak erre a futásra. Például:

For this modernization plan, only include Upgrade and Migration to Azure tasks. Do not generate containerization or deployment tasks — those are handled by a separate pipeline.

2. Célzott Azure-szolgáltatások és hitelesítés

A Migration Impact Summary tábla rögzíti a cél Azure szolgáltatást és hitelesítési módszert az egyes migrált összetevőkhöz. Szabja testre ezeket az értékeket úgy, hogy utasítást ad a Copilotnak a kezdeti terv létrehozása előtt vagy után. Például:

Update the Migration Impact Summary:
- Use Azure Container Apps as the deployment target, not Azure Kubernetes Service.
- Use Managed Identity for the PostgreSQL connection. Do not use Key Vault for the DB password.
- Migrate file-based logging to Azure Monitor (Application Insights), not to console-only.

Az ügynök újragenerálja mind a plan.md elemet, mind a tasks.json elemet, így a feladatlista összhangban marad a táblával.

3. Kérdőívre adott válaszok

Ha az ügynök rendelkezik a ask_user rendelkezésre álló képességgel, egy rövid kérdőívet kér a terv hatókörének felmérésére. A három alapértelmezett kérdés a következő:

Question Alapértelmezett válasz A tervre gyakorolt hatás
Telepítési cél az Azure-on Nincs üzembe helyezés Üzembehelyezési feladatot ad hozzá (vagy kihagy), és kiválasztja a cél számítási szolgáltatást (Azure Container Apps, Azure Kubernetes Service, Azure App Service, App Service Managed Instance, Azure Function Apps, Azure Static Web Apps).
Belefoglalja az integrációs tesztelést? No Ha "Igen, Helyi integráció tárolókkal" vagy "Igen, Helyi integráció és Füsttesztek" értékre van állítva, az áttelepítési feladatok után és a tárolók létrehozása előtt egy integrációs tesztfeladatot ad hozzá.
Tartalmazza a tárolók létrehozását (Dockerfile-létrehozás)? No Önálló tárolóizációs feladatot ad hozzá. Automatikusan kimarad, ha telepítési feladat van kiválasztva, mivel a telepítés magában foglalja a konténerizálást.

Ha az ügynök nem tette fel a kérdést (például azért, mert ask_user nem volt elérhető), vagy módosítani szeretne egy korábbi választ, kérje meg a Copilot. Például:

Update the plan with these answers:
- Deployment target: Azure Container Apps
- Integration testing: Yes, Local Integration and Smoke Tests
- Containerization: handled by deployment task, no standalone containerization needed

A válaszok bejelölt elemekként kerülnek rögzítésre a Nyitott kérdések és kérdőív szakaszban, és ezek határozzák meg a feladat kiválasztását.

4. Adott tevékenységek hozzáadása, eltávolítása vagy pontosítása

Megkérheti Copilot, hogy adjon hozzá egy nem létrehozott tevékenységet, elvethet egy nem kívánt tevékenységet, vagy módosíthatja egy meglévő tevékenység hatókörét. Add meg a intent szándékot — így a Copilot kiválaszthatja a tudásbázisából a megfelelő készséget és mintát.

Példák:

Add a task to migrate from ActiveMQ to Azure Service Bus.
Drop the integration test task — we have an existing test suite that covers this.
The Spring Boot upgrade task should target Spring Boot 3.2 specifically, not "latest".

Megjegyzés:

Az ügynök csak olyan feladatokat hoz létre az áttelepítésekhez, amelyekhez egyező képesség vagy minta tartozik. Ha olyan migrálást kér, amelyet az ügynök nem tud támogatni (például egy belső, zárt tulajdonú szolgáltatást), figyelmeztetést jelenít meg a hatókör szakaszban, és a rendszer nem adja hozzá a feladatot. Ebben az esetben kezelje a migrálást manuális lépésként, és adjon hozzá egy útmutatót (lásd a következő szakaszt) a dokumentum dokumentálásához.

A testreszabás módja: kérje meg a Copilotot az újragenerálásra

Használja a következő munkafolyamatot:

  1. Miután az ügynök létrehozta, tekintse át a kezdeti plan.md.
  2. Határozza meg, hogy mit szeretne módosítani – hatókört, célszolgáltatást, hitelesítést, kérdőívre adott válaszokat vagy konkrét feladatokat.
  3. Adja meg a módosítást a Copilotnak. Legyen konkrét: nevezze el a szakaszt és a kívánt eredményt.
  4. A Copilot segítségével generálja újra együtt a plan.md és .metadata/tasks.json elemet. Mindkét fájlnak igazodnia kell ahhoz, hogy a végrehajtás működjön.
  5. Tekintse át újra a frissített tervet. Addig iteráljon, amíg a hatókör, a célarchitektúra és a feladatlista nem egyezik a szándékkal.

Példa egy end-to-end promptra:

Update the modernization plan with these changes:
1. Add Migration to Azure scope for messaging — migrate ActiveMQ to Azure Service Bus.
2. Use Managed Identity for all Azure service connections; do not introduce Key Vault.
3. Deployment target is Azure Container Apps.
4. Include Layer 1 and Layer 2 integration tests.
5. The Spring Boot upgrade task should explicitly include the JDK 17 and Jakarta EE migration in its description, as a single task (do not split).

Copilot újragenerálja a tervet, frissíti a táblát, rögzíti a kérdőívre adott válaszokat, és ennek megfelelően módosítja a feladatlistát.

Útmutatás a végrehajtáshoz

A hatókörön és a feladatokon kívül lássa el a Copilotot iránymutatásokkal – módszertannal, egyezményekkel, eszközökkel és szabályokkal –, amelyek meghatározzák a modernizáció végrehajtásának módját. Irányelveket leggyakrabban a terv egy Guidelines szakaszaként vagy helyi szabályfájlokra mutató hivatkozásként adhat hozzá.

Adja meg azokat az utasításokat, amelyek segítenek irányítani, hogyan módosítsa a Copilot a kódot, például:

  • Bizonyos migrálási megközelítések korlátozásai vagy tilalmai (például don nem vezet be Spring Cloud-Azure startereket; használja a natív SDK-kat).
  • Kódstílusra vagy konvenciókra vonatkozó követelmények.
  • Az ügynök által elérhető belső fájlokra, dokumentációkra vagy szkriptekre mutató hivatkozások.
  • A hibák kijavításához vagy a migrálás végrehajtásához hasznos tartományismeret.
  • Az ügynöknek a kódmódosítások megjegyzéseivel kapcsolatos követelmények.
  • A végrehajtás során létrehozott ideiglenes összetevőkre vonatkozó karbantartási utasítások.

Példa:

Add these guidelines to the plan:
- Use Azure Managed Identity for every Azure service connection. Do not introduce connection strings or Key Vault secrets unless a service has no Managed Identity support.
- Follow the code conventions defined in `/docs/internal/code-style.md`.
- Provide detailed comments explaining why each code change is necessary.
- After execution, remove any temporary scripts or scratch files created during migration.

Lásd még