Pas het moderniseringsplan aan wanneer u GitHub Copilot voor modernisering gebruikt

In dit artikel wordt beschreven hoe u het moderniseringsplan kunt aanpassen dat is gegenereerd door GitHub Copilot modernisering voor het migreren van Java en .NET toepassingen naar Azure.

U kunt een moderniseringssessie starten door een plan op het evaluatierapport te maken via problemen met meerdere selecties of door te klikken op Migrate naar Azure om een moderniseringsplan te maken en uit te voeren vanaf de zijbalk. Wanneer u een moderniseringssessie start, genereert GitHub Copilot een bestand plan.md (en een companion .metadata/tasks.json-bestand) waarin het migratiedoel, het bereik, de huidige en de doelarchitectuur en de takenlijst worden beschreven. Dit paar bestanden fungeert als de blauwdruk die door de moderniseringsagent wordt uitgevoerd. U kunt het plan verfijnen voordat u het uitvoert om beter aan de behoeften van uw project te voldoen.

Nadat de agent plan.md heeft gegenereerd, wordt deze automatisch geopend in de Visual Studio Code-editor. In deze fase kunt u het plan bekijken en aanpassen om ervoor te zorgen dat het overeenkomt met uw specifieke moderniseringsdoelen.

Important

Pas het plan aan door prompting Copilot om het plan opnieuw te genereren of bij te werken in plaats van rechtstreeks plan.md met de hand te bewerken. Directe bewerkingen naar plan.md werken het bijbehorende tasks.json-bestand dat de uitvoering aanstuurt niet bij en de twee bestanden kunnen niet meer worden gesynchroniseerd. Het aanbevolen patroon in elke sectie hieronder is 'vertel Copilot wat u moet wijzigen en laat het vervolgens opnieuw genereren'.

Voorbeeld van plan.md bestandsstructuur

De agent genereert een plan.md bestand met de volgende secties. Dezelfde structuur wordt gebruikt voor Java en .NET projecten.

Afdeling Purpose Aanpasbaar via een prompt
Project header Projectnaam en titel van de modernisering. Ja: pas de titel aan om de golf of het bereik weer te geven.
Technisch raamwerk Huidige taal, framework, build tool, database en sleutelafhankelijkheden, gedetecteerd vanuit de broncode. Indirect - corrigeer eventuele verkeerd gedetecteerde feiten door het aan Copilot te vragen.
Overzicht Beschrijving van het moderniseringsdoel: wat verandert, waarom en de gefaseerde benadering. Bedrijfsgerichte, geen technische details. Ja: zakelijke intentie verduidelijken, opsommingstekens toevoegen of verwijderen.
Overzicht van migratieimpact Een tabeltoewijzing voor elke toepassing × oorspronkelijke service → nieuwe Azure-service, verificatiemethode en opmerkingen. Ja: doelservice wijzigen, verificatie wijzigen, rijen toevoegen of verwijderen.
Open vragen en vragenlijst Vragen over toelichting tijdens het maken van een plan en de antwoorden van de gebruiker. Stuurt de taakselectie aan. Ja: open vragen beantwoorden, eerdere antwoorden herzien.

De gedetailleerde takenlijst bevindt zich niet in plan.md. Het bevindt zich in .metadata/tasks.json en wordt gegenereerd op basis van uw antwoorden in de sectie Open Questions & Vragenlijst plus de analyse van de agent. Als u taken wilt wijzigen, vraagt u Copilot om het plan opnieuw te genereren (zie Hoe u deze kunt aanpassen).

Wat je kunt aanpassen

In het moderniseringsplan worden vier aanpassingsoppervlakken weergegeven. Elk onderdeel komt overeen met een sectie van plan.md en is toegankelijk via een prompt aan Copilot in plaats van via een rechtstreekse bewerking.

1. Moderniseringsbereik

