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.
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>
Asegúrate de que tienes el rol
roles/aiplatform.user
o uno similar en el proyecto.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 es2.5-pro
. Adaptive ofrece una reducción de costes significativa, pero puede que la calidad de los informes no sea tan buena como con2.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 ejecutandocodmod 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 encodmod
.
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 comandocreate 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
yrevise section
solo admiten el formato de informehtml
.create section
,revise section
ylist-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 modelogemini-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.