Přizpůsobte plán modernizace při používání funkce GitHub Copilot pro modernizaci

Tento článek popisuje, jak přizpůsobit plán modernizace vygenerovaný nástrojem GitHub Copilot modernization pro migraci aplikací Java a .NET do Azure.

Relaci modernizace můžete zahájit vytvořením plánu v protokolu o posouzení pomocí vícenásobného výběru problémů nebo kliknutím na Migrate to Azure v postranním panelu, čímž vytvoříte a spustíte plán modernizace. Když zahájíte relaci modernizace, GitHub Copilot vygeneruje soubor plan.md (a doprovodnou .metadata/tasks.json), který popisuje cíl migrace, rozsah, aktuální a cílovou architekturu a seznam úkolů. Tato dvojice souborů slouží jako podrobný plán, který provádí agent modernizace. Plán můžete před provedením upřesnit tak, aby lépe vyhovoval potřebám projektu.

Jakmile agent vygeneruje plan.md, automaticky se otevře v editoru Visual Studio Code. V této fázi můžete zkontrolovat a přizpůsobit plán, abyste měli jistotu, že bude v souladu s vašimi konkrétními cíli modernizace.

Important

Přizpůsobte plán tak, že vyzvete Copilot, aby plán znovu vygeneroval nebo aktualizoval, místo abyste ho upravovali ručně přímo v plan.md. Přímé úpravy plan.md neaktualizují doprovodný soubor tasks.json, který řídí běh, a oba soubory se mohou přestat synchronizovat. Doporučený postup v každé části níže je „řekněte Copilotu, co má změnit, a pak ho nechte obsah znovu vygenerovat“.

Příklad struktury souboru plan.md

Agent vygeneruje soubor plan.md s následujícími částmi. Stejná struktura se používá pro Java a .NET projekty.

Oddíl Purpose Přizpůsobitelné prostřednictvím výzvy
Záhlaví projektu Název projektu a název modernizace. Ano – upravte název tak, aby odrážel vlnu nebo rozsah.
Technická architektura Aktuální jazyk, architektura, nástroj sestavení, databáze a klíčové závislosti zjištěné ze zdrojového kódu Nepřímo – opravte všechny chybně rozpoznané skutečnosti zadáním pokynu Copilotu.
Overview Popis příběhu cíle modernizace: co se mění, proč a fázovaný přístup. Obchodní údaje, žádné technické podrobnosti. Ano – objasněte obchodní záměr, přidejte nebo odeberte odrážky.
Souhrn dopadu migrace Tabulka mapující každou aplikaci × původní službě → novou službu Azure, metodu ověřování a komentáře. Ano – změna cílové služby, změna ověřování, přidání nebo odebrání řádků
Otevřené otázky a dotazník Objasnění otázek vyvolaých při vytváření plánu a odpovědích uživatele Řídí výběr úkolu. Ano – odpovězte na otevřené otázky, revidte předchozí odpovědi.

Podrobný seznam úkolů není v plan.md. Nachází se v .metadata/tasks.json a vytváří se z vašich odpovědí v části Otevřené otázky a dotazník a z analýzy agenta. Chcete-li změnit úkoly, požádejte Copilot, aby plán znovu vygeneroval (viz Jak si přizpůsobit).

Co si můžete přizpůsobit

Plán modernizace zveřejňuje čtyři plochy přizpůsobení. Každá z nich odpovídá části plan.md a přistupuje se k ní pomocí výzvy pro Copilot, nikoli přímou úpravou.

1. Rozsah modernizace

