Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A avaliação em lote permite que você analise vários aplicativos simultaneamente, fornecendo uma visão abrangente do cenário de modernização em seus aplicativos. Este artigo orienta você pelo processo de avaliação eficiente de vários repositórios.
A avaliação em lote é especialmente valiosa para o planejamento de migração, pois permite avaliar com eficiência a preparação e os requisitos de vários aplicativos ao mesmo tempo. Usando a avaliação em lote, você pode avaliar repositórios diferentes ao mesmo tempo e obter relatórios detalhados de avaliação para cada aplicativo. Ele produz dois tipos de relatórios para dar suporte ao seu planejamento de migração:
- Relatório por aplicativo: fornece insights detalhados sobre todos os problemas de modernização identificados no nível do repositório individual.
- Aggregated report: apresenta uma perspectiva geral de todos os aplicativos avaliados, oferecendo insights resumidos, recomendações sobre serviços Azure, plataformas de destino e caminhos de atualização. Além disso, o relatório agregado inclui atalhos para facilitar o acesso a cada relatório por aplicativo.
A avaliação em lote fornece os seguintes benefícios:
Visibilidade entre aplicativos:
- Relatórios agregados: obtenha uma exibição abrangente entre aplicativos.
- Análise entre repositórios: identifique padrões e dependências comuns entre aplicativos.
- Insights de priorização: Entenda quais aplicações precisam de atenção imediata.
Escala e eficiência:
- Processamento paralelo: use agentes de codificação de nuvem para processar vários repositórios simultaneamente.
- Fluxos de trabalho automatizados: integre-se aos pipelines de CI/CD para avaliação agendada.
- Economia de tempo: reduza o tempo total de avaliação de semanas para horas.
Pré-requisitos
- Modernizar a CLI.
- Acesso a todos os repositórios que você deseja avaliar.
- GitHub autenticação está configurada (
gh auth login).
Configurar repositórios
O agente de modernização dá suporte a várias maneiras de especificar os repositórios que você deseja avaliar:
- Pasta atual: avalie o projeto em seu diretório de trabalho atual.
- Entrada manual: insira caminhos de diretório local ou URLs remotas do Git diretamente.
- Arquivo de configuração do repositório: use um arquivo de configuração JSON que lista todos os repositórios.
Arquivo de configuração do repositório
Para operações em lotes em vários repositórios, crie um arquivo de configuração JSON para listar todos os repositórios. Por exemplo, crie-o em .github/modernize/repos.json seu diretório de trabalho ou forneça um caminho personalizado.
Certifique-se de que você tenha as permissões corretas para os repositórios ou faça um fork deles.
Formato simples (matriz de repositórios):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
},
{
"name": "eShopOnWeb",
"url": "https://github.com/dotnet-architecture/eShopOnWeb.git"
}
]
Formato completo (com ramificação e caminhos locais):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Cada entrada de repositório dá suporte aos seguintes campos:
| Campo | Descrição | Obrigatório |
|---|---|---|
name |
Um nome amigável para o repositório (usado em relatórios e dashboards). | Sim |
url |
Git clone URL no formato HTTPS ou no formato SSH. | Um de url ou path |
path |
Caminho absoluto do diretório local. | Um de url ou path |
branch |
Branch para verificar após clonagem. | No |
description |
Descrição legível por humanos. | No |
Formato completo com agrupamento de aplicativos (opcional, para relatórios organizados):
Você pode adicionar uma apps[] seção para agrupar repositórios em aplicativos lógicos. Quando os aplicativos são definidos, o relatório agregado organiza os resultados por aplicativo e dá suporte à distribuição de relatórios para destinos externos.
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
}
],
"apps": [
{
"identifier": "photo-app",
"description": "Photo management application",
"repos": ["PhotoAlbum-Java"],
"output": {
"type": "local",
"path": "/path/to/reports/photo-app"
}
}
]
}
Cada entrada de aplicativo dá suporte a:
| Campo | Descrição | Obrigatório |
|---|---|---|
identifier |
Nome de exibição exclusivo do aplicativo. | Sim |
description |
Descrição legível por humanos. | No |
repos |
Lista de nomes de repositório que pertencem a este aplicativo. | Sim |
output |
Onde distribuir o relatório de avaliação deste aplicativo após ser gerado. | No |
O output campo dá suporte aos seguintes tipos de distribuição:
| Tipo | Descrição | Campos obrigatórios |
|---|---|---|
local |
Copie relatórios para um diretório local. | path |
git |
Envie relatórios por push para um repositório Git. O formato de URL é https://github.com/org/repo.git#branch:path. |
url |
Dica
Você pode incluir repositórios de diferentes organizações e usar diferentes métodos de autenticação, desde que tenha acesso.
O agente de modernização detecta automaticamente o arquivo repos.json em .github/modernize/repos.json quando você seleciona De um arquivo de configuração no modo interativo. Você também pode fornecer um caminho personalizado.
Executar avaliação em lote
Dois modos de execução estão disponíveis:
- Execução local: o agente de modernização processa repositórios um após o outro em seu computador local. Esse modo funciona melhor para um conjunto menor de aplicativos ou para testes iniciais. Dá suporte a repositórios de URL do Git e de caminho local.
- Delegação do Agente de Codificação na Nuvem: o agente de modernização envia tarefas para os Agentes de Codificação na Nuvem do GitHub para processamento paralelo. Esse modo é mais rápido para cenários de vários repositórios.
Importante
A delegação do Cloud Coding Agent requer que os repositórios tenham URLs de repositório do GitHub (github.com). Repositórios de caminho local e provedores não GitHub (GitLab, Azure DevOps) não têm suporte para delegação de nuvem. Use a execução local para esses repositórios.
Dica
Usando a delegação do Cloud Coding Agent, você habilita a execução paralela em todos os repositórios. Essa abordagem reduz significativamente o tempo total de avaliação para grandes portfólios.
Modo interativo (avaliar localmente)
Execute o agente de modernização:
modernizeSelecione Avaliar no menu principal.
Escolha como especificar seus repositórios de destino. Selecione De um arquivo de configuração para usar um
repos.jsonarquivo.Dica
Você também pode selecionar entrada manual para inserir caminhos locais ou URLs remotas do Git diretamente ou pasta atual para avaliar o projeto em seu diretório atual.
Se o
repos.jsonarquivo for detectado no local padrão, o agente o preencherá automaticamente. Caso contrário, insira o caminho para o arquivo de configuração e pressione Enter.Todos os repositórios são selecionados por padrão. Desmarque todos os repositórios que você deseja ignorar e pressione Enter para confirmar sua seleção.
- Use teclas de direção para navegar e pressionar Espaço para alternar repositórios individuais.
Escolha o modo de execução. Selecione Avaliar localmente.
Selecione os domínios de avaliação a serem analisados. Escolha entre atualização do Java e Prontidão para a Nuvem e pressione Enter.
Examine e configure as opções de avaliação. A página de configuração mostra as opções agrupadas por idioma e domínio:
- Java/GERAL: Cobertura de análise (somente Problemas, Problemas e Tecnologias ou Problemas, Tecnologias & Dependências).
- Java/JAVA UPGRADE: Runtime de destino (OpenJDK 11, 17 ou 21).
- Java/CLOUD READINESS: Serviços de Computação de Destino, Sistema Operacional de Destino e Contêinerização.
- .NET/CLOUD READINESS: Serviços de Computação Alvo.
Use as teclas de direção para navegar, pressione Enter para alterar um valor ou selecione Continuar para continuar com as configurações atuais.
Dica
Os padrões recomendados funcionam para a maioria dos cenários. Você só precisará alterar essas configurações se tiver requisitos específicos, como direcionar uma versão específica do JDK ou Azure serviço de computação.
Insira o caminho de saída para os resultados da avaliação ou pressione Enter para aceitar o padrão.
O agente automaticamente:
Quando a avaliação for concluída, o agente abrirá automaticamente o relatório agregado.
Modo interativo (delegando a agentes de codificação na nuvem)
Primeiro, configure os Agentes de Codificação de Nuvem em cada repositório de aplicativos. Para configurar os Agentes de Codificação na Nuvem, bifurque os repositórios de exemplo.
Configuração para aplicativos .NET
Configurar para ser executado em Windows para aplicativos do .NET Framework
Por padrão, o agente de codificação Copilot é executado em um ambiente Ubuntu Linux. Para aplicativos .NET Framework, você precisa de um ambiente Windows. Para habilitá-lo, configure .github/workflows/copilot-setup-steps.yaml no main branch do repositório de aplicativos, conforme mostrado no exemplo a seguir:
# Windows-based Copilot Setup Steps for .NET tasks
# Note: Windows runners have firewall limitations that may affect some network operations
# Use this workflow for .NET projects that require Windows-specific tooling
name: "Copilot Setup Step (Windows)"
on:
workflow_dispatch:
jobs:
copilot-setup-steps:
runs-on: windows-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5
Saiba mais em: Personalizando o ambiente de desenvolvimento do Copilot com as etapas de configuração do Copilot
Desabilitar firewall
Desabilite o firewall integrado do agente de codificação Copilot nas configurações de seu repositório, conforme mostrado na imagem a seguir.
Configuração para aplicativos Java
Configure o Servidor de Modernização MCP do GitHub Copilot na seção Cloud Coding Agent das configurações do repositório, conforme mostrado no exemplo a seguir:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Steps
Execute o agente de modernização:
modernizeSelecione Avaliar no menu principal.
Escolha como especificar seus repositórios de destino. Selecione A partir de um arquivo de configuração para usar um arquivo
repos.jsonou selecione Entrada manual para inserir URLs de repositórios do GitHub diretamente.Se você selecionou De um arquivo de configuração e o
repos.jsonarquivo é detectado no local padrão, o agente o preenche automaticamente. Caso contrário, insira o caminho para o arquivo de configuração e pressione Enter.Todos os repositórios são selecionados por padrão. Desmarque todos os repositórios que você deseja ignorar e pressione Enter para confirmar sua seleção.
- Use teclas de direção para navegar e pressionar Espaço para alternar repositórios individuais.
Escolha o modo de execução. Selecione Delegar para Agentes de Nuvem.
Observação
Quando você delega aos Agentes de Codificação na Nuvem, não há suporte para as etapas de configuração de avaliação e seleção de domínio. O agente de nuvem usa as configurações padrão para executar a avaliação.
Insira o caminho de saída para os resultados da avaliação ou pressione Enter para aceitar o padrão.
O agente delega automaticamente tarefas de avaliação para cada repositório para Agentes de Codificação na Nuvem e executa-as na nuvem em paralelo.
O agente puxa os resultados da avaliação por aplicativo de volta para o local e gera o relatório agregado localmente.
Quando a avaliação for concluída, o agente abrirá automaticamente o relatório agregado.
CLI (modo não interativo)
Você também pode usar o modo não interativo especificando argumentos de comando diretamente. Use o comando modernize assess:
Avalie localmente usando um arquivo de configuração do repositório:
modernize assess --source .github/modernize/repos.json
Avalie vários repositórios especificando fontes diretamente:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Avalie delegando aos Agentes de Codificação na Nuvem:
modernize assess --source .github/modernize/repos.json --delegate cloud --wait
Para obter mais informações, consulte avaliar – comandos da CLI.
Noções básicas sobre o relatório agregado
O relatório agregado fornece uma visão abrangente nos aplicativos avaliados, como se segue:
Dashboard
- Instantâneo da integridade do portfólio: total de aplicativos, quantos precisam de upgrades e agregação de contagens de bloqueadores e problemas.
- Distribuição de tecnologia: quais estruturas estão em uso e quantos aplicativos as compartilham.
- Distribuição de esforço: se a migração geral é uma tarefa pequena ou grande.
Recomendações
- Azure Services: mapeia as dependências atuais para equivalentes de Azure recomendados. As dependências compartilhadas entre os aplicativos são decididas apenas uma vez, portanto, você evita o retrabalho em cada aplicativo.
- Plataforma de destino: orienta a opção de hospedagem, como Aplicativos de Contêiner do Azure versus AKS, e apresenta oportunidades de consolidação.
- Caminho de Atualização: identifica quais aplicativos precisam de atualizações de estrutura como um pré-requisito, separando o trabalho de atualização do trabalho de migração.
- Ondas de Migração: sequencia aplicativos por preparação e risco em fases. Essa abordagem permite ganhos antecipados enquanto aplicativos mais difíceis são preparados em paralelo.
Matriz de Avaliação de Aplicativo
- Visão geral rápida de cada aplicativo sobre aspectos da estrutura, plataforma de destino, recomendação de atualização, detalhamento de problemas (Obrigatório, Potencial, Opcional), dimensionamento de esforço e muito mais.
- Links para relatórios de aplicativos individuais para análise detalhada quando necessário.
Solução de problemas de avaliação em lote
Problemas comuns
Erros de acesso ao repositório:
- Verifique GitHub autenticação usando
gh auth status. - Verifique se você tem acesso a todos os repositórios listados em
repos.json.
Falhas de clonagem:
- Verifique se as URLs do repositório estão corretas
repos.jsone acessíveis. - Verifique se você tem as permissões de acesso corretas para todos os repositórios.
- Verifique a conectividade de rede e as configurações de VPN.
Falhas de avaliação:
- Verifique se o repositório contém projetos válidos de Java ou .NET.
- Verifique se existem arquivos de build, como
pom.xml,build.gradle,*.csproj,*.slnou*.slnx. - Examine as mensagens de erro na saída do console.
Problemas de delegação do Cloud Coding Agent:
- Verifique se você tem as permissões certas para criar fluxos de trabalho GitHub Actions.
- Verifique GitHub Actions permissões e limites de cota para sua organização.
- Para aplicativos .NET Framework, verifique se Windows configuração do executor está definida corretamente.
- Verifique a configuração do servidor MCP.
Próximas Etapas
Depois de concluir a avaliação em lote, você pode:
Continue o fluxo de trabalho de modernização:
- Executar a atualização em lote entre repositórios – Aplicar atualizações consistentes com base nos resultados da avaliação.
Saiba mais:
- Crie habilidades personalizadas para padrões específicos da organização.
- Saiba mais sobre os comandos da CLI.
Fornecer comentários
Valorizamos sua entrada! Se você tiver algum comentário sobre a avaliação em lote ou sobre o agente de Modernização, crie um problema no repositório github-copilot-appmod ou use o formulário de comentários de modernização do GitHub Copilot.