La evaluación de modernización de apps de Migration Center (codmod) es una
herramienta potenciada por IA que automatiza el proceso de evaluación de modernización de tu
aplicación. En esta página, se describen los pasos para instalar, usar y solucionar problemas de la herramienta de codmod.
Acerca de App Modernization Assessment
El proceso típico de evaluación de la modernización tarda algunas semanas y requiere mucha
experiencia. Con la automatización de este proceso, la herramienta de codmod reduce
significativamente este tiempo a unas pocas horas.
Esta herramienta tiene como objetivo proporcionar información basada en evidencia sobre la arquitectura, la funcionalidad y los posibles bloqueadores de la aplicación actual que podrían ralentizar la transformación a la nube.
Esta herramienta está destinada a los siguientes roles:
- Arquitectos de TI
- Encargados de tomar las decisiones
- Propietarios de la aplicación
El objetivo de la herramienta codmod es acelerar la transformación de las aplicaciones, ya que proporciona
una visibilidad clara de los cambios necesarios y los beneficios que se obtienen
al transformar la aplicación en Google Cloud. La codmod es una herramienta de CLI portátil
que usa Gemini para analizar el código fuente y proporciona
recomendaciones basadas en las prácticas recomendadas de Google Cloud .
Antes de comenzar
La herramienta codmod requiere los siguientes requisitos previos:
- Una estación de trabajo de Linux o Windows (10 o posterior)
- Acceso a un proyecto de Google Cloud que tenga habilitada la API de Vertex AI.
- Una instalación de gcloud CLI en tu estación de trabajo. Para obtener más información, consulta Instala gcloud CLI.
Precios
El costo de usar Gemini para la evaluación de código se basa principalmente en el tamaño de la base de código y se mide en tokens. En la siguiente tabla, se muestran las estimaciones de costos que puedes esperar ver según tus líneas de código y el modelo que elijas:
| Base de código | Líneas de código (LOC) | Costo estimado | ||||
|---|---|---|---|---|---|---|
| adaptable | 2.5-flash | 2.5-pro | 3.5-flash | 3.8-flash (predeterminado) | ||
| Spring Petclinic | ~6,500 | $20 | $3 | $20 | $3 | $9 |
| James Project | ~1,000,000 | $40 | $30 | $200 | $200 | $200 |
| Elasticsearch | ~5,000,000 | $200 | $200 | $900 | $500 | $500 |
Estos valores pueden ser una sobreestimación porque no tienen en cuenta los posibles ahorros debido a lo siguiente:
- Precios reducidos para consultas breves.
- Precios reducidos para el almacenamiento en caché implícito.
- Descuentos por compromiso de uso (CUD)
Se espera que los costos de estos parámetros sean una parte insignificante del costo total, en especial para las bases de código más grandes. Para obtener más información, consulta Precios de la API de Gemini.
Información adicional
La herramienta usa las capacidades avanzadas de comprensión y análisis de código de la API de Vertex AI. Para obtener más información sobre los modelos disponibles y sus funciones, consulta Modelos de Google en la documentación de la API de Vertex AI.
Para mantener un rendimiento y una rentabilidad óptimos, codmod tiene un límite de tamaño de la base de código
de aproximadamente 6 millones de líneas de código.
En el caso de las bases de código que superen este límite, recomendamos dividirlas en
partes más pequeñas y manejables para su análisis. Analizar secciones más pequeñas también puede
ayudar a realizar evaluaciones más enfocadas y, posiblemente, reducir el tiempo de procesamiento
general.
Configurar codmod
En esta sección, se proporcionan instrucciones de instalación y autenticación para usar la
herramienta de codmod.
Instalar codmod
Windows
Ejecuta el siguiente comando en Windows PowerShell para descargar la versión más reciente de 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
Ejecuta el siguiente comando para descargar la versión más reciente 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
Para usar el comando codmod, agrega el ejecutable a la ruta de acceso o crea un alias.
Autentícate en Google Cloud
Para usar la herramienta de codmod, necesitas un proyecto de Google Cloud .
Asegúrate de que la API de Vertex AI esté habilitada en el proyecto en la consola o con la CLI:
gcloud services enable aiplatform.googleapis.com --project <project-id>Asegúrate de tener el rol de
roles/aiplatform.usero uno similar en el proyecto.Para autenticarte, ejecuta el siguiente comando:
gcloud auth application-default login
Como alternativa, puedes usar una cuenta de servicio y establecer la
variable de entorno GOOGLE_APPLICATION_CREDENTIALS. Para obtener más información, consulta
Cómo funcionan las credenciales predeterminadas de la aplicación.
Administra la configuración de codmod
En las siguientes secciones, se explica cómo configurar codmod con el
comando codmod config.
Enumera todos los parámetros de configuración
Para ver todas las propiedades de configuración actuales y sus valores, ejecuta el siguiente comando:
codmod config list
Establece un valor predeterminado para un parámetro
Para establecer un valor predeterminado para una propiedad, usa el comando set. Por ejemplo,
para establecer el ID del proyecto predeterminado, ejecuta el siguiente comando:
codmod config set project "PROJECT_ID"
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud .
Para establecer la región predeterminada, ejecuta lo siguiente:
codmod config set region "REGION"
Reemplaza REGION por la región de Google Cloud . Consulta la
lista de regiones disponibles.
Si no sabes qué región usar, usa us-central1.
Obtén un valor específico
Para ver el valor de una sola propiedad, usa el comando get. Por ejemplo,
para obtener el ID del proyecto configurado, ejecuta el siguiente comando:
codmod config get project
Anula la configuración de un valor predeterminado
Para quitar un valor predeterminado configurado y volver a la configuración predeterminada original de la herramienta, usa el comando unset. Por ejemplo, para quitar el ID del proyecto predeterminado, ejecuta el siguiente comando:
codmod config unset project
Crea un informe de evaluación de codmod
En las siguientes secciones, se describe cómo crear la evaluación predeterminada y cómo personalizarla según tus necesidades.
Crea el informe predeterminado
Para crear un informe de evaluación, ejecuta la herramienta codmod con las siguientes
marcas:
codmod create -c "CODEBASE" -o "OUTPUT"
Reemplaza lo siguiente:
CODEBASE: Especifica el directorio que contiene el código fuente que se analizará y se puede especificar varias veces.OUTPUT: Especifica la ruta de acceso en la que se guarda el informe generado. El informe está en formato HTML.
Puedes anular el proyecto y la región predeterminados con las marcas
-p "PROJECT_ID" y -r "REGION",
respectivamente.
También puedes especificar las siguientes marcas opcionales:
--modelset [2.5-flash|2.5-pro|3.5-flash|3.8-flash|adaptive]: especifica qué modelos de Gemini usar. El valor predeterminado es3.8-flash. El modo adaptable proporciona una reducción de costos significativa con una posible compensación en la calidad de los informes en comparación con2.5-pro.--format <html|markdown|odt|json>: Es el formato que se usa para el informe generado. El valor predeterminado es HTML.--allow-large-codebase: De forma predeterminada,codmodsolicitará confirmación antes de analizar bases de código de más de 1 millón de líneas de código para evitar costos altos. Esta opción sirve como confirmación no interactiva. También puedes habilitar esta opción de forma predeterminada ejecutandocodmod config set allow_large_codebase true.--improve-fidelity: Cuando se establece,codmodgenera secciones de forma secuencial en lugar de en paralelo. Esto mejora la coherencia entre las diferentes secciones del informe final, pero requiere un tiempo de ejecución más largo.--force-include <strings>,--force-exclude <strings>: De forma predeterminada,codmodanaliza extensiones de archivo populares, como Java, .NET y Python. Usa estas marcas para incluir o excluir extensiones de archivo. El argumento debe ser una expresión regular con la sintaxis RE2.--experiments: especifica--experiments=enable_pdf,enable_imagespara admitir archivos PDF y de imagen encodmod.--context <string>: cualquier contexto adicional que quieras proporcionar sobre el proyecto. La herramienta tiene en cuenta este contexto cuando genera el informe.--context-file <path>: Es igual que--context, en el que el contexto se proporciona en el archivo dado.--supporting-documents <path>: Especifica un directorio de documentación de respaldo sobre la base de código. Se puede hacer referencia a los archivos de este directorio desde el contexto proporcionado con las marcas--contexto--context-filepara incluirlos en el análisis. Los formatos admitidos incluyen texto, PDF e imágenes (PNG, JPG y JPEG).
Crear un informe completo
Si necesitas un análisis completo, crea un informe con el comando create full:
codmod create full -c "~/mycodebase/" -o "report.html"
Crea un informe centrado en la capa de datos
Si se requiere una atención más profunda a la capa de datos, se puede crear un informe con un enfoque en esta área:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
Crea un informe para un intent de transformación específico
Si deseas enfocar el informe en un intent de modernización en particular, puedes usar uno de los siguientes intents admitidos:
- Transformación de cargas de trabajo de Microsoft (
MICROSOFT_MODERNIZATION): Se usa con aplicaciones que se ejecutan en el SO de Microsoft. La evaluación se enfocará en los recorridos de transformación que modernizarán los frameworks basados en .NET para usar la versión más reciente y reducir las dependencias de las licencias de Microsoft. - Transformación de cargas de trabajo de nube a nube (
CLOUD_TO_CLOUD): Se usa con aplicaciones que se ejecutan en otra infraestructura de hiperescala. La evaluación se enfocará en los cambios recomendados para transformar la aplicación, como asignar otros servicios de proveedores de servicios en la nube a los servicios deGoogle Cloud . - Transformación de Java heredada (
JAVA_LEGACY_TO_MODERN): Se usa con aplicaciones que ejecutan la versión de Java Java 8 o similar. La evaluación se enfocará en encontrar dependencias de actualización y áreas en el código afectadas por el cambio a Java 21 (la LTS actual). - Transformación de WILDFLY de Java heredado (
WILDFLY_LEGACY_TO_MODERN): Se usa con bases de código de Java EE/Jakarta EE que se ejecutan en versiones del servidor de aplicaciones de WildFly anteriores a la más reciente. La evaluación se enfocará en identificar las dependencias de actualización y las áreas del código afectadas por la actualización de la versión del servidor de aplicaciones de WildFly, incluidos los cambios necesarios para las diferencias y la compatibilidad de las APIs. - Migración de aplicaciones de C/C++ a la arquitectura de Arm (
ARM_MIGRATION): Se usa con aplicaciones de C/C++ para evaluar su preparación y el esfuerzo necesario para migrar de arquitecturas basadas en x86 a arquitecturas basadas en Arm, como las VMs de Axion C4A de Google Cloud . La evaluación se enfoca en identificar posibles problemas de portabilidad del código, dependencias específicas de la arquitectura, modificaciones del sistema de compilación y consideraciones de pruebas necesarias para una transición exitosa a Arm desde Google Cloud o cualquier otro CSP, como las instancias de Graviton de AWS.
Para crear un informe centrado en los intents, usa la marca --intent:
codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"
Crea un informe con secciones adicionales
La herramienta admite la inclusión de secciones adicionales que no se incluyen de forma predeterminada para reducir los costos. Se admiten las siguientes secciones:
files: Es una vista jerárquica estructurada de las carpetas del proyecto y la descripción de cada contenido de carpeta para ayudarte a orientarte en los archivos del proyecto.classes: Es un catálogo de clases de código con información sobre cada clase y sus dependencias de otras clases. Los lenguajes compatibles son Java y C#.
Para crear las secciones adicionales, usa la marca --optional-sections:
codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"
Reemplaza SECTIONS por una lista de valores separada por comas.
Crea un informe personalizado
Si quieres explorar algunos temas personalizados específicos, puedes crear un informe personalizado en función del contexto que proporciones con el siguiente comando:
codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"
De forma predeterminada, se usa un LLM para expandir el contexto proporcionado y
adaptarlo para garantizar que se genere una sección coherente. Puedes inhabilitar este
comportamiento especificando --improve-context=false.
Marcas adicionales:
--from-template <path>: especifica un archivo de plantilla que define la estructura del documento en formato de archivo de texto o PDF.codmoddetecta la estructura y solicita aprobación para seguir generando el informe.--skip-template-approval: Omite la solicitud de aprobación cuando se usa la marca--from-template.
Cómo modificar un informe existente
Puedes crear una sección nueva en un informe o modificar una existente en función de una sección específica. Por ejemplo, es posible que quieras enfocarte en un aspecto particular de la arquitectura del sistema o en un tipo específico de vulnerabilidad de seguridad.
Los comandos que modifican un informe requerirán las siguientes marcas:
--contexto--context-file: Especifica la solicitud de modificación.--from-report: Especifica la ruta de acceso del archivo de informe existente.--from-section: Es el nombre de la sección que se usará como base para una sección nueva (por ejemplo, "Descripción general" o "Arquitectura").
Para mostrar todas las secciones disponibles en un informe específico, ejecuta el siguiente comando:
codmod list-sections --from-report "REPORT"
Revisa una sección del informe
Para modificar una sección existente, ejecuta el siguiente comando:
codmod revise section -c "CODEBASE" --from-report "REPORT" \
-o "REVISED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
Cómo crear una sección de informe nueva
Crea una sección nueva con el siguiente comando:
codmod create section -c "CODEBASE" --from-report "REPORT" \
-o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
- La marca
from-sectionen el comandocreate sectiones opcional. - De forma predeterminada, se usa un LLM para expandir el contexto proporcionado y
adaptarlo para garantizar que se genere una sección coherente. Para inhabilitar este
comportamiento, especifica
--improve-context=false.
Ten en cuenta lo siguiente:
create sectionyrevise sectionsolo admiten el formato de informehtml.create section,revise sectionylist-sectionsesperan que la marca--from-reportapunte a un informe en formato HTML.
Estima los costos de la evaluación
La herramienta de codmod te ayuda a comprender el costo de usar la herramienta, ya que te permite
calcular el costo aproximado de crear un informe. Para ver la estimación de costos, ejecuta el siguiente comando:
codmod create --estimate-cost -c "CODEBASE"
No se admiten las estimaciones de costos para los comandos create section ycreate custom.
Establece el nivel de verbosidad
La verbosidad de codmod se configura con la
marca --verbosity LEVEL.
El nivel de verbosidad de los registros es uno de los siguientes: debug, info,
warn, error o none. El valor predeterminado es warn.
Verifica y actualiza la versión de la CLI de codmod
La CLI de codmod puede verificar automáticamente si hay una versión más reciente disponible.
Verificaciones automáticas
Cada 24 horas, la CLI sondea un bucket de Cloud Storage para ver si se lanzó
una versión más reciente de codmod. Si se encuentra una versión más reciente,
verás un mensaje de notificación en la terminal.
El mensaje incluye el número de la versión nueva y un vínculo para descargar la actualización.
Este proceso ayuda a garantizar que puedas mantenerte al tanto de las funciones,
mejoras y correcciones de errores más recientes.
Inhabilitar las verificaciones de versiones
Si prefieres inhabilitar la verificación automática de versiones, puedes usar el comando config
set:
codmod config set disable_version_check true
Para volver a habilitar la verificación de la versión, vuelve a establecer el valor en false:
codmod config set disable_version_check false
Para ver el estado actual de este parámetro y de otros parámetros de configuración, ejecuta lo siguiente:
codmod config list
Finalización de la línea de comandos
La herramienta de la CLI de codmod admite la finalización de la línea de comandos de shell para Bash, Zsh,
Fish y PowerShell. Esta función te ayuda a escribir comandos, marcas y
argumentos con rapidez presionando la tecla Tab para ver y seleccionar las opciones disponibles.
La función de autocompletar ofrece los siguientes beneficios:
- Comandos y marcas de autocompletado: Comienza a escribir un comando o una marca de
codmody presionaTabpara ver las posibles opciones de autocompletado. - Descubre opciones: Consulta los valores válidos para ciertas marcas. Por ejemplo:
codmod create --modelset [TAB]sugiere conjuntos de modelos disponibles (por ejemplo,2.0-flash,2.5-pro).codmod create --format [TAB]sugiere formatos de salida (por ejemplo,html,json,markdown).codmod create --intent [TAB]sugiere intents predefinidos.
- Sugerencias adaptadas al contexto: La finalización se adapta al comando.
Por ejemplo:
codmod config set [TAB]sugiere las claves de configuración disponibles que puedes establecer.codmod config get [TAB]sugiere las claves de configuración disponibles que puedes obtener.- La finalización de la ruta de acceso de archivos solo se ofrece para las marcas o los argumentos que
esperan una ruta de acceso de archivo o directorio (por ejemplo,
--codebase,--output-path). Otras marcas, como--project, ya no sugieren nombres de archivo.
Habilita la finalización de shell
Antes de habilitar la finalización de shell, asegúrate de que el comando codmod funcione
agregando el ejecutable a la ruta de acceso o creando un alias.
Para cargar las finalizaciones de tu shell, ejecuta el comando adecuado. Las
instrucciones varían según la shell. Usa el comando help para obtener
instrucciones 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 ejemplo, para cargar la finalización de Bash en Linux, puedes agregar lo siguiente a
tu ~/.bashrc:
source <(codmod completion bash)
Asegúrate de reiniciar la shell o de obtener tu perfil (por ejemplo, source
~/.bashrc) para que se apliquen los cambios.
Soluciona problemas
- Permiso denegado: Si encuentras un error de "permiso denegado",
asegúrate de haber otorgado el permiso de ejecución al objeto binario
codmodejecutando el comandochmod +x codmod. - La CLI parece detenerse: El análisis puede tardar mucho tiempo, pero, por lo general,
puedes ver el progreso en la barra de progreso de la CLI. Si la barra de progreso
permanece en el 0% después de 15 minutos, verifica que tengas suficiente
cuota para el modelo correspondiente. De forma predeterminada,
codmodusa el modelogemini-3.8-flash. Sin embargo, esto está sujeto a cambios, ya que diferentes conjuntos de modelos usan diferentes modelos para distintos propósitos. Informa errores: En caso de que se produzca un error que requiera investigación, recopila la información de depuración para ayudar a nuestro equipo de desarrollo. Los registros proporcionan detalles cruciales para solucionar problemas. Ejecuta el siguiente comando para recopilar los registros, luego, comprime y comparte el archivo resultante con el equipo en codmod-feedback-external@google.com.
codmod collect-logs -o "codmod_logs.zip"
Licencias de código abierto
Puedes descargar los avisos de código abierto para las dependencias de la versión más reciente
de codmod ejecutando lo siguiente:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"
Obtén asistencia y envía comentarios
Para mejorar la calidad de este producto, recopilamos datos de uso seudonimizados. Estos datos se manejan de conformidad con nuestro Aviso de Privacidad deGoogle Cloud . Puedes cambiar tu preferencia en cualquier momento ejecutando el siguiente comando:
codmod config set disable_usage_reporting true
Puedes obtener asistencia y enviar comentarios de las siguientes maneras:
- Para obtener asistencia para
codmod, haz clic en el botón Asistencia en el informe HTML generado o envía un correo electrónico a codmod-feedback-external@google.com. - Para compartir comentarios sobre
codmod, haz clic en el botón Comentarios del informe HTML generado.