Obor určuje, jaké druhy úloh agent generuje. Plán podporuje čtyři typy oborů:

  • Upgrade – upgrady verzí modulu runtime a architektury (například JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
  • Migration to Azure – nahrazení místní nebo ne Azure služby ekvivalentem Azure (například Oracle → Azure Database for PostgreSQL, ActiveMQ → Azure Service Bus, pevně zakódované tajné kódy → Azure Key Vault).
  • Kontejnerizace — generování souboru Dockerfile a souvisejících artefaktů sestavení.
  • Deployment – generování souborů nasazení a nasazení do Azure. Úlohy nasazení zahrnují implicitní kontejnerizaci.

Pokud chcete přizpůsobit rozsah, řekněte Copilotu, jaké typy rozsahu platí pro toto spuštění. Příklad:

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ílové služby Azure a ověřování

Tabulka Migration Impact Summary zaznamenává cílovou službu Azure a metodu ověřování pro každou migrovanou komponentu. Přizpůsobte si tyto hodnoty zobrazením výzvy Copilot před vygenerováním nebo po vygenerování počátečního plánu. Příklad:

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.

Agent znovu vygeneruje obojí plan.md , tasks.json takže seznam úkolů zůstane konzistentní s tabulkou.

3. Odpovědi na dotazník

Když má agent k dispozici funkci ask_user, položí několik krátkých otázek, aby vymezil rozsah plánu. Mezi tři výchozí otázky patří:

Question Výchozí odpověď Vliv na plán
Cíl nasazení v Azure Žádné nasazení Přidá (nebo vynechá) úlohu nasazení a vybere cílovou výpočetní službu (Azure Container Apps, Azure Kubernetes Service, Azure App Service, app Service Managed Instance, Azure function apps, Azure Static Web Apps).
Zahrnout testování integrace? Ne Pokud je nastavena na „Ano, místní integrace s kontejnery“ nebo „Ano, místní integrace a smoke testy“, přidá úlohu integračního testování za úlohy migrace a před kontejnerizaci.
Zahrnout kontejnerizaci (generování souboru Dockerfile)? Ne Přidá samostatnou úlohu kontejnerizace. Automaticky se přeskočí, pokud je vybrána úloha pro nasazení, protože nasazení zahrnuje kontejnerizaci.

Pokud agent nepoložil žádnou otázku (například proto, že ask_user nebyl k dispozici) nebo chcete změnit dřívější odpověď, vyzvěte Copilot. Příklad:

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

Odpovědi se zaznamenávají jako zaškrtnuté položky v části Otevřené otázky a dotazník a určují výběr úkolu.

4. Přidání, odebrání nebo upřesnění konkrétních úkolů

Můžete požádat Copilot o přidání úkolu, který nebyl vygenerován, vyřazení úkolu, který nechcete, nebo úpravu oboru existujícího úkolu. Zadejte pokyn s záměrem – a nechte Copilot vybrat odpovídající dovednost a vzor ze své znalostní báze.

Příklady:

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

Poznámka:

Agent vytváří pouze úlohy pro migrace, pro které má odpovídající dovednosti nebo vzor. Pokud požádáte o migraci, kterou agent nepodporuje (například interní proprietární službu), přidá do sekce rozsahu upozornění a úloha se nepřidá. V takovém případě s migrací zacházíte jako s ručním krokem a přidejte pokyny k jeho dokumentaci (viz další část).

Postup přizpůsobení: zobrazení výzvy Copilot k opětovnému vygenerování

Použijte následující pracovní postup:

  1. Zkontrolujte počáteční plan.md poté, co ho agent vygeneruje.
  2. Určete, co chcete změnit – rozsah, cílová služba, ověřování, odpovědi na dotazník nebo konkrétní úkoly.
  3. Vyzvěte Copilot touto změnou. Buďte konkrétní: pojmenujte oddíl a požadovaný výsledek.
  4. Nechte Copilot znovu vygenerovat plan.md a .metadata/tasks.json současně. Oba soubory musí zůstat sladěné, aby spuštění fungovalo.
  5. Znovu zkontrolujte aktualizovaný plán. Iterujte, dokud rozsah, cílová architektura a seznam úkolů neodpovídají vašemu záměru.

Příklad end-to-end promptu:

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 znovu vygeneruje plán, aktualizuje tabulku, zaznamená odpovědi na dotazník a odpovídajícím způsobem upraví seznam úkolů.

Uveďte pokyny pro provádění.

Kromě rozsahu a úkolů poskytněte Copilotu pokyny – metodologii, konvence, nástroje a pravidla – které určují, jak se modernizace provádí. Pokyny obvykle přidávejte buď ve formě oddílu Guidelines v rámci plánu, nebo jako odkazy na místní soubory pravidel.

Uveďte všechny pokyny, které pomohou usměrnit, jak Copilot upravuje kód, například:

  • Omezení nebo zákazy určitých migračních přístupů (například nezavádějte startery Spring Cloud Azure; používejte nativní sady SDK).
  • Požadavky na styl kódu nebo konvence
  • Odkazy na interní soubory, dokumentaci nebo skripty, ke které má agent přístup.
  • Znalost domény užitečná pro opravu chyb nebo provádění migrací.
  • Požadavky na to, jak má agent přidávat poznámky nebo komentovat změny kódu.
  • Pokyny pro vyčištění dočasných artefaktů vytvořených během provádění

Příklad:

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.

Viz také