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 codmodtem 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 de CLI portátil que usa o Gemini para analisar o código fonte e fornece recomendações com base nas 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 compreensão e análise 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
Para usar o comando codmod, adicione o executável ao caminho ou crie um alias.
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.userou 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.--format <html|markdown|odt|json>: o formato usado para o relatório gerado. A predefinição é HTML.--allow-large-codebase: por predefinição, ocodmodpede 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,codmodgera 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,codmodanalisa 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_imagespara suportar PDFs e imagens emcodmod.--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.--supporting-documents <path>: especifica um diretório de documentação de apoio sobre a base de código. Pode fazer referência a ficheiros neste diretório a partir do contexto fornecido com as flags--contextou--context-filepara inclusão na análise. Os formatos suportados incluem texto, PDF e imagens (PNG, JPG e JPEG).
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 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 de nuvem para 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 Java WILDFLY antiga (
WILDFLY_LEGACY_TO_MODERN): use com bases de código Java EE/Jakarta EE em execução 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. - Aplicação C/C++ para migração da arquitetura Arm (
ARM_MIGRATION): use com aplicações C/C++ para avaliar a respetiva prontidão e o esforço necessário para migrar de arquiteturas baseadas em x86 para arquiteturas baseadas em Arm, como as VMs Google Cloud Axion C4A. A avaliação centra-se na identificação de potenciais problemas de portabilidade do código, dependências específicas da arquitetura, modificações do sistema de compilação e considerações de testes necessárias para uma transição bem-sucedida para o Arm a partir doGoogle Cloud ou de outro CSP, como as instâncias Graviton da AWS.
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 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.codmoddeteta 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
--contexte--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" ou "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-sectionno 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 sectionerevise sectionsó suportam o formato de relatóriohtml.create section,revise sectionelist-sectionsesperam que a flag--from-reportaponte 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 da 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.
Verifique e atualize a codmodversão da CLI
A CLI codmod pode verificar automaticamente se está disponível uma versão mais recente.
Verificações automáticas
A cada 24 horas, a CLI sonda um contentor do Cloud Storage para ver se foi lançada uma versão mais recente do codmod. Se for encontrada uma versão mais recente,
é apresentada uma mensagem de notificação no seu terminal.
A mensagem inclui o novo número da versão e um link para transferir a atualização.
Este processo ajuda a garantir que se mantém a par das funcionalidades,
melhorias e correções de erros mais recentes.
Desative as verificações de versão
Se preferir desativar a verificação automática da versão, pode usar o comando config
set:
codmod config set disable_version_check true
Para reativar a verificação da versão, defina o valor novamente como false:
codmod config set disable_version_check false
Pode ver o estado atual desta definição e outras configurações executando o seguinte comando:
codmod config list
Conclusão da linha de comandos
A ferramenta de CLI codmod suporta a conclusão da linha de comandos da shell para Bash, Zsh, Fish e PowerShell. Esta funcionalidade ajuda a escrever rapidamente comandos, flags e argumentos premindo a tecla Tab para ver e selecionar as opções disponíveis.
O preenchimento automático oferece as seguintes vantagens:
- Comandos e flags de preenchimento automático: comece a escrever um comando
codmodou uma flag e primaTabpara ver os preenchimentos possíveis. - Descobrir opções: ver valores válidos para determinadas flags. Por
exemplo:
codmod create --modelset [TAB]sugere conjuntos de modelos disponíveis (por exemplo,2.0-flash,2.5-pro).codmod create --format [TAB]sugere formatos de saída (por exemplo,html,json,markdown).codmod create --intent [TAB]sugere intenções predefinidas.
- Sugestões sensíveis ao contexto: a conclusão é adaptada ao comando.
Por exemplo:
codmod config set [TAB]sugere as chaves de configuração disponíveis que pode definir.codmod config get [TAB]sugere as chaves de configuração disponíveis que pode obter.- A conclusão do caminho do ficheiro só é oferecida para flags ou argumentos que esperam um caminho de ficheiro ou diretório (por exemplo,
--codebase,--output-path). Outras flags, como--project, já não sugerem nomes de ficheiros.
Ative o preenchimento da shell
Antes de ativar a conclusão de comandos, certifique-se de que o comando codmod funciona adicionando o ficheiro executável ao caminho ou criando um alias.
Para carregar as conclusões para o seu shell, execute o comando adequado. As instruções variam consoante o seu shell. Use o comando help para receber
instruções específicas:
# For Bash
codmod completion bash --help
# For Zsh
codmod completion zsh --help
# For Fish
codmod completion fish --help
# For PowerShell
codmod completion powershell --help
Por exemplo, para carregar a conclusão do Bash no Linux, pode adicionar o seguinte ao ficheiro ~/.bashrc:
source <(codmod completion bash)
Certifique-se de que reinicia a shell ou a origem do seu perfil (por exemplo, source
~/.bashrc) para que as alterações entrem em vigor.
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
codmodbiná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
codmodusa 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.