La Migration Center App Modernization Assessment (codmod) es una herramienta potenciada por IA que automatiza el proceso de evaluación de la modernización de tu aplicación. En esta página, se describen los pasos para instalar, usar y solucionar problemas de la herramienta codmod.
Acerca de la evaluación de modernización de aplicaciones
El proceso típico de evaluación de la modernización lleva algunas semanas y requiere mucha experiencia. Al automatizar este proceso, la herramienta codmod reduce significativamente este tiempo a unas pocas horas.
El objetivo de esta herramienta es proporcionar información basada en evidencia sobre la arquitectura, la funcionalidad y los posibles bloqueadores actuales de la aplicación 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 la aplicación, 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 herramienta codmod es una CLI portátil que usa Gemini para analizar el código fuente y proporcionar recomendaciones basadas en las Google Cloud prácticas recomendadas.
Antes de comenzar
La herramienta codmod requiere los siguientes requisitos previos:
- Una estación de trabajo Linux o Windows (10 o posterior)
- Acceso a un Google Cloud proyecto 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 gcloud.
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 | |||
|---|---|---|---|---|---|
| adaptive | 2.0-flash | 2.5-pro (predeterminado) | 2.5-flash | ||
| Spring Petclinic | Aproximadamente 6,500 | $20 | $2 | $30 | $4 |
| Proyecto James | Aproximadamente 1,000,000 | $60 | $30 | $500 | $40 |
| Elasticsearch | Aproximadamente 5,000,000 | $200 | $200 | USD 3,000 | $200 |
Estos valores pueden ser una sobreestimación, ya que no tienen en cuenta los posibles ahorros debido a lo siguiente:
- Precios reducidos para búsquedas 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, especialmente para las bases de código más grandes. Para obtener más información, consulta los 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 óptimo y eficiencia en los costos, 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 administrables para el análisis. Analizar secciones más pequeñas también puede ayudar a realizar evaluaciones más enfocadas y, potencialmente, reducir el tiempo total de procesamiento.
Configurar codmod
En esta sección, se proporcionan instrucciones de instalación y autenticación para usar la herramienta 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.
Autenticación en Google Cloud
Para usar la herramienta codmod, necesitas un proyecto 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
Cómo establecer un valor predeterminado para una marca
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 el siguiente comando:
codmod config set region "REGION"
Reemplaza REGION por la región 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
Cómo anular un valor predeterminado
Para quitar un valor predeterminado configurado y volver al parámetro de configuración predeterminado 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 para 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.0-flash|2.5-flash|2.5-pro|adaptive]: Especifica qué modelos de Gemini se usarán. El valor predeterminado es2.5-pro. Adaptive proporciona una reducción de costos significativa con una posible compensación en la calidad del informe 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,codmodpedirá 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 elevados. 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 configura,codmodgenera secciones de forma serial en lugar de hacerlo en paralelo. Esto mejora la coherencia entre las diferentes secciones del informe final, pero requiere un tiempo de ejecución más prolongado.--force-include <strings>,--force-exclude <strings>: De forma predeterminada,codmodanaliza extensiones de archivos populares, como Java, .NET y Python. Usa estas marcas para incluir o excluir extensiones de archivos. El argumento debe ser una expresión regular con la sintaxis de RE2.--experiments: Especifica--experiments=enable_pdf,enable_imagespara admitir archivos PDF e imágenes encodmod.--context <string>: Es cualquier contexto adicional que desees proporcionar sobre el proyecto. La herramienta tiene en cuenta este contexto cuando genera el informe.--context-file <path>: Es igual que--context, en la que el contexto se proporciona en el archivo determinado.--supporting-documents <path>: Especifica un directorio de documentación complementaria 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 compatibles incluyen texto, PDF e imágenes (PNG, JPG y JPEG).
Cómo 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 mayor atención a la capa de datos, se puede crear un informe que se centre en esta área:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
Crea un informe para una intención de transformación específica
Si deseas enfocar el informe en una intención de modernización en particular, puedes usar una de las siguientes intenciones admitidas:
- 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 centrará 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 hiperescalador. La evaluación se centrará en los cambios recomendados para transformar la aplicación, como la asignación de otros servicios de proveedores de la nube a los servicios deGoogle Cloud . - Transformación de Java heredado (
JAVA_LEGACY_TO_MODERN): Úsala con aplicaciones que ejecuten la versión de Java Java 8 o similar. La evaluación se enfocará en encontrar dependencias de actualización y áreas del código afectadas por el cambio a Java 21 (la versión LTS actual). - Legacy Java WILDFLY transformation (
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 centrará 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 WildFly, incluidos los cambios necesarios para las diferencias y la compatibilidad de la API. - Migración de aplicaciones en C/C++ a la arquitectura Arm (
ARM_MIGRATION): Se usa con aplicaciones en 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 Google Cloud Axion C4A. La evaluación se centra en identificar posibles problemas de portabilidad del código, dependencias específicas de la arquitectura, modificaciones del sistema de compilación y consideraciones de prueba necesarias para una transición exitosa a Arm desdeGoogle Cloud o cualquier otro CSP, como las instancias Graviton de AWS.
Para crear un informe centrado en la intención, 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: Una vista jerárquica estructurada de las carpetas del proyecto y una descripción del contenido de cada carpeta para ayudarte a orientarte en los archivos del proyectoclasses: 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 separados por comas.
Crea un informe personalizado
Si deseas explorar algunos temas personalizados específicos, puedes crear un informe personalizado basado en el contexto que proporciones con el siguiente comando:
codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"
De forma predeterminada, se usa un LLM para ampliar el contexto proporcionado y adaptarlo para garantizar que se genere una sección coherente. Puedes inhabilitar este comportamiento si especificas --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 desees 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:
- Uno de
--contexty--context-file: Especifica la solicitud de modificación. --from-report: Especifica la ruta de acceso al archivo de informe existente.--from-section: Es el nombre de la sección que se usará como base para una nueva sección (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 nueva sección del informe
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 ampliar el contexto proporcionado y adaptarlo para garantizar que se genere una sección coherente. Puedes inhabilitar este comportamiento si especificas
--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 codmod te ayuda a comprender el costo de usarla, 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 y create custom.
Cómo establecer el nivel de verbosidad
El nivel de detalle 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.
Cómo verificar y actualizar 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 nueva versión y un vínculo para descargar la actualización.
Este proceso te ayuda a garantizar que puedas mantenerte al día con las funciones, las mejoras y las correcciones de errores más recientes.
Inhabilita las verificaciones de versión
Si prefieres inhabilitar la verificación automática de la versión, puedes usar el comando config
set:
codmod config set disable_version_check true
Para volver a habilitar la verificación de la versión, restablece el valor en false:
codmod config set disable_version_check false
Para ver el estado actual de este parámetro de configuración y otros, ejecuta el siguiente comando:
codmod config list
Completado de la línea de comandos
La herramienta de CLI de codmod admite la finalización de la línea de comandos del shell para Bash, Zsh, Fish y PowerShell. Esta función te ayuda a escribir rápidamente comandos, marcas y argumentos 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 contextuales: 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.- El completado de rutas de acceso a archivos solo se ofrece para marcas o argumentos que esperan una ruta de acceso a un archivo o directorio (por ejemplo,
--codebase,--output-path). Otras marcas, como--project, ya no sugieren nombres de archivos.
Habilita la finalización de Shell
Antes de habilitar la finalización de shell, asegúrate de que el comando codmod funcione. Para ello, agrega el ejecutable a la ruta de acceso o crea 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 el código fuente de tu perfil (por ejemplo, source
~/.bashrc) para que los cambios se apliquen.
Soluciona problemas
- Permiso denegado: Si encuentras un error de "permiso denegado", asegúrate de haber otorgado permiso de ejecución al archivo binario
codmodejecutando el comandochmod +x codmod. - La CLI parece bloquearse: 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 pertinente. De forma predeterminada,
codmodusa el modelogemini-2.5-pro. Sin embargo, esto está sujeto a cambios, ya que los diferentes conjuntos de modelos usan modelos distintos para diferentes propósitos. Informar 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
Para descargar los avisos de código abierto de las dependencias de la versión más reciente de codmod, ejecuta el siguiente comando:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"
Cómo obtener asistencia y enviar comentarios
Para mejorar la calidad de este producto, recopilamos datos de uso seudoanonimizados. Estos datos se manejan de conformidad con nuestra política de privacidad Google Cloud Aviso de Privacidad. Puedes cambiar tu preferencia en cualquier momento ejecutando el siguiente comando:
codmod config set disable_usage_reporting true
Puedes obtener asistencia y brindar comentarios de las siguientes maneras:
- Para obtener asistencia sobre
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 en el informe HTML generado.