Personalize o plano de modernização ao usar a modernização do GitHub Copilot

Este artigo descreve como personalizar o plano de modernização gerado pela modernização GitHub Copilot para migrar aplicativos Java e .NET para Azure.

Você pode iniciar uma sessão de modernização criando um plano no relatório de avaliação por meio de problemas de seleção múltipla ou clicando em Igrate para Azure para criar e executar um plano de modernização na barra lateral. Quando você inicia uma sessão de modernização, GitHub Copilot gera um arquivo plan.md (e um arquivo .metadata/tasks.json complementar) que descreve a meta de migração, o escopo, a arquitetura atual e de destino e a lista de tarefas. Esse par de arquivos serve como o blueprint executado pelo agente de modernização. Você pode refinar o plano antes da execução para atender melhor às necessidades do projeto.

Depois que o agente gera plan.md, ele é aberto automaticamente no editor de Visual Studio Code. Nesta fase, você pode examinar e personalizar o plano para garantir que ele esteja alinhado com suas metas de modernização específicas.

Importante

Personalize o plano solicitando ao Copilot que regenere ou atualize o plano em vez de editar plan.md manualmente diretamente. As edições diretas para plan.md não atualizam o arquivo tasks.json complementar que conduz a execução e os dois arquivos podem sair da sincronização. O padrão recomendado em todas as seções abaixo é "diga Copilot o que mudar e, em seguida, deixe-o regenerar".

Estrutura do arquivo de exemplo plan.md

O agente gera um arquivo plan.md com as seções a seguir. A mesma estrutura é usada para projetos Java e .NET.

Seção Purpose Personalizável por meio de prompt
Cabeçalho do projeto Nome do projeto e título de modernização. Sim - ajuste o título para refletir a onda ou o escopo.
Technical Framework Linguagem atual, estrutura, ferramenta de build, banco de dados e dependências de chave, detectadas no código-fonte. Indiretamente - corrija quaisquer fatos identificados incorretamente fazendo perguntas ao Copilot.
Overview Descrição narrativa da meta de modernização: o que está mudando, por que e a abordagem em fases. Voltado para os negócios, sem detalhes técnicos. Sim - esclareça a intenção de negócios, adicione ou remova marcadores.
Resumo do impacto da migração Uma tabela mapeando cada aplicativo × serviço original → novo serviço de Azure, método de autenticação e comentários. Sim – alterar o serviço de destino, alterar a autenticação, adicionar ou remover linhas.
Abrir Perguntas & Questionário Perguntas de esclarecimento levantadas durante a criação do plano e as respostas do usuário. Determina a seleção de tarefas. Sim - responda a perguntas abertas, revise as respostas anteriores.

A lista de tarefas detalhada não está em plan.md. Ele fica em .metadata/tasks.json e é gerado a partir das suas respostas na seção Perguntas Abertas & Questionário, além da análise do agente. Para alterar tarefas, solicite Copilot para regenerar o plano (consulte Como personalizar).

O que você pode personalizar

O plano de modernização expõe quatro superfícies de personalização. Cada item corresponde a uma seção de plan.md e é acessado por meio de um prompt para o Copilot, em vez de uma edição direta.

1. Escopo de modernização

