A avaliação de modernização de apps do Migration Center (codmod
) é uma ferramenta com tecnologia de IA que automatiza o processo de avaliação de modernização do seu aplicativo. Nesta página, descrevemos as etapas para instalar, usar e resolver problemas da ferramenta
codmod
.
Sobre a avaliação de modernização de apps
O processo típico de avaliação de modernização leva algumas semanas e exige muita experiência. Ao automatizar esse processo, a ferramenta codmod
reduz significativamente esse tempo para algumas horas.
Essa ferramenta tem como objetivo fornecer informações baseadas em evidências sobre a arquitetura, a funcionalidade e os possíveis bloqueadores do aplicativo atual que podem diminuir a velocidade da transformação para a nuvem.
Essa ferramenta é destinada às seguintes funções:
- Arquitetos de TI
- Tomadores de decisão
- Proprietários do aplicativo
A ferramenta codmod
tem como objetivo acelerar a transformação de aplicativos, oferecendo visibilidade clara das mudanças necessárias e dos benefícios obtidos com a transformação do aplicativo em Google Cloud. O codmod
é uma ferramenta CLI portátil que usa o Gemini para analisar o código-fonte e fornece recomendações com base nas práticas recomendadas do Google Cloud .
Antes de começar
A ferramenta codmod
requer os seguintes pré-requisitos:
- Uma estação de trabalho Linux ou Windows (10 ou mais recente).
- Acesso a um projeto Google Cloud com a API Vertex AI ativada.
- Uma instalação da CLI gcloud na sua estação de trabalho. Para mais informações, consulte Instalar a CLI gcloud.
Preços
O custo de usar o Gemini para avaliação de código é determinado principalmente pelo tamanho da base de código e é medido em tokens. A tabela a seguir mostra as estimativas de custos que você pode esperar com base nas suas linhas de código e no modelo escolhido:
Base de código | Linhas de código (LOC) | Custo estimado | |||
---|---|---|---|---|---|
adaptive | 2.0-flash | 2.5-pro (padrão) | 2.5-flash | ||
Spring Petclinic | ~6.500 | US$ 20 | US$ 2 | US$ 30 | US$ 4 |
Projeto James | ~1.000.000 | US$ 60 | US$ 30 | US$ 500 | US$ 40 |
Elasticsearch | ~5.000.000 | US$ 200 | US$ 200 | US$ 3.000 | US$ 200 |
Esses valores podem ser uma estimativa exagerada porque não consideram possíveis economias devido ao seguinte:
- Preços reduzidos para consultas curtas.
- Preços reduzidos para o cache implícito.
- Descontos por compromisso de uso (CUDs).
Espera-se que os custos desses parâmetros sejam uma parte insignificante do custo total, especialmente para bases de código maiores. Para mais informações, consulte Preços da API Gemini.
Mais informações
A ferramenta usa os recursos avançados de análise e compreensão de código da API Vertex AI. Para mais informações sobre os modelos disponíveis e os recursos deles, consulte Modelos do Google na documentação da API Vertex AI.
Para manter a performance ideal e a eficiência de custos, o codmod
tem um limite de tamanho de base de código de aproximadamente 6 milhões de linhas de código.
Para bases de código que excedem esse limite, recomendamos dividi-las em partes menores e gerenciáveis para análise. Analisar seções menores também pode ajudar em avaliações mais focadas e reduzir o tempo geral de processamento.
Configurar codmod
Esta seção fornece instruções de instalação e autenticação para usar a ferramenta
codmod
.
Instalar codmod
Windows
Execute o seguinte comando no Windows PowerShell para baixar a versão mais recente do codmod
:
$version=curl.exe -s https://codmod-release.storage.googleapis.com/latest
curl.exe -O "https://codmod-release.storage.googleapis.com/${version}/windows/amd64/codmod.exe"
Linux
Execute o comando a seguir para fazer o download da versão mais recente de codmod
:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/linux/amd64/codmod"
chmod +x codmod
Autenticar-se no Google Cloud
Para usar a ferramenta codmod
, você precisa de um projeto Google Cloud .
Verifique se a API Vertex AI está ativada no projeto no console ou usando a CLI:
gcloud services enable aiplatform.googleapis.com --project <project-id>
Verifique se você tem o papel
roles/aiplatform.user
ou semelhante no projeto.Para autenticar, execute o seguinte comando:
gcloud auth application-default login
Como alternativa, use uma conta de serviço e defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS
. Para saber mais, consulte
Como o Application Default Credentials funciona.
Gerenciar a configuração do codmod
As seções a seguir explicam como configurar codmod
com o comando
codmod config
.
Listar todas as configurações
Para conferir todas as propriedades de configuração atuais e os valores delas, execute o seguinte comando:
codmod config list
Definir um valor padrão para uma flag
Para definir um valor padrão para uma propriedade, use o comando set
. Por exemplo, para definir o ID do projeto padrão, execute:
codmod config set project "PROJECT_ID"
Substitua PROJECT_ID
pelo ID do projeto Google Cloud .
Para definir a região padrão, execute:
codmod config set region "REGION"
Substitua REGION
pela região Google Cloud . Consulte a
lista de regiões disponíveis.
Se você não tiver certeza sobre qual região usar, use us-central1
.
Receber um valor específico
Para conferir o valor de uma única propriedade, use o comando get
. Por exemplo, para receber o ID do projeto configurado, execute o seguinte comando:
codmod config get project
Remover um valor padrão
Para remover um padrão configurado e reverter para a configuração padrão original da ferramenta, use o comando unset
. Por exemplo, para remover o ID do projeto padrão, execute o seguinte comando:
codmod config unset project
Criar um relatório de avaliação de codmod
As seções a seguir descrevem como criar a avaliação padrão e como personalizá-la de acordo com suas necessidades.
Criar o relatório padrão
Para criar um relatório de avaliação, execute a ferramenta codmod
com as seguintes
flags:
codmod create -c "CODEBASE" -o "OUTPUT"
Substitua:
CODEBASE
: especifica o diretório que contém o código-fonte a ser analisado e pode ser especificado várias vezes.OUTPUT
: especifica o caminho em que o relatório gerado é salvo. O relatório está em formato HTML.
É possível substituir o projeto e a região padrão com as flags
-p "PROJECT_ID"
e -r "REGION"
,
respectivamente.
Também é possível especificar as seguintes flags opcionais:
--modelset [2.0-flash|2.5-flash|2.5-pro|adaptive]
: especifica quais modelos do Gemini usar. O valor padrão é2.5-pro
. A opção adaptativa oferece uma redução significativa de custos, mas pode haver uma compensação na qualidade do relatório em comparação com2.5-pro
.--context <string>
: qualquer contexto adicional que você queira fornecer sobre o projeto. A ferramenta considera esse contexto ao gerar o relatório.--context-file <path>
: igual a--context
, em que o contexto é fornecido no arquivo especificado.--format <html|markdown|odt|json>
: o formato usado para o relatório gerado. O padrão é HTML.--allow-large-codebase
: por padrão, ocodmod
pede confirmação antes de analisar bases de código com mais de um milhão de linhas de código para evitar custos altos. Essa opção serve como uma confirmação não interativa. Também é possível ativar esse recurso por padrão executandocodmod config set allow_large_codebase true
.--improve-fidelity
: quando definido,codmod
gera seções em série em vez de em paralelo. Isso melhora a consistência entre diferentes seções do relatório final, mas exige um tempo de execução maior.--force-include <strings>
,--force-exclude <strings>
: por padrão, ocodmod
verifica extensões de arquivo conhecidas, incluindo Java, .NET e Python. Use estas flags para incluir ou excluir extensões de arquivo. O argumento precisa ser uma expressão regular com a sintaxe RE2.--experiments
: especifique--experiments=enable_pdf,enable_images
para compatibilidade com PDFs e imagens emcodmod
.
Criar um relatório completo
Se você precisar de uma análise completa, crie um relatório usando o comando create full
:
codmod create full -c "~/mycodebase/" -o "report.html"
Criar um relatório focado na camada de dados
Se for necessário analisar a camada de dados com mais atenção, crie um relatório focado nessa área:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
Criar um relatório para uma intenção de transformação específica
Se você quiser focar o relatório em uma intenção de modernização específica, use uma das seguintes opções:
- Transformação de carga de trabalho da Microsoft (
MICROSOFT_MODERNIZATION
): use com aplicativos executados no SO da Microsoft. A avaliação vai se concentrar em jornadas de transformação que modernizam frameworks baseados em .NET para usar a versão mais recente e reduzir as dependências de licenças da Microsoft. - Transformação de carga de trabalho de nuvem para nuvem (
CLOUD_TO_CLOUD
): use com aplicativos executados em outras infraestruturas de hiperescala. A avaliação vai se concentrar nas mudanças recomendadas para transformar o aplicativo, como mapear outros serviços de fornecedores de nuvem para serviçosGoogle Cloud . - Transformação legada do Java (
JAVA_LEGACY_TO_MODERN
): use com aplicativos que executam a versão Java 8 ou semelhante. A avaliação vai se concentrar em encontrar dependências de upgrade e áreas no código afetadas pela mudança para o Java 21 (a LTS atual). - Transformação legada do Java WILDFLY (
WILDFLY_LEGACY_TO_MODERN
): use com bases de código Java EE/Jakarta EE executadas em versões do servidor de aplicativos WildFly anteriores à mais recente. A avaliação vai se concentrar em identificar dependências de upgrade e áreas no código afetadas pelo upgrade da versão do servidor de aplicativos WildFly, incluindo as mudanças necessárias para diferenças e compatibilidade de API.
Para criar um relatório focado em intenção, use a flag --intent
:
codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"
Criar um relatório com mais seções
A ferramenta permite incluir outras seções que não estão incluídas por padrão para reduzir custos. As seguintes seções são compatíveis:
files
: uma visualização hierárquica estruturada das pastas do projeto e descrição de cada conteúdo para ajudar você a se orientar nos arquivos do projeto.classes
: um catálogo de classes de código com informações sobre cada classe e suas dependências em outras classes. As linguagens compatíveis são Java e C#.
Para criar as seções adicionais, use a flag --optional-sections
:
codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"
Substitua SECTIONS
por uma lista de valores separados por vírgulas.
Criar um relatório personalizado
Se quiser analisar alguns tópicos personalizados específicos, crie um relatório personalizado com base no contexto fornecido usando o seguinte comando:
codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"
Por padrão, um LLM é usado para ampliar o contexto fornecido e adaptá-lo para garantir que uma seção coerente seja gerada. É possível desativar esse
comportamento especificando --improve-context=false
.
Outras flags:
--from-template <path>
: especifica um arquivo de modelo que define a estrutura do documento em formato de texto ou PDF.codmod
detecta a estrutura e pede aprovação para continuar gerando o relatório.--skip-template-approval
: pula a solicitação de aprovação ao usar a flag--from-template
.
Modificar um relatório
Você pode criar uma seção em um relatório ou modificar uma seção existente com base em uma seção específica. Por exemplo, você pode querer se concentrar em um aspecto específico da arquitetura do sistema ou em um tipo específico de vulnerabilidade de segurança.
Os comandos que modificam um relatório exigem as seguintes flags:
- Um de
--context
e--context-file
: especifique a solicitação de modificação. --from-report
: especifica o caminho do arquivo de relatório atual.--from-section
: nome da seção a ser usada como base para uma nova seção (por exemplo, "Visão geral", "Arquitetura").
Para mostrar todas as seções disponíveis em um relatório específico, execute o seguinte comando:
codmod list-sections --from-report "REPORT"
Revisar uma seção de um relatório
Execute o seguinte comando para modificar uma seção:
codmod revise section -c "CODEBASE" --from-report "REPORT" \
-o "REVISED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
Criar uma nova seção de relatório
Crie uma seção usando o seguinte comando:
codmod create section -c "CODEBASE" --from-report "REPORT" \
-o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
- A flag
from-section
no comandocreate section
é opcional. - Por padrão, um LLM é usado para ampliar o contexto fornecido e adaptá-lo para garantir a geração de uma seção coerente. É possível desativar esse comportamento especificando
--improve-context=false
.
Observe o seguinte:
create section
erevise section
são compatíveis apenas com o formato de relatóriohtml
.create section
,revise section
elist-sections
esperam que a flag--from-report
aponte para um relatório em formato HTML.
Estimar custos de avaliação
A ferramenta codmod
ajuda você a entender o custo de uso dela, permitindo calcular o custo aproximado de criar um relatório. Para conferir a estimativa de custo, execute o seguinte comando:
codmod create --estimate-cost -c "CODEBASE"
As estimativas de custo não são compatíveis com os comandos create section
e create custom
.
Definir o nível de detalhamento
A verbosidade codmod
é configurada usando a flag --verbosity LEVEL
.
O nível de detalhamento dos registros é um dos seguintes: debug
, info
, warn
, error
ou none
. O valor padrão é warn
.
Solução de problemas
- Permissão negada:se você encontrar um erro de "permissão negada",
verifique se concedeu a permissão de execução ao binário
codmod
executando o comandochmod +x codmod
. - A CLI parece estar travada:a análise pode levar muito tempo, mas geralmente é possível ver o progresso na barra de progresso da CLI. Se a barra de progresso permanecer em 0% após 15 minutos, verifique se você tem cota suficiente para o modelo relevante. Por padrão, o
codmod
usa o modelogemini-2.5-pro
. No entanto, isso está sujeito a mudanças, já que diferentes conjuntos de modelos usam modelos diferentes para finalidades diferentes. Relatório de erros:se um erro precisar ser investigado, colete as informações de depuração para ajudar nossa equipe de desenvolvimento. Os registros fornecem detalhes importantes para a solução de problemas. Execute o comando a seguir para coletar os registros, compacte e compartilhe o arquivo resultante com a equipe em codmod-feedback-external@google.com.
codmod collect-logs -o "codmod_logs.zip"
Licenças de código aberto
Para baixar os avisos de código aberto das dependências da versão mais recente do codmod
, execute:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"
Receber suporte e enviar feedback
Para melhorar a qualidade deste produto, coletamos dados de uso pseudoanonimizados. Esses dados são tratados de acordo com nossa política de privacidade Google Cloud Aviso de privacidade. Você pode mudar sua preferência a qualquer momento executando o seguinte comando:
codmod config set disable_usage_reporting true
Você pode receber suporte e enviar feedback das seguintes maneiras:
- Para receber suporte para
codmod
, clique no botão Suporte no relatório HTML gerado ou envie um e-mail para codmod-feedback-external@google.com. - Para compartilhar feedback sobre
codmod
, clique no botão Feedback no relatório HTML gerado.