En esta página, se muestra cómo usar Google Cloud Modernization Hub en la consola deGoogle Cloud para evaluar aplicaciones empresariales de Java para la modernización y la contenedorización de Linux en versiones de asistencia a largo plazo (LTS) de Java multiplataforma (como Java 17 o Java 21) en Google Cloud.
Muchas aplicaciones empresariales de Java dependen de APIs heredadas de Java EE, configuraciones de servidores de aplicaciones propietarios (como WebLogic, WebSphere o JBoss) o bibliotecas de terceros desactualizadas que impiden la implementación directa en contenedores de Linux. Una evaluación automatizada en Modernization Hub analiza tu código fuente, identifica los obstáculos para la migración, evalúa la compatibilidad de las dependencias de Maven o Gradle y recomienda rutas de refactorización para Cloud Run o Google Kubernetes Engine.
Cuándo usar una evaluación de la aplicación Java
Ejecuta una evaluación de la aplicación de Java cuando planees realizar alguna de las siguientes acciones:
- Migra a contenedores de Linux: Identifica las dependencias específicas del entorno (como el acceso al sistema de archivos local, las bibliotecas de JNI o las APIs del servidor de aplicaciones propietario) antes de contenerizar las aplicaciones para Cloud Run o GKE.
- Actualiza las versiones del entorno de ejecución de Java: Evalúa el esfuerzo y las brechas de compatibilidad cuando migres de Java 8 o Java 11 a las versiones LTS modernas de Java (Java 17 o Java 21), o cuando realices la transición de Java EE (
javax.*) a Jakarta EE (jakarta.*). - Desacoplamiento de arquitecturas monolíticas: Descubre componentes EJB con acoplamiento estrecho, intermediarios de mensajes JMS o implementaciones monolíticas de WAR y EAR que requieren refactorización en microservicios nativos de la nube o aplicaciones de Spring Boot.
Antes de comenzar
Antes de iniciar un trabajo de evaluación de Java en la consola, habilita las APIs requeridas, verifica los permisos de Identity and Access Management (IAM) de tu proyecto, registra un bucket de configuración del espacio de trabajo y sube tu archivo de código fuente a Cloud Storage.
Habilita las APIs obligatorias
Para usar Modernization Hub, habilita las APIs de servicio Google Cloudnecesarias en tu proyecto:
gcloud services enable \
aiplatform.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
cloudresourcemanager.googleapis.com \
compute.googleapis.com \
logging.googleapis.com \
storage.googleapis.com \
--project=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud .
Roles obligatorios
Para ejecutar una evaluación, se requieren permisos de IAM distintos para dos identidades que usan Cloud Build y Gemini Enterprise Agent Platform:
- Usuario de la consola autenticado (inicia el trabajo y accede a los buckets):
- Administrador de almacenamiento (
roles/storage.admin) - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) - Editor de Cloud Build (
roles/cloudbuild.builds.editor)
- Administrador de almacenamiento (
- Cuenta de servicio dedicada (ejecuta el contenedor de evaluación):
- Usuario de Agent Platform (
roles/aiplatform.user) - Usuario de objetos de almacenamiento (
roles/storage.objectUser) o administrador de almacenamiento (roles/storage.admin)
- Usuario de Agent Platform (
Para obtener los permisos que necesitas para iniciar una evaluación y ejecutar el contenedor de análisis, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Usuario: Administra archivos fuente y configuraciones de bucket.
Administrador de Storage (
roles/storage.admin) -
Usuario: Adjunta la cuenta de servicio dedicada al trabajo:
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) -
Usuario: Envía trabajos de evaluación (
cloudbuild.builds.create) y visualiza registros: Editor de Cloud Build (roles/cloudbuild.builds.editor) -
Cuenta de servicio: Ejecuta el contenedor
codmod: Usuario de Agent Platform (roles/aiplatform.user) -
Cuenta de servicio: Lee archivos fuente y escribe informes de evaluación:
Usuario de objetos de almacenamiento (
roles/storage.objectUser) o Administrador de Storage (roles/storage.admin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para iniciar una evaluación y ejecutar el contenedor de análisis. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para iniciar una evaluación y ejecutar el contenedor de análisis:
-
Usuario (Cloud Storage, Cloud Build y IAM):
-
storage.objects.get(para descargar o leer archivos) -
storage.objects.list(para enumerar los archivos dentro del bucket) -
storage.objects.create(para subir o crear archivos nuevos) -
storage.objects.update(para modificar los metadatos de los archivos existentes) -
storage.objects.delete(para borrar o reemplazar archivos) -
storage.buckets.get(Ver la configuración a nivel del bucket) -
cloudbuild.builds.create(para enviar trabajos de evaluación) -
iam.serviceAccounts.actAs(para adjuntar la cuenta de servicio al trabajo)
-
-
Cuenta de servicio (Agent Platform y Cloud Storage):
-
aiplatform.endpoints.predict(para ejecutar el análisis de código asistido por IA) -
storage.objects.get(para leer o descargar archivos fuente) -
storage.objects.list(para enumerar los archivos de la carpeta de entrada) -
storage.objects.create(para escribir informes de evaluación) -
storage.objects.delete(para borrar archivos temporales)
-
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Configura un bucket de configuración del espacio de trabajo
Registra un bucket de Cloud Storage designado en la página Modernization Hub > Configuración (por ejemplo, gs://PROJECT_ID-modernization-hub) para almacenar los archivos binarios de estado del espacio de trabajo (dotnet_jobs.pb, java_jobs.pb y mainframe_jobs.pb).
Revisa los límites de tamaño de la base de código
Para mantener un rendimiento óptimo, el motor de evaluación de codmod aplica los siguientes lineamientos de escala y archivo:
- Tamaño máximo de la base de código: Aproximadamente seis millones de líneas de código (LOC) por trabajo de evaluación. Si tu repositorio supera los seis millones de LOC, divide la base de código en módulos o servicios más pequeños e independientes antes de subirla.
- Estructura de archivo limpia: Excluye los archivos binarios compilados, las memorias caché de paquetes y los metadatos de control de versión (como
target/,build/,bin/,node_modules/y.git/) de tu archivo ZIP para que solo se analicen los archivos fuente y las configuraciones de compilación.
Prepara y sube tu archivo fuente de Java
Empaqueta tu base de código de Java como un archivo ZIP que excluya los resultados de la compilación y sube el archivo a un bucket de Cloud Storage en tu proyecto.
En tu máquina local, crea un archivo ZIP de tu repositorio con uno de los siguientes métodos:
Usa Git (recomendado):
git archive --format=zip -o repository.zip HEAD
Usa la CLI de
zip:zip -r repository.zip . \ -x "*.git*" "*/target/*" "*/build/*" "*/bin/*" "*/node_modules/*"
Sube el archivo ZIP a tu bucket de Cloud Storage de destino con Google Cloud CLI:
gcloud storage cp repository.zip \ gs://INPUT_BUCKET/codebase/repository.zipReemplaza INPUT_BUCKET por el nombre de tu bucket de Cloud Storage de destino.
Ejecuta una evaluación
Para iniciar un trabajo de evaluación en Modernization Hub, sigue estos pasos:
En la consola, ve a la página Modernization Hub.
En la página de destino, busca la tarjeta Cargas de trabajo de Java y haz clic en Iniciar evaluación.
En el campo Nombre del trabajo, ingresa un nombre único para tu trabajo de evaluación.
En el campo Ubicación del código fuente, selecciona un bucket de Cloud Storage que contenga tu código fuente como un archivo ZIP.
En el campo Ubicación del informe, selecciona un bucket de Cloud Storage para guardar los informes de evaluación generados.
En la lista Receta de modernización, selecciona una receta de modernización.
En la lista Ubicación, selecciona una región para tu trabajo de evaluación.
En el campo Cuenta de servicio, selecciona una cuenta de servicio dedicada con los roles de IAM necesarios que se indican en la sección Roles requeridos. Cloud Build ejecuta el trabajo de evaluación con esta cuenta de servicio, que requiere permisos de Usuario de Agent Platform y de Cloud Storage.
Haz clic en Generar informe.
La consola inicia un contenedor de evaluación en segundo plano que ejecuta el motor de
codmodpara analizar tu proyecto. El estado del trabajo aparece en la tabla Historial de evaluaciones.
Revisa el informe de evaluación
Según el tamaño de tu base de código, los trabajos de evaluación suelen completarse en unos minutos. El contenedor en segundo plano finaliza automáticamente después de que termina el procesamiento.
Para acceder a los resultados de la evaluación, sigue estos pasos:
- En la tabla Historial de evaluaciones de la página de Modernization Hub, busca tu trabajo de evaluación.
- Cuando la columna Estado cambie a Completado, haz clic en Descargar informe.
- Selecciona el formato de salida que prefieras:
- Informe en HTML: Es un resumen interactivo que te permite filtrar las APIs incompatibles, inspeccionar las listas de bloqueadores archivo por archivo y ver sugerencias de corrección.
- Informe en Markdown: Un resumen ejecutivo con formato adecuado para compartir con las partes interesadas y los comités de revisión de arquitectura.
Revisa el informe de evaluación
El informe de evaluación generado clasifica la preparación para la migración de tu aplicación en varias áreas clave:
- Puntuación de compatibilidad general: Es el porcentaje de líneas de código fuente y dependencias que se pueden migrar al entorno de ejecución de Java de destino sin modificaciones.
- Desglose de bloqueadores: Dependencias específicas de Java heredado o restricciones del entorno que requieren refactorización, como las siguientes:
- Cambios en el espacio de nombres de Java EE (
javax.*) a Jakarta EE (jakarta.*). - Se quitaron o marcaron como obsoletas las APIs internas del JDK (como los paquetes
sun.misc.*o los módulos CORBA). - Configuraciones o APIs de servidores de aplicaciones propietarios (como los descriptores de implementación de WebLogic, WebSphere o JBoss)
- Cambios en el espacio de nombres de Java EE (
- Análisis de dependencias: Un inventario detallado de las dependencias existentes de Maven o Gradle que indica si cada biblioteca admite la versión de tiempo de ejecución de Java de destino o requiere una actualización.
- Acciones recomendadas: Transformaciones de código sugeridas, recetas de refactorización asistidas por IA y rutas de migración generadas por
codmodpara preparar tu aplicación para la contenerización en Google Cloud.
¿Qué sigue?
- Obtén más información para evaluar aplicaciones de .NET.
- Obtén más información para configurar Mainframe Assessment Tool (MAT).
- Explorar la transformación de código asistida por IA con Gemini Cloud Assist