Nesta página, mostramos como usar o Google Cloud Modernization Hub no consoleGoogle Cloud para avaliar aplicativos Java corporativos para conteinerização e modernização do Linux em versões de suporte de longo prazo (LTS) do Java multiplataforma (como Java 17 ou Java 21) no Google Cloud.
Muitos aplicativos Java empresariais dependem de APIs Java EE legadas, configurações proprietárias de servidores de aplicativos (como WebLogic, WebSphere ou JBoss) ou bibliotecas de terceiros desatualizadas que impedem a implantação direta em contêineres Linux. Uma avaliação automatizada no Modernization Hub analisa seu código-fonte, identifica bloqueadores de migração, avalia a compatibilidade de dependências do Maven ou Gradle e recomenda caminhos de refatoração para Cloud Run ou Google Kubernetes Engine.
Quando usar uma avaliação de aplicativo Java
Execute uma avaliação de aplicativos Java quando você planeja fazer o seguinte:
- Fazer replataforma para contêineres Linux:identifique dependências específicas do ambiente (como acesso ao sistema de arquivos local, bibliotecas JNI ou APIs de servidor de aplicativos proprietárias) antes de colocar os aplicativos em contêineres para o Cloud Run ou o GKE.
- Fazer upgrade das versões do ambiente de execução Java:avalie o esforço e as lacunas de compatibilidade ao migrar do Java 8 ou Java 11 para versões LTS modernas do Java (Java 17 ou Java 21) ou ao fazer a transição do Java EE (
javax.*) para o Jakarta EE (jakarta.*). - Desacoplamento de arquiteturas monolíticas:descubra componentes EJB acoplados, corretores de mensagens JMS ou implantações WAR e EAR monolíticas que precisam ser refatoradas em microsserviços nativos da nuvem ou aplicativos Spring Boot.
Antes de começar
Antes de iniciar um job de avaliação em Java no console, 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)
- Administrador do Storage (
- 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)
- Usuário da Agent Platform
(
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, o mecanismo de avaliação codmod aplica as seguintes diretrizes de escalonamento e arquivamento:
- Tamanho máximo da base de código:aproximadamente seis 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 módulos ou serviços menores e independentes antes de fazer upload.
- Estrutura de arquivo limpa:exclua binários compilados, caches de pacotes e metadados de controle de versão (como
target/,build/,bin/,node_modules/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 Java
Empacote a base de código Java como um arquivo ZIP que exclui saídas de build e faça upload do arquivo para um bucket do Cloud Storage no projeto.
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*" "*/target/*" "*/build/*" "*/bin/*" "*/node_modules/*"
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.zipSubstitua INPUT_BUCKET pelo nome do bucket do Cloud Storage de destino.
Fazer uma avaliação
Para iniciar um job de avaliação no Modernization Hub, siga estas etapas:
No console, acesse a página Modernization Hub.
Na página de destino, encontre o card Cargas de trabalho Java e clique em Iniciar avaliação.
No campo Nome do job, insira um nome exclusivo para o job de avaliação.
No campo Local do código-fonte, selecione um bucket do Cloud Storage que contenha o código-fonte como um arquivo ZIP.
No campo Local do relatório, selecione um bucket do Cloud Storage para salvar os relatórios de avaliação gerados.
Na lista Receita de modernização, selecione uma opção.
Na lista Local, selecione uma região para o job de avaliação.
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.
Clique em Gerar relatório.
O console inicia um contêiner de avaliação em segundo plano que executa o mecanismo
codmodpara analisar seu projeto. O status do job aparece na tabela Histórico de avaliações.
Analisar o relatório de avaliação
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 acessar os resultados da avaliação:
- Na tabela Histórico de avaliações na página do Modernization Hub, localize seu job de avaliação.
- Quando a coluna Status mudar para Concluído, clique em Baixar relatório.
- Selecione o formato de saída que preferir:
- Relatório em HTML: um resumo interativo que permite filtrar APIs 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 gerado categoriza a prontidão de migração do seu aplicativo em várias áreas principais:
- Pontuação geral de compatibilidade:a porcentagem de linhas de origem e dependências que podem migrar para o ambiente de execução Java de destino sem modificação.
- Detalhamento do bloqueio:dependências legadas específicas do Java ou restrições de ambiente que exigem refatoração, como:
- Mudanças de namespace do Java EE (
javax.*) para o Jakarta EE (jakarta.*). - APIs internas do JDK removidas ou descontinuadas (como pacotes
sun.misc.*ou módulos CORBA). - Configurações ou APIs de servidores de aplicativos proprietários, como descritores de implantação do WebLogic, WebSphere ou JBoss.
- Mudanças de namespace do Java EE (
- Análise de dependências:um inventário detalhado das dependências atuais do Maven ou Gradle, indicando se cada biblioteca é compatível com a versão de tempo de execução do Java de destino ou se requer um upgrade.
- Ações recomendadas:transformações de código sugeridas, receitas de refatoração assistida por IA e caminhos de migração gerados pelo
codmodpara preparar seu aplicativo para a contêinerização no Google Cloud.
A seguir
- Saiba como avaliar aplicativos .NET.
- Saiba como configurar a Mainframe Assessment Tool (MAT).
- Conheça a transformação de código com assistência de IA usando o Gemini Cloud Assist.