Crea una evaluación de modernización de la app

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

La herramienta codmod tiene como objetivo 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 a Google Cloud. codmod es una herramienta de 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
James Project 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 una eficiencia de 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

Autenticación en Google Cloud

Para usar la herramienta codmod, necesitas un proyecto de Google Cloud .

  1. 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>
    
  2. Asegúrate de tener el rol roles/aiplatform.user o uno similar en el proyecto.

  3. 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 Google Cloud ID del proyecto.

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.

Cómo obtener 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 es 2.5-pro. Adaptive proporciona una reducción de costos significativa con una posible compensación en la calidad del informe en comparación con 2.5-pro.
  • --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.
  • --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, codmod pedirá 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 ejecutando codmod config set allow_large_codebase true.
  • --improve-fidelity: Cuando se configura, codmod genera 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, codmod analiza las extensiones de archivo 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_images para admitir PDFs e imágenes en codmod.

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.
  • Cloud to Cloud Workload Transformation (CLOUD_TO_CLOUD): Se usa con aplicaciones que se ejecutan en otra infraestructura de hiperescala. 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 .
  • Legacy Java Transformation (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.

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 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 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. codmod detecta 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 sección 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 --context y --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 (p.ej., Descripción general, 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-section en el comando create section es 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 section y revise section solo admiten el formato de informe html.
  • create section, revise section y list-sections esperan que la marca --from-report apunte 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.

Soluciona problemas

  • Permiso denegado: Si encuentras un error de "permiso denegado", asegúrate de haber otorgado permiso de ejecución al archivo binario codmod ejecutando el comando chmod +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 pertinente. De forma predeterminada, codmod usa el modelo gemini-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.