Crear una evaluación de modernización de aplicaciones

La evaluación de modernización de aplicaciones de Migration Center (codmod) es una herramienta basada en 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 de evaluación de la modernización suele durar unas semanas y requiere mucha experiencia. Al automatizar este proceso, la herramienta codmod reduce significativamente este tiempo a unas horas.

El objetivo de esta herramienta es proporcionar información basada en pruebas sobre la arquitectura, las funciones y los posibles bloqueos de la aplicación actual que podrían ralentizar la transformación a la nube.

Esta herramienta está pensada para los siguientes roles:

  • Arquitectos de TI
  • Responsables de la toma de decisiones
  • Propietarios de aplicaciones

La herramienta codmod tiene como objetivo acelerar la transformación de las aplicaciones proporcionando una visibilidad clara de los cambios necesarios y de las ventajas 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 proporciona recomendaciones basadas en las prácticas recomendadas de Google Cloud .

.

Antes de empezar

La herramienta codmod requiere los siguientes requisitos previos:

  • Una estación de trabajo Linux o Windows (10 o versiones posteriores).
  • Acceso a un Google Cloud proyecto que tenga habilitada la API Vertex AI.
  • Una instalación de gcloud CLI en tu estación de trabajo. Para obtener más información, consulta Instalar gcloud CLI.

Precios

El coste de usar Gemini para evaluar código depende principalmente del tamaño de la base de código y se mide en tokens. En la siguiente tabla se muestran las estimaciones de costes que puedes esperar en función de tus líneas de código y del modelo que elijas:

Base de código Líneas de código (LOC) Coste estimado
adaptativo 2.0-flash 2.5-pro (predeterminado) 2.5-flash
Spring Petclinic ~6500 20 USD 2 USD 30 USD 4 $
Proyecto de James ~1.000.000 60 USD 30 USD 500 USD 40 USD
Elasticsearch ~5.000.000 200 USD 200 USD 3000 USD 200 USD

Es posible que estos valores sean una estimación demasiado alta porque no tienen en cuenta los posibles ahorros debidos a lo siguiente:

  • Precios reducidos para consultas cortas.
  • Precios reducidos para el almacenamiento en caché implícito.
  • Descuentos por compromiso de uso (CUDs).

Se espera que los costes de estos parámetros sean una parte insignificante del coste total, sobre todo en el caso de 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 funciones avanzadas de comprensión y análisis de código de la API 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 buena relación calidad-precio, codmod tiene un límite de tamaño de 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 analizarlas. Analizar secciones más pequeñas también puede ayudar a realizar evaluaciones más específicas 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 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

Autenticarse en Google Cloud

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

  1. Asegúrate de que la API Vertex AI esté habilitada en el proyecto en la consola o mediante la CLI:

    gcloud services enable aiplatform.googleapis.com --project <project-id>
    
  2. Asegúrate de que tienes el rol roles/aiplatform.user o uno similar en el proyecto.

  3. Para autenticarte, ejecuta el siguiente comando:

    gcloud auth application-default login
    

También puedes usar una cuenta de servicio y definir la variable de entorno GOOGLE_APPLICATION_CREDENTIALS. Para obtener más información, consulta Cómo funcionan las credenciales predeterminadas de la aplicación.

Gestionar la configuración de codmod

En las siguientes secciones se explica cómo configurar codmod con el comando codmod config.

Mostrar todos los ajustes

Para ver todas las propiedades de configuración actuales y sus valores, ejecuta el siguiente comando:

codmod config list

Definir un valor predeterminado para una marca

Para definir un valor predeterminado para una propiedad, use el comando set. Por ejemplo, para definir el ID de proyecto predeterminado, ejecuta el siguiente comando:

codmod config set project "PROJECT_ID"

Sustituye PROJECT_ID por el Google Cloud ID del proyecto.

Para definir la región predeterminada, ejecuta el siguiente comando:

codmod config set region "REGION"

Sustituye REGION por la Google Cloud región. Consulta la lista de regiones disponibles. Si no sabes qué región usar, utiliza us-central1.

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

Quitar un valor predeterminado

Para quitar un valor predeterminado configurado y volver al valor predeterminado original de la herramienta, usa el comando unset. Por ejemplo, para quitar el ID de proyecto predeterminado, ejecuta el siguiente comando:

codmod config unset project

Crear un codmod informe de evaluación

En las siguientes secciones se describe cómo crear la evaluación predeterminada y cómo personalizarla según tus necesidades.

Crear el informe predeterminado

Para crear un informe de evaluación, ejecuta la herramienta codmod con las siguientes marcas:

codmod create -c "CODEBASE" -o "OUTPUT"

Haz los cambios siguientes:

  • CODEBASE: especifica el directorio que contiene el código fuente que se va a analizar y se puede especificar varias veces.
  • OUTPUT: especifica la ruta 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 van a usar. El valor predeterminado es 2.5-pro. Adaptive ofrece una reducción de costes significativa, pero puede que la calidad de los informes no sea tan buena como con 2.5-pro.
  • --context <string>: cualquier contexto adicional que quieras proporcionar sobre el proyecto. La herramienta tiene en cuenta este contexto al generar el informe.
  • --context-file <path>: igual que --context, pero el contexto se proporciona en el archivo indicado.
  • --format <html|markdown|odt|json>: el formato usado 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 costes 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 define, codmod genera secciones de forma secuencial en lugar de en paralelo. De esta forma, se mejora la coherencia entre las diferentes secciones del informe final, pero se necesita más tiempo para generarlo.
  • --force-include <strings> y --force-exclude <strings>: de forma predeterminada, codmod analiza las extensiones de archivo más habituales, 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_images para admitir PDFs e imágenes en codmod.

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"