Het bereik bepaalt welke soorten taken de agent genereert. Het plan ondersteunt vier bereiktypen:

  • Upgrade — upgrades van runtime- en frameworkversies (bijvoorbeeld JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
  • Migration to Azure — waarbij een on-premises of niet-Azure service wordt vervangen door een Azure equivalent (bijvoorbeeld Oracle → Azure Database for PostgreSQL, ActiveMQ-→ Azure Service Bus, vastgelegde geheimen → Azure Key Vault).
  • Containerisatie : een Dockerfile en gerelateerde buildartefacten genereren.
  • Deployment: implementatiebestanden genereren en implementeren in Azure. Implementatietaken omvatten impliciet containerisatie.

Als u het bereik wilt aanpassen, geeft u Copilot aan welke bereiktypen van toepassing zijn op deze uitvoering. Voorbeeld:

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. Doel-Azure-services en authenticatie

De tabel Migration Impact Summary registreert de doel-Azure-service en verificatiemethode voor elk gemigreerd onderdeel. Pas deze waarden aan door Copilot te vragen voor of nadat het eerste plan is gegenereerd. Voorbeeld:

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.

De agent genereert zowel plan.md als tasks.json opnieuw, zodat de takenlijst consistent blijft met de tabel.

3. Antwoorden op vragenlijsten

Wanneer de agent de mogelijkheid ask_user beschikbaar heeft, stelt deze een korte vragenlijst om de omvang van het plan te bepalen. De drie standaardvragen zijn:

Question Standaardantwoord Effect op het plan
Implementatiedoel op Azure Geen implementatie Voegt een implementatietaak toe (of laat deze weg) en selecteert de doel-rekenservice (Azure Container Apps, Azure Kubernetes Service, Azure App Service, App Service Managed Instance, Azure Functie-apps, Azure Static Web Apps).
Integratietests opnemen? No Wanneer deze is ingesteld op 'Ja, lokale integratie met containers' of 'Ja, lokale integratie en smoketests', wordt na de migratietaken en vóór containerisatie een integratietesttaak toegevoegd.
Containerisatie opnemen (Dockerfile-generatie)? No Hiermee voegt u een zelfstandige containerisatietaak toe. Wordt automatisch overgeslagen als een implementatietaak is geselecteerd, omdat de implementatie betrekking heeft op containerisatie.

Als de agent geen vraag heeft gesteld (bijvoorbeeld omdat ask_user niet beschikbaar was) of als u een eerder antwoord wilt wijzigen, vraagt u Copilot. Voorbeeld:

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

De antwoorden worden vastgelegd als aangevinkte items in de sectie Open vragen & vragenlijst en sturen de taakselectie aan.

4. Specifieke taken toevoegen, verwijderen of verfijnen

U kunt Copilot vragen om een taak toe te voegen die niet is gegenereerd, een taak te verwijderen die u niet wilt of het bereik van een bestaande taak aan te passen. Formuleer de prompt met de intent — laat Copilot de bijpassende vaardigheid en het bijpassende patroon uit de kennisbank kiezen.

Voorbeelden:

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

Opmerking

De agent maakt alleen taken voor migraties waarvoor deze een overeenkomende vaardigheid of een overeenkomend patroon heeft. Als u een migratie aanvraagt die de agent niet kan ondersteunen (bijvoorbeeld een interne bedrijfseigen service), wordt er een waarschuwing toegevoegd aan de sectie Scope en wordt de taak niet toegevoegd. In dat geval behandelt u de migratie als een handmatige stap en voegt u een richtlijneninstructie (zie de volgende sectie) toe om deze te documenteren.

Zo past u dit aan: vraag Copilot om opnieuw te genereren

Gebruik de volgende werkstroom:

  1. Controleer de oorspronkelijke plan.md nadat de agent deze heeft gegenereerd.
  2. Bepaal wat u wilt wijzigen: bereik, doelservice, verificatie, antwoorden op vragenlijsten of specifieke taken.
  3. Geef Copilot de wijziging als prompt. Wees specifiek: geef de sectie een naam en het gewenste resultaat.
  4. Laat Copilot plan.md en .metadata/tasks.json samen opnieuw genereren. Beide bestanden moeten op elkaar afgestemd blijven om de uitvoering te laten werken.
  5. Bekijk het bijgewerkte plan opnieuw. Herhalen totdat het bereik, de doelarchitectuur en de takenlijst overeenkomen met uw intentie.

Voorbeeld van end-to-end prompt:

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 het plan opnieuw genereert, de tabel bijwerkt, de antwoorden van de vragenlijst registreert en de takenlijst dienovereenkomstig wijzigt.

Richtlijnen opgeven voor uitvoering

Naast bereik en taken kunt u Copilot voorzien van guidelines — methodologie, conventies, hulpprogramma's en regels — die bepalen hoe de modernisering wordt uitgevoerd. Voeg richtlijnen meestal toe als een Guidelines sectie in het plan of als verwijzingen naar lokale regelbestanden.

Neem eventuele instructies op waarmee u kunt bepalen hoe Copilot code wijzigt, zoals:

  • Beperkingen of verbodsbepalingen voor bepaalde migratiemethoden (bijvoorbeeld introduceren geen Spring Cloud Azure starters; gebruik de systeemeigen SDK's).
  • Codestijl- of conventieregels.
  • Koppelingen naar interne bestanden, documentatie of scripts die de agent kan openen.
  • Domeinkennis is handig voor het oplossen van fouten of het uitvoeren van migraties.
  • Vereisten voor hoe de agent aantekeningen moet maken of commentaar moet toevoegen aan codewijzigingen.
  • Opschoningsinstructies voor tijdelijke artefacten die tijdens de uitvoering zijn gemaakt.

Example:

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.

Zie ook