Evalúa las aplicaciones de .NET para su modernización

En esta página, se describe cómo usar Google Cloud Modernization Hub para evaluar las aplicaciones de ASP.NET y .NET Framework para la contenedorización de Linux y la modernización a una versión de .NET multiplataforma.

Muchas aplicaciones empresariales de .NET dependen de APIs específicas de Windows, configuraciones del servidor IIS o bibliotecas heredadas de .NET Framework que impiden la implementación directa en contenedores de Linux. Una evaluación automatizada en Modernization Hub analiza tu código fuente para identificar bloqueadores, evaluar la compatibilidad de los paquetes NuGet y recomendar rutas de refactorización para Cloud Run o Google Kubernetes Engine.

Cuándo usar una evaluación de aplicaciones .NET

Ejecuta una evaluación de la aplicación .NET cuando planees realizar cualquiera de las siguientes tareas de modernización:

  • Migración a contenedores de Linux: Identifica las dependencias solo de Windows (como el acceso al Registro de Windows, System.Drawing o las integraciones de Active Directory) antes de crear contenedores para las aplicaciones de Cloud Run o GKE.
  • Actualización de versiones de .NET Framework: Evalúa el esfuerzo y las brechas de compatibilidad al migrar de .NET Framework 4.x a versiones modernas y multiplataforma de .NET (versión 10 o posterior).
  • Desacoplamiento de arquitecturas monolíticas: Descubre servicios de WCF, servicios de Windows o formularios web heredados con acoplamiento estrecho que requieren refactorización en microservicios nativos de la nube.

Antes de comenzar

Antes de iniciar un trabajo de evaluación de .NET, 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)
  • 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)

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 y una eficiencia de costos, 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 6 millones de líneas de código (LOC) por trabajo de evaluación. Si tu repositorio supera los 6 millones de LOC, divide la base de código en soluciones o módulos 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 bin/, obj/, node_modules/, .vs/ 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 .NET

Empaqueta tu base de código de .NET 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.

  1. 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*" "*/bin/*" "*/obj/*" "*/node_modules/*" "*.vs/*"
      
  2. 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.zip
    

    Reemplaza INPUT_BUCKET por el nombre de tu bucket de Cloud Storage de destino.

Ejecuta una evaluación

Para ejecutar un trabajo de evaluación, sigue estos pasos:

  1. En la consola, ve a la página Modernization Hub.

    Ir a Modernization Hub

  2. En la página de destino, busca la tarjeta Modernización de.NET y haz clic en Iniciar evaluación.

  3. En el campo Nombre del trabajo, ingresa un nombre único para tu trabajo de evaluación.

  4. 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.

  5. En el campo Ubicación del informe, selecciona un bucket de Cloud Storage para guardar los informes de evaluación generados.

  6. En la lista Receta de modernización, selecciona una receta de modernización.

  7. En la lista Ubicación, selecciona una región para tu trabajo de evaluación.

  8. 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.

  9. Haz clic en Generar informe.

    La consola inicia un contenedor de evaluación en segundo plano para analizar tu proyecto. El estado del trabajo aparece en la tabla Historial de evaluaciones.

Supervisa el estado del trabajo y consulta los informes

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 ver los resultados de tu evaluación, sigue estos pasos:

  1. En la tabla Historial de evaluaciones de la página de Modernization Hub, busca tu trabajo de evaluación.
  2. Cuando la columna Estado cambie a Completado, haz clic en Descargar informe.
  3. Selecciona el formato de salida que prefieras:
    • Informe en HTML: Es un resumen interactivo que te permite filtrar las APIs de Windows 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 clasifica el nivel de preparación para la migración de tu aplicación en las siguientes áreas:

  • Puntuación de compatibilidad general: Es el porcentaje de líneas de código fuente y dependencias que se pueden migrar a .NET multiplataforma sin modificaciones.
  • Desglose de bloqueadores: Dependencias específicas de Windows que requieren refactorización, como las siguientes:
    • Implementaciones de servidores de Windows Communication Foundation (WCF).
    • Canalizaciones heredadas de ASP.NET Web Forms o ASP.NET MVC
    • Llamadas al Registro de Windows (Microsoft.Win32)
  • Análisis de dependencias de NuGet: Un inventario detallado de los paquetes de NuGet existentes que indica si cada paquete admite la versión de .NET de destino o requiere reemplazo.
  • Acciones recomendadas: Transformaciones de código y rutas de migración sugeridas para preparar tu aplicación para la contenedorización en Google Cloud.

Refactoriza código .NET con Antigravity

Después de generar un informe de evaluación, puedes usar Antigravity con habilidades de agentes especializadas en .NET para automatizar la conversión de código de .NET Framework a .NET multiplataforma.

Antes de ejecutar flujos de trabajo de refactorización con agentes, asegúrate de cumplir con los siguientes requisitos previos:

  • Entorno de Antigravity: Instala el IDE de Antigravity o la CLI de Antigravity (agy) y configura la autenticación con tu proyecto Google Cloud .
  • Artefactos de evaluación: Descarga tu informe de evaluación de codmod y colócalo en el espacio de trabajo del repositorio local para que el agente pueda hacer referencia a los bloqueadores identificados y a las rutas de actualización de dependencias.
  • Habilidades de modernización de.NET: Carga la habilidad de modernización de codmod .NET (SKILL.md) en la configuración de tu espacio de trabajo de Antigravity. Para solicitar acceso a la versión preliminar de las habilidades para agentes de modernización de .NET más recientes, comunícate con modernization-hub-feedback-external@google.com.

¿Qué sigue?