Crear 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 centrado en esta área:

codmod create data-layer -c "CODEBASE" -o "OUTPUT"

Crear un informe para una intención de transformación específica

Si quieres centrar el informe en una intención de modernización concreta, puedes usar una de las siguientes intenciones admitidas:

  • Transformación de cargas de trabajo de Microsoft (MICROSOFT_MODERNIZATION): úsala con aplicaciones que se ejecuten en SO de Microsoft. La evaluación se centrará en los procesos 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): úsalo con aplicaciones que se ejecuten en otra infraestructura de hiperescalador. La evaluación se centrará en los cambios recomendados para transformar la aplicación, como la asignación de servicios de otros proveedores de la nube a servicios deGoogle Cloud .
  • Transformación de Java antiguo (JAVA_LEGACY_TO_MODERN): úsala con aplicaciones que ejecuten la versión Java 8 o similar. La evaluación se centrará en encontrar dependencias de actualización y áreas del código afectadas por el cambio a Java 21 (la versión LTS actual).
  • Transformación de Java WILDFLY antiguo (WILDFLY_LEGACY_TO_MODERN): úsalo con bases de código de Java EE o Jakarta EE que se ejecuten en versiones del servidor de aplicaciones 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 las APIs.

Para crear un informe centrado en la intención, usa la marca --intent:

codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"

Crear un informe con secciones adicionales

La herramienta permite incluir secciones adicionales que no se incluyen de forma predeterminada para reducir los costes. 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: catálogo de clases de código con información sobre cada clase y sus dependencias de otras clases. Los idiomas admitidos son Java y C#.

Para crear las secciones adicionales, usa la marca --optional-sections:

codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"

Sustituye SECTIONS por una lista de valores separados por comas.

Crear un informe personalizado

Si quieres consultar 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 de forma 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 texto o PDF. codmod detecta la estructura y pide aprobación para seguir generando el informe.
  • --skip-template-approval: omite la solicitud de aprobación cuando se usa la marca --from-template.

Modificar un informe

Puede crear una sección en un informe o modificar una sección que ya tenga en función de una sección específica. Por ejemplo, puede que quieras centrarte en un aspecto concreto de la arquitectura del sistema o en un tipo concreto de vulnerabilidad de seguridad.

Los comandos que modifiquen un informe requerirán las siguientes marcas:

  • Uno de los siguientes valores: --context y --context-file. Especifica la solicitud de modificación.
  • --from-report: especifica la ruta del archivo de informe.
  • --from-section: nombre de la sección que se va a usar como base para una nueva sección (por ejemplo, "Resumen" o "Arquitectura").

Para mostrar todas las secciones disponibles de un informe específico, ejecuta el siguiente comando:

codmod list-sections --from-report "REPORT"

Revisar una sección de un informe

Para modificar una sección, ejecuta el siguiente comando:

codmod revise section -c "CODEBASE" --from-report "REPORT" \
  -o "REVISED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"

Crear una sección de informe

Crea una sección 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 del comando create section es opcional.
  • De forma predeterminada, se usa un LLM para ampliar el contexto proporcionado y adaptarlo para asegurarse de que se genera una sección coherente. Puedes inhabilitar este comportamiento especificando --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.

Estimar los costes de la evaluación

La herramienta codmod te ayuda a conocer el coste de usarla, ya que te permite calcular el coste aproximado de crear un informe. Para ver la estimación de costes, ejecuta el siguiente comando:

codmod create --estimate-cost -c "CODEBASE"

Las estimaciones de costes no se admiten en los comandos create section y create custom.

Definir el nivel de verbosidad

La verbosidad de codmod se configura con la marca --verbosity LEVEL. El nivel de detalle de los registros es uno de los siguientes: debug, info, warn, error o none. El valor predeterminado es warn.

Solución de problemas

  • Permiso denegado: si aparece un error de permiso denegado, asegúrate de haber concedido permiso de ejecución al archivo binario codmod ejecutando el comandochmod +x codmod.
  • La CLI parece que se bloquea: el análisis puede tardar mucho tiempo, pero normalmente puedes ver el progreso en la barra de progreso de la CLI. Si la barra de progreso sigue al 0% después de 15 minutos, comprueba que tienes suficiente cuota para el modelo correspondiente. De forma predeterminada, codmod usa el modelo gemini-2.5-pro. Sin embargo, esto puede cambiar, ya que los distintos conjuntos de modelos usan modelos diferentes para fines distintos.
  • Informar de errores: si se produce un error que requiere una investigación, recoge 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 recoger los registros, comprímelos y comparte el archivo resultante con el equipo en codmod-feedback-external@google.com.

    codmod collect-logs -o "codmod_logs.zip"
    

Licencias de software libre

Puedes descargar las notificaciones de código abierto de las dependencias de la versión más reciente de codmod ejecutando 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"

Obtener asistencia y enviar comentarios

Para mejorar la calidad de este producto, recogemos datos de uso seudonimizados. Estos datos se tratan de acuerdo 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 enviar comentarios de las siguientes formas:

  • Para obtener asistencia sobre codmod, haz clic en el botón Asistencia del informe HTML generado o envía un correo a codmod-feedback-external@google.com.
  • Para enviar comentarios sobre codmod, haz clic en el botón Comentarios del informe HTML generado.