O escopo determina quais tipos de tarefas o agente gera. O plano dá suporte a quatro tipos de escopo:

  • Upgrade — atualizações de versão de runtime e estrutura (por exemplo, JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
  • Migração para o Azure — substituição de um serviço local (on-premises) ou não Azure pelo equivalente no Azure (por exemplo, Oracle → Banco de Dados do Azure para PostgreSQL, ActiveMQ → Barramento de Serviço do Azure, segredos embutidos no código → Azure Key Vault).
  • Contêinerização — gerando um Dockerfile e artefatos de compilação relacionados.
  • Deployment — gerando arquivos de implantação e implantando em Azure. As tarefas de implantação incluem a contêinerização implicitamente.

Para personalizar o escopo, informe ao Copilot quais tipos de escopo se aplicam a esta execução. Por exemplo:

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. Serviços do Azure de destino e autenticação

A tabela Resumo do Impacto da Imigração registra o serviço e o método de autenticação de Azure de destino para cada componente migrado. Personalize esses valores solicitando Copilot antes ou depois que o plano inicial for gerado. Por exemplo:

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.

O agente regenera ambos plan.md e tasks.json , portanto, a lista de tarefas permanece consistente com a tabela.

3. Respostas de questionário

Quando o agente tem a ask_user funcionalidade disponível, ele solicita um questionário curto para definir o escopo do plano. As três perguntas padrão são:

Question Resposta padrão Efeito no plano
Destino de implantação no Azure Nenhuma implantação Adiciona (ou omite) uma tarefa de implantação e seleciona o serviço de computação de destino (Aplicativos de Contêiner do Azure, Serviço de Kubernetes do Azure, Serviço de Aplicativo do Azure, Serviço de Aplicativo Instância Gerenciada, Aplicativos de Funções Azure, Aplicativos Web Estáticos do Azure).
Incluir o teste de integração? No Quando definido como "Sim, Integração Local com Contêineres" ou "Sim, Integração Local e Testes de Fumaça", adiciona uma tarefa de teste de integração após as tarefas de migração e antes da contêinerização.
Incluir a contêinerização (geração do Dockerfile)? No Adiciona uma tarefa de contêinerização autônoma. Ignorado automaticamente se uma tarefa de implantação for selecionada, pois a implantação abrange a contêinerização.

Se o agente não fez uma pergunta (por exemplo, porque ask_user estava indisponível) ou você deseja alterar uma resposta anterior, prompt Copilot. Por exemplo:

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

As respostas são registradas como itens marcados na seção Perguntas abertas & Questionário e orientam a seleção de tarefas.

4. Adicionar, remover ou refinar tarefas específicas

Você pode pedir Copilot para adicionar uma tarefa que não foi gerada, descartar uma tarefa que você não deseja ou ajustar o escopo de uma tarefa existente. Use o comando com a intenção — deixe o Copilot escolher a habilidade e o padrão correspondentes da sua base de conhecimento.

Exemplos:

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

Note

O agente só cria tarefas para migrações para as quais tenha uma habilidade ou padrão compatível. Se você solicitar uma migração, o agente não poderá dar suporte (por exemplo, um serviço proprietário interno), ele adicionará um aviso à seção de escopo e a tarefa não será adicionada. Nesse caso, trate a migração como uma etapa manual e adicione uma instrução de Diretrizes (consulte a próxima seção) para documentá-la.

Como personalizar: pedir ao Copilot para gerar novamente

Use o seguinte fluxo de trabalho:

  1. Examine a inicial plan.md após o agente gerá-la.
  2. Identifique o que você deseja alterar – escopo, serviço de destino, autenticação, respostas de questionário ou tarefas específicas.
  3. Instrua o Copilot com a alteração. Seja específico: nomeie a seção e o resultado desejado.
  4. Deixe o Copilot regenerar plan.md e .metadata/tasks.json ao mesmo tempo. Ambos os arquivos devem permanecer alinhados para que a execução funcione.
  5. Revise novamente o plano atualizado. Itera até que o escopo, a arquitetura de destino e a lista de tarefas correspondam à sua intenção.

Exemplo de prompt de ponta a ponta:

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 regenera o plano, atualiza a tabela, registra as respostas do questionário e revisa a lista de tarefas adequadamente.

Fornecer diretrizes para execução

Além do escopo e das tarefas, forneça ao Copilot diretrizes — metodologia, convenções, ferramentas e regras — que orientam como a modernização deve ser executada. Adicione diretrizes com mais frequência como uma Guidelines seção no plano ou como referências a arquivos de regra locais.

Inclua instruções que ajudem a orientar como Copilot modifica o código, como:

  • Restrições ou proibições quanto a certas abordagens de migração (por exemplo, não introduza starters do Spring Cloud Azure; use os SDKs nativos).
  • Requisitos de estilo de código ou convenção.
  • Links para arquivos internos, documentação ou scripts que o agente pode acessar.
  • Conhecimento de domínio útil para corrigir erros ou executar migrações.
  • Requisitos de como o agente deve anotar ou comentar as alterações de código.
  • Instruções de limpeza para artefatos temporários criados durante a execução.

Exemplo:

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.

Consulte também