A avaliação de modernização de apps do Migration Center (codmod
) é uma ferramenta baseada em IA que automatiza o processo de avaliação de modernização da sua aplicação. Esta página descreve os passos para instalar, usar e resolver problemas da
ferramenta codmod
.
Acerca da avaliação de modernização de apps
Normalmente, o processo de avaliação da modernização demora algumas semanas e requer muitos conhecimentos especializados. Ao automatizar este processo, a ferramenta codmod
reduz significativamente este tempo para algumas horas.
Esta ferramenta tem como objetivo fornecer informações baseadas em provas sobre a arquitetura, a funcionalidade e os potenciais bloqueadores atuais da aplicação que podem atrasar a transformação para a nuvem.
Esta ferramenta destina-se às seguintes funções:
- Arquitetos de TI
- Responsáveis pela tomada de decisões
- Proprietários da aplicação
A ferramenta codmod
tem como objetivo acelerar a transformação de aplicações, oferecendo
visibilidade clara das alterações necessárias e das vantagens obtidas com a
transformação da aplicação para Google Cloud. O codmod
é uma ferramenta CLI portátil que usa o Gemini para analisar o código fonte e fornece recomendações baseadas em Google Cloud práticas recomendadas.
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 Google Cloud projeto que tenha a API Vertex AI ativada.
- Uma instalação da CLI gcloud na sua estação de trabalho. Para mais informações, consulte Instale a CLI gcloud.
Preços
O custo de usar o Gemini para a avaliação de código é determinado principalmente pelo tamanho da base de código e é medido em tokens. A tabela seguinte mostra as estimativas de custos que pode esperar ver com base nas suas linhas de código e no modelo que escolher:
Base de código | Linhas de código (LOC) | Custo estimado | |||
---|---|---|---|---|---|
adaptativo | 2.0-flash | 2.5-pro (predefinição) | 2.5-flash | ||
Spring Petclinic | ~6500 | 20 $ | 2 € | 30 $ | 4 € |
James Project | ~1 000 000 | 60 € | 30 $ | 500 € | 40 USD |
Elasticsearch | ~5 000 000 | 200 € | 200 € | 3000 $ | 200 € |
Estes valores podem ser uma sobrestimação porque não têm em conta as possíveis poupanças devido ao seguinte:
- Preços reduzidos para consultas curtas.
- Preços reduzidos para o armazenamento em cache implícito.
- Descontos de fidelidade (CUDs).
Espera-se que os custos destes parâmetros sejam uma parte insignificante do custo total, especialmente para bases de código maiores. Para mais informações, consulte os preços da API Gemini.
Informações adicionais
A ferramenta usa as capacidades avançadas de análise e compreensão de código da API Vertex AI. Para mais informações sobre os modelos disponíveis e as respetivas funcionalidades, consulte os modelos Google na documentação da API Vertex AI.
Para manter o desempenho e a rentabilidade ideais, codmod
tem um limite de tamanho da base de código de aproximadamente 6 milhões de linhas de código.
Para bases de código que excedam este limite, recomendamos que as divida em partes mais pequenas e fáceis de gerir para análise. A análise de secções mais pequenas também pode ajudar em avaliações mais focadas e, potencialmente, reduzir o tempo de processamento geral.
Configurar codmod
Esta secção fornece instruções de instalação e autenticação para usar a ferramenta codmod
.
Instale a app codmod
Windows
Execute o seguinte comando no Windows PowerShell para transferir 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 seguinte comando para transferir a versão mais recente do 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
Autentique para Google Cloud
Para usar a ferramenta codmod
, precisa de um Google Cloud projeto.
Certifique-se de que a API Vertex AI está ativada no projeto na consola ou através da CLI:
gcloud services enable aiplatform.googleapis.com --project <project-id>
Certifique-se de que tem a função
roles/aiplatform.user
ou semelhante no projeto.Para autenticar, execute o seguinte comando:
gcloud auth application-default login
Em alternativa, pode usar uma conta de serviço e definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS
. Para saber mais, consulte o artigo
Como funcionam as Credenciais padrão da aplicação.
Faça a gestão da codmod
configuração
As secções seguintes explicam como configurar o codmod
com o comando codmod config
.
Apresentar todas as definições
Para ver todas as propriedades de configuração atuais e os respetivos valores, execute o seguinte comando:
codmod config list
Predefina um valor para uma flag
Para predefinir um valor para uma propriedade, use o comando set
. Por exemplo, para definir o ID do projeto predefinido, execute:
codmod config set project "PROJECT_ID"
Substitua PROJECT_ID
pelo Google Cloud ID do projeto.
Para definir a região predefinida, execute:
codmod config set region "REGION"
Substitua REGION
pela Google Cloud região. Consulte a
lista de regiões disponíveis.
Se não tiver a certeza da região que deve usar, use us-central1
.
Obtenha um valor específico
Para ver o valor de uma única propriedade, use o comando get
. Por exemplo, para obter o ID do projeto configurado, execute o seguinte comando:
codmod config get project
Anule a predefinição de um valor
Para remover uma predefinição configurada e reverter para a predefinição original da ferramenta, use o comando unset
. Por exemplo, para remover o ID do projeto predefinido, execute o seguinte comando:
codmod config unset project
Crie um relatório de avaliação codmod
As secções seguintes descrevem como criar a avaliação predefinida e como a personalizar de acordo com as suas necessidades.
Crie o relatório predefinido
Para criar um relatório de avaliação, execute a ferramenta codmod
com as seguintes flags:
codmod create -c "CODEBASE" -o "OUTPUT"
Substitua o seguinte:
CODEBASE
: especifica o diretório que contém o código fonte a analisar e pode ser especificado várias vezes.OUTPUT
: especifica o caminho onde o relatório gerado é guardado. O relatório está no formato HTML.
Pode substituir o projeto e a região predefinidos com os flags -p "PROJECT_ID"
e -r "REGION"
, respetivamente.
Também pode especificar as seguintes flags opcionais:
--modelset [2.0-flash|2.5-flash|2.5-pro|adaptive]
: especifica os modelos Gemini a usar. O valor predefinido é2.5-pro
. A estratégia adaptativa oferece uma redução de custos significativa com uma potencial compensação na qualidade dos relatórios em comparação com a estratégia2.5-pro
.--context <string>
: qualquer contexto adicional que queira facultar acerca do projeto. A ferramenta tem este contexto em consideração quando gera o relatório.--context-file <path>
: igual a--context
, em que o contexto é fornecido no ficheiro indicado.--format <html|markdown|odt|json>
: o formato usado para o relatório gerado. A predefinição é HTML.--allow-large-codebase
: por predefinição, ocodmod
pede confirmação antes de analisar bases de código com mais de 1 milhão de linhas de código, para evitar custos elevados. Esta opção serve como uma confirmação não interativa. Também pode ativar esta opção por predefinição executando o comandocodmod config set allow_large_codebase true
.--improve-fidelity
: quando definido,codmod
gera secções em série em vez de em paralelo. Isto melhora a consistência entre as diferentes secções do relatório final, mas requer um tempo de execução mais longo.--force-include <strings>
,--force-exclude <strings>
: por predefinição,codmod
analisa extensões de ficheiros populares, incluindo Java, .NET e Python. Use estas flags para incluir ou excluir extensões de ficheiros. O argumento tem de ser uma expressão regular com a sintaxe RE2.--experiments
: especifique--experiments=enable_pdf,enable_images
para suportar PDFs e imagens emcodmod
.
Crie um relatório completo
Se precisar de uma análise completa, crie um relatório com o comando create full
:
codmod create full -c "~/mycodebase/" -o "report.html"
Crie um relatório focado na camada de dados
Se for necessária uma atenção mais profunda à camada de dados, pode criar um relatório com foco nesta área:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
Crie um relatório para um objetivo de transformação específico
Se quiser focar o relatório numa intenção de modernização específica, pode usar uma das seguintes intenções suportadas:
- Transformação da carga de trabalho da Microsoft (
MICROSOFT_MODERNIZATION
): use-a com aplicações executadas no SO Microsoft. A avaliação vai focar-se em percursos de transformação que vão modernizar as estruturas baseadas em .NET para usar a versão mais recente e reduzir as dependências das licenças da Microsoft. - Transformação de cargas de trabalho da nuvem para a nuvem (
CLOUD_TO_CLOUD
): use com aplicações em execução noutra infraestrutura de hiperescala. A avaliação vai focar-se nas alterações recomendadas para transformar a aplicação, como mapear outros serviços de fornecedores de nuvem para serviços doGoogle Cloud . - Transformação Java antiga (
JAVA_LEGACY_TO_MODERN
): use com aplicações que executam a versão Java Java 8 ou semelhante. A avaliação vai focar-se na procura de dependências de atualização e áreas no código afetadas pela alteração para Java 21 (o LTS atual). - Transformação WILDFLY Java antiga (
WILDFLY_LEGACY_TO_MODERN
): use com bases de código Java EE/Jakarta EE executadas em versões do servidor de aplicações WildFly anteriores à mais recente. A avaliação vai focar-se na identificação de dependências de atualização e áreas no código afetadas pela atualização da versão do servidor de aplicações WildFly, incluindo as alterações necessárias para as diferenças e a compatibilidade da API.
Para criar um relatório focado na intenção, use a flag --intent
:
codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"
Crie um relatório com secções adicionais
A ferramenta suporta a inclusão de secções adicionais que não estão incluídas por predefinição para reduzir os custos. As seguintes secções são compatíveis:
files
: uma vista hierárquica estruturada das pastas do projeto e da descrição do conteúdo de cada pasta para ajudar a orientar-se nos ficheiros do projeto.classes
: um catálogo de classes de código com informações sobre cada classe e as respetivas dependências de outras classes. Os idiomas suportados são o Java e o C#.
Para criar as secçõ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.
Crie um relatório personalizado
Se quiser explorar alguns tópicos personalizados específicos, pode criar um relatório personalizado com base no contexto que fornecer através do seguinte comando:
codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"
Por predefinição, é usado um MDG para expandir o contexto fornecido e
adaptá-lo para garantir que é gerada uma secção coerente. Pode desativar este comportamento especificando --improve-context=false
.
Sinalizações adicionais:
--from-template <path>
: especifica um ficheiro de modelo que define a estrutura do documento no formato de ficheiro de texto ou PDF.codmod
deteta a estrutura e pede aprovação para continuar a gerar o relatório.--skip-template-approval
: ignora o pedido de aprovação quando usa a flag--from-template
.
Modifique um relatório existente
Pode criar uma nova secção num relatório ou modificar uma secção existente com base numa secção específica. Por exemplo, pode querer focar-se num aspeto específico da arquitetura do sistema ou num tipo específico de vulnerabilidade de segurança.
Os comandos que modificam um relatório requerem as seguintes flags:
- Um de
--context
e--context-file
: especifique o pedido de modificação. --from-report
: especifica o caminho para o ficheiro de relatório existente.--from-section
: nome da secção a usar como base para uma nova secção (por exemplo, Vista geral, Arquitetura).
Para apresentar todas as secções disponíveis num relatório específico, execute o seguinte comando:
codmod list-sections --from-report "REPORT"
Revise uma secção do relatório
Modifique uma secção existente executando o seguinte comando:
codmod revise section -c "CODEBASE" --from-report "REPORT" \
-o "REVISED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
Crie uma nova secção de relatório
Crie uma nova secção com 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 predefinição, é usado um MDG para expandir o contexto fornecido e adaptá-lo para garantir que é gerada uma secção coerente. Pode desativar este comportamento especificando
--improve-context=false
.
Tenha em conta o seguinte:
create section
erevise section
só suportam o formato de relatóriohtml
.create section
,revise section
elist-sections
esperam que a flag--from-report
aponte para um relatório no formato HTML.
Estime os custos de avaliação
A ferramenta codmod
ajuda a compreender o custo de utilização da ferramenta, permitindo-lhe
calcular o custo aproximado de criação de um relatório. Para ver a estimativa de custos, execute o seguinte comando:
codmod create --estimate-cost -c "CODEBASE"
As estimativas de custos não são suportadas para os comandos create section
e create custom
.
Defina o nível de verbosidade
A verbosidade codmod
é configurada através da flag --verbosity LEVEL
.
O nível de detalhe dos registos é um dos seguintes: debug
, info
,
warn
, error
ou none
. O valor predefinido é warn
.
Resolução de problemas
- Autorização recusada: se encontrar um erro "autorização recusada",
certifique-se de que concedeu a autorização de execução ao
codmod
binário executando o comandochmod +x codmod
. - A CLI parece estar bloqueada: a análise pode demorar muito tempo, mas, normalmente, pode ver o progresso na barra de progresso na CLI. Se a barra de progresso permanecer nos 0% após 15 minutos, verifique se tem quota suficiente para o modelo relevante. Por predefinição, o
codmod
usa o modelogemini-2.5-pro
. No entanto, isto está sujeito a alterações, uma vez que os diferentes conjuntos de modelos usam modelos diferentes para fins diferentes. Comunicação de erros: no caso de um erro que necessite de investigação, recolha as informações de depuração para ajudar a nossa equipa de desenvolvimento. Os registos fornecem detalhes cruciais para a resolução de problemas. Execute o seguinte comando para recolher os registos e, em seguida, comprima e partilhe o arquivo resultante com a equipa através do endereço de email codmod-feedback-external@google.com.
codmod collect-logs -o "codmod_logs.zip"
Licenças de código aberto
Pode transferir os avisos de código aberto para as dependências da versão mais recente do codmod
executando o seguinte comando:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"
Receba apoio técnico e envie feedback
Para ajudar a melhorar a qualidade deste produto, recolhemos dados de utilização pseudonimizados. Estes dados são tratados em conformidade com a nossa política de privacidade Google Cloud Aviso de Privacidade. Pode alterar a sua preferência em qualquer altura executando o seguinte comando:
codmod config set disable_usage_reporting true
Pode receber apoio técnico e enviar feedback das seguintes formas:
- Para receber apoio técnico para
codmod
, clique no botão Apoio técnico no relatório HTML gerado ou envie um email para codmod-feedback-external@google.com. - Para partilhar feedback sobre
codmod
, clique no botão Feedback no relatório HTML gerado.