Avaliar aplicativos .NET para modernização

Nesta página, descrevemos como usar o Google Cloud Modernization Hub para avaliar aplicativos ASP.NET e .NET Framework para contêinerização do Linux e modernização para uma versão .NET multiplataforma.

Muitos aplicativos .NET corporativos dependem de APIs específicas do Windows, configurações do servidor IIS ou bibliotecas legadas do .NET Framework que impedem a implantação direta em contêineres Linux. Uma avaliação automatizada no Modernization Hub analisa seu código-fonte para identificar bloqueadores, avaliar a compatibilidade de pacotes NuGet e recomendar caminhos de refatoração para Cloud Run ou Google Kubernetes Engine.

Quando usar uma avaliação de aplicativo .NET

Execute uma avaliação de aplicativo .NET quando planejar fazer qualquer uma das seguintes tarefas de modernização:

  • Refatoração para contêineres do Linux: identifique dependências somente do Windows (como acesso ao Registro do Windows, System.Drawing ou integrações do Active Directory) antes de colocar aplicativos em contêineres para o Cloud Run ou o GKE.
  • Fazer upgrade das versões do .NET Framework: avalie o esforço e as lacunas de compatibilidade ao migrar do .NET Framework 4.x para versões modernas e multiplataforma do .NET (.NET 10 ou mais recente).
  • Desacoplamento de arquiteturas monolíticas: descubra serviços WCF, serviços do Windows ou formulários da Web legados fortemente acoplados que exigem refatoração em microsserviços nativos da nuvem.

Antes de começar

Antes de iniciar um job de avaliação do .NET, ative as APIs necessárias, verifique as permissões do Identity and Access Management (IAM) do projeto, registre um bucket de configurações do espaço de trabalho e faça upload do arquivo de código-fonte para o Cloud Storage.

Ativar APIs obrigatórias

Para usar o Modernization Hub, ative as APIs de serviço Google Cloud necessárias no seu projeto:

gcloud services enable \
    aiplatform.googleapis.com \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    cloudresourcemanager.googleapis.com \
    compute.googleapis.com \
    logging.googleapis.com \
    storage.googleapis.com \
    --project=PROJECT_ID

Substitua PROJECT_ID pelo ID do projeto Google Cloud .

Funções exigidas

Para executar uma avaliação, são necessárias permissões distintas do IAM para duas identidades usando o Cloud Build e a Gemini Enterprise Agent Platform:

  • Usuário autenticado do console (que inicia o job e acessa buckets):
    • Administrador do Storage (roles/storage.admin)
    • Usuário da conta de serviço (roles/iam.serviceAccountUser)
    • Editor do Cloud Build (roles/cloudbuild.builds.editor)
  • Conta de serviço dedicada (executando o contêiner de avaliação):
    • Usuário da Agent Platform (roles/aiplatform.user)
    • Usuário de objetos do Storage (roles/storage.objectUser) ou administrador do Storage (roles/storage.admin)

Para ter as permissões necessárias para iniciar uma avaliação e executar o contêiner de análise, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

  • Usuário: gerenciar arquivos de origem e configurações de bucket: Administrador do Storage (roles/storage.admin)
  • Usuário: anexe a conta de serviço dedicada ao job: Usuário da conta de serviço (roles/iam.serviceAccountUser)
  • Usuário: envia jobs de avaliação (cloudbuild.builds.create) e visualiza registros: Editor do Cloud Build (roles/cloudbuild.builds.editor)
  • Conta de serviço: execute o contêiner codmod: Usuário da Agent Platform (roles/aiplatform.user)
  • Conta de serviço: ler arquivos de origem e gravar relatórios de avaliação: Usuário de objetos do Storage (roles/storage.objectUser) ou Administrador do Storage (roles/storage.admin)

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para iniciar uma avaliação e executar o contêiner de análise. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para iniciar uma avaliação e executar o contêiner de análise:

  • Usuário (Cloud Storage, Cloud Build e IAM):
    • storage.objects.get (para baixar ou ler arquivos)
    • storage.objects.list (para listar arquivos no bucket)
    • storage.objects.create (para fazer upload ou criar novos arquivos)
    • storage.objects.update (para modificar metadados de arquivos atuais)
    • storage.objects.delete (para excluir ou substituir arquivos)
    • storage.buckets.get (Ver configurações no nível do bucket)
    • cloudbuild.builds.create (para enviar jobs de avaliação)
    • iam.serviceAccounts.actAs (para anexar a conta de serviço ao job)
  • Conta de serviço (Agent Platform e Cloud Storage):
    • aiplatform.endpoints.predict (para executar a análise de código assistida por IA)
    • storage.objects.get (para ler ou baixar arquivos de origem)
    • storage.objects.list (para listar arquivos na pasta de entrada)
    • storage.objects.create (para escrever relatórios de avaliação)
    • storage.objects.delete (para excluir arquivos temporários)

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Configurar um bucket de configurações do espaço de trabalho

Registre um bucket designado do Cloud Storage na página Modernization Hub > Configurações (por exemplo, gs://PROJECT_ID-modernization-hub) para armazenar os arquivos de estado binário do espaço de trabalho (dotnet_jobs.pb, java_jobs.pb e mainframe_jobs.pb).

Revisar os limites de tamanho da base de código

Para manter a performance ideal e a eficiência de custos, o mecanismo de avaliação do codmod aplica as seguintes diretrizes de escalonamento e arquivamento:

  • Tamanho máximo da base de código:aproximadamente 6 milhões de linhas de código (LOC) por job de avaliação. Se o repositório exceder 6 milhões de LOC, divida a base de código em soluções ou módulos menores e independentes antes de fazer o upload.
  • Estrutura de arquivo limpa:exclua binários compilados, caches de pacotes e metadados de controle de versão (como bin/, obj/, node_modules/, .vs/ e .git/) do arquivo ZIP para que apenas os arquivos de origem e as configurações de build sejam analisados.

Preparar e fazer upload do arquivo de origem .NET

Empacote a base de código .NET como um arquivo ZIP que exclui saídas de build e faça upload do arquivo para um bucket do Cloud Storage no seu projeto.

  1. Na máquina local, crie um arquivo ZIP do repositório usando um dos seguintes métodos:

    • Usar o Git (recomendado):

      git archive --format=zip -o repository.zip HEAD
      
    • Como usar a CLI zip:

      zip -r repository.zip . \
          -x "*.git*" "*/bin/*" "*/obj/*" "*/node_modules/*" "*.vs/*"
      
  2. Faça upload do arquivo ZIP para o bucket de destino do Cloud Storage usando a Google Cloud CLI:

    gcloud storage cp repository.zip \
        gs://INPUT_BUCKET/codebase/repository.zip
    

    Substitua INPUT_BUCKET pelo nome do bucket do Cloud Storage de destino.

Fazer uma avaliação

Para executar um job de avaliação, siga estas etapas:

  1. No console, acesse a página Modernization Hub.

    Acessar o Modernization Hub

  2. Na página de destino, localize o card Modernização do.NET e clique em Iniciar avaliação.

  3. No campo Nome do job, insira um nome exclusivo para o job de avaliação.

  4. No campo Local do código-fonte, selecione um bucket do Cloud Storage que contenha o código-fonte como um arquivo ZIP.

  5. No campo Local do relatório, selecione um bucket do Cloud Storage para salvar os relatórios de avaliação gerados.

  6. Na lista Receita de modernização, selecione uma opção.

  7. Na lista Local, selecione uma região para o job de avaliação.

  8. No campo Conta de serviço, selecione uma conta de serviço dedicada com os papéis necessários do IAM listados na seção Papéis necessários. O Cloud Build executa o job de avaliação nessa conta de serviço, que exige permissões de usuário da Agent Platform e do Cloud Storage.

  9. Clique em Gerar relatório.

    O console inicia um contêiner de avaliação em segundo plano para analisar seu projeto. O status do job aparece na tabela Histórico de avaliações.

Monitorar o status do job e conferir relatórios

Dependendo do tamanho da sua base de código, os jobs de avaliação geralmente são concluídos em alguns minutos. O contêiner em segundo plano é encerrado automaticamente após a conclusão do processamento.

Para conferir os resultados da avaliação, siga estas etapas:

  1. Na tabela Histórico de avaliações na página do Modernization Hub, localize seu job de avaliação.
  2. Quando a coluna Status mudar para Concluído, clique em Baixar relatório.
  3. Selecione o formato de saída que preferir:
    • Relatório em HTML: um resumo interativo que permite filtrar APIs do Windows incompatíveis, inspecionar listas de bloqueadores arquivo por arquivo e conferir sugestões de correção.
    • Relatório em Markdown: um resumo executivo formatado adequado para compartilhar com partes interessadas e conselhos de revisão de arquitetura.

Analisar o relatório de avaliação

O relatório de avaliação categoriza a prontidão de migração do seu aplicativo nas seguintes áreas:

  • Pontuação geral de compatibilidade:a porcentagem de linhas de origem e dependências que podem migrar para o .NET multiplataforma sem modificação.
  • Detalhamento dos bloqueadores:dependências específicas do Windows que exigem refatoração, como:
    • Implementações de servidor do Windows Communication Foundation (WCF).
    • Web Forms do ASP.NET ou pipelines legados do ASP.NET MVC.
    • Chamadas do Registro do Windows (Microsoft.Win32).
  • Análise de dependência do NuGet:um inventário detalhado dos pacotes do NuGet existentes, indicando se cada pacote é compatível com a versão de destino do .NET ou precisa ser substituído.
  • Ações recomendadas:transformações de código e caminhos de migração sugeridos para preparar seu aplicativo para a contêinerização no Google Cloud.

Refatorar código .NET com o Antigravity

Depois de gerar um relatório de avaliação, use o Antigravity com habilidades agênticas especializadas do .NET para automatizar a conversão de código do .NET Framework para o .NET multiplataforma.

Antes de executar fluxos de trabalho de refatoração com agente, verifique se você atende aos pré-requisitos a seguir:

  • Ambiente do Antigravity:instale o IDE do Antigravity ou a CLI do Antigravity (agy) e configure a autenticação com seu projeto Google Cloud .
  • Artefatos de avaliação:faça o download do relatório de avaliação codmod e coloque-o no espaço de trabalho do repositório local para que o agente possa consultar os bloqueadores identificados e os caminhos de upgrade de dependência.
  • Habilidades de modernização do.NET:carregue a habilidade de modernização do .NET codmod (SKILL.md) nas configurações do espaço de trabalho do Antigravity. Para solicitar acesso de prévia aos recursos mais recentes do agente de modernização do .NET, entre em contato com modernization-hub-feedback-external@google.com.

A seguir