La Evaluación de Modernización: El Corazón de la Migración a la Nube con GitHub Copilot

Introducción al Flujo de Modernización con GitHub Copilot

GitHub Copilot ofrece una solución integral para la modernización de aplicaciones .NET y Java, cuyo elemento central es el documento de evaluación. Más allá de ser una herramienta de sugerencia de código, Copilot actúa como un agente inteligente que analiza la base de código, genera un informe de evaluación, elabora un plan de migración y puede incluso aprovisionar la infraestructura necesaria en Azure. Este proceso sigue un modelo estructurado: Evaluar → Planificar → Ejecutar. La fase de evaluación es la piedra angular, ya que informa y dirige todas las etapas subsiguientes.

En cada paso del proceso, Copilot produce un documento con sus hallazgos y recomendaciones. Esto no es un proceso automático sin intervención humana; al contrario, permite a los desarrolladores ofrecer feedback, realizar mejoras y corregir detalles, asegurando que la migración se alinee con los objetivos específicos del proyecto.

La funcionalidad de modernización está disponible a través de una extensión de VS Code, compatible con .NET y Java, que integra el flujo de trabajo completo: evaluaciones, migración de dependencias, containerización y despliegue en Azure. Para escenarios de múltiples repositorios o trabajo por lotes, también existe una CLI de Modernización en vista previa pública. Sin embargo, para proyectos individuales, la extensión de VS Code es la vía principal. El documento de evaluación es el artefacto más crítico que genera esta suite de herramientas. Su valor radica en la profunda visión que ofrece sobre los componentes que se actualizarán, los recursos de Azure que se provisionarán y el método de despliegue de la aplicación. Dominar la configuración, lectura e interpretación de este documento es, sin duda, la habilidad más importante en el flujo de trabajo de modernización.


Accediendo a la Evaluación: Dos Enfoques

La extensión de VS Code proporciona dos maneras de iniciar una evaluación, ambas conduciendo a un panel interactivo con los resultados. La diferencia principal reside en el nivel de configuración inicial.

1. Evaluación Recomendada (Inicio Rápido)

Esta opción es ideal para una primera aproximación, sin necesidad de configuración manual. Simplemente se abre el panel de GitHub Copilot modernization en VS Code, se selecciona «Start Assessment» y luego «Recommended Assessment». A continuación, se eligen uno o varios dominios de análisis preconfigurados como Actualización de Java/.NET, Preparación para la Nube o Seguridad. La herramienta ejecuta la evaluación y presenta los resultados de manera concisa. Es un punto de partida excelente para obtener una visión general rápida antes de definir una estrategia de migración detallada.

2. Evaluación Personalizada (Dirigida)

Cuando ya se tiene un objetivo claro, como desplegar en Azure Kubernetes Service (AKS) en Linux, la evaluación personalizada permite una configuración precisa del análisis. Al seleccionar «Custom Assessment», se pueden especificar:

  • Dominios de Evaluación: Combinar o elegir entre Actualización de Java/.NET, Preparación para la Nube y Seguridad.
  • Cobertura del Análisis: Desde identificar solo problemas (Issue only) hasta un análisis completo de problemas, tecnologías y dependencias (Issues, Technologies & Dependencies).
  • Computación Objetivo: Seleccionar uno o varios servicios de Azure como Azure App Service, Azure Kubernetes Service (AKS), o Azure Container Apps (ACA), permitiendo comparar recomendaciones específicas para cada uno.
  • SO Objetivo: Linux o Windows.
  • Containerización: Habilitar o deshabilitar el análisis de containerización.

Esta flexibilidad es valiosa para comparar distintas estrategias de hospedaje y entender los bloqueadores específicos de cada una.

Rutas de Actualización Soportadas

La evaluación de Copilot cubre diversas rutas de actualización para frameworks y tiempos de ejecución, ofreciendo detección de problemas y orientación para la remediación:

  • Java: Actualizaciones de OpenJDK (11 → 17 → 21) y Spring Boot (2.x → 3.x).
  • .NET: Migraciones de .NET Framework a .NET 10, y de ASP.NET a ASP.NET Core.

La herramienta integra reglas de detección específicas para cada ruta, identificando cambios de API o patrones obsoletos.


El Documento de Evaluación: Detalles y Colaboración

El documento de evaluación es el motor de todas las decisiones de planificación y despliegue.

Dónde Reside el Informe

Los informes se almacenan en .github/modernize/assessment/ dentro del directorio de tu proyecto. Cada ejecución genera un informe independiente, lo que permite un seguimiento histórico de la evolución de la postura de modernización.

Estructura del Informe

El informe se compone de un encabezado y varias pestañas analíticas.

Información de la Aplicación

Esta sección inicial proporciona una instantánea del estado actual de la aplicación: versión de tiempo de ejecución, frameworks, herramientas de construcción, estructura del proyecto y los servicios Azure objetivo. Es la base sobre la que se construyen las recomendaciones.

Resumen de Problemas

Un dashboard visual que ofrece una vista de pájaro de la preparación para la migración. Categoriza los problemas por dominio (por ejemplo, Cloud Readiness) y muestra porcentajes de criticidad, dando una indicación del esfuerzo de trabajo necesario. Permite comparar fácilmente la criticidad de los problemas entre diferentes servicios de Azure objetivo.

Pestaña de Problemas: El Detalle Accionable

Esta es la parte más operativa del informe, donde cada problema detectado se lista con gran detalle y se clasifica por dominio (Preparación para la Nube, Actualización de Java/.NET, Seguridad). Cada problema tiene un nivel de criticidad:

  • 🔴 Obligatorio: Bloqueadores críticos que deben solucionarse.
  • 🟡 Potencial: Problemas que podrían afectar la migración, requiriendo juicio humano.
  • 🟢 Opcional: Mejoras de bajo impacto, recomendadas pero no bloqueantes.

Al expandir un problema, se accede a información detallada: archivos y líneas de código afectadas (con enlaces directos), una descripción del problema y su relevancia para la plataforma objetivo, soluciones concretas y enlaces a documentación de soporte oficial. Esta granularidad permite a los desarrolladores abordar los problemas de manera eficiente.

Operaciones del Informe: Colaboración y Seguimiento

Los informes de evaluación están diseñados para la colaboración:

  • Exportar y Compartir: Se pueden exportar para compartir con el equipo, permitiendo que otros los importen y revisen sin necesidad de ejecutar la evaluación.
  • Importar: Permite importar reportes desde AppCAT CLI, Dr. Migrate o informes previos, facilitando la integración con otras herramientas y el trabajo en equipo.
  • Comparar Evaluaciones: Es posible ejecutar varias evaluaciones con diferentes configuraciones de destino y comparar los resultados para tomar decisiones informadas sobre la plataforma de hospedaje.
  • Historial de Progreso: Cada informe independiente crea un historial, mostrando cómo el estado de la aplicación mejora a medida que se resuelven los problemas.

La Perspectiva Clave: El documento de evaluación es fundamental porque es la fuente de entrada para todas las fases posteriores. La planificación de la infraestructura, la generación de IaC (Infrastructure as Code), las decisiones de containerización y las estrategias de despliegue se basan directamente en sus hallazgos. Una evaluación precisa asegura un camino de modernización fluido.


Del Documento de Evaluación a Azure: Despliegue Automatizado y Controlado

Una vez completada la evaluación, las fases de planificación y ejecución trasladan la aplicación a Azure, todo integrado en VS Code.

Fase 1: Preparación de la Infraestructura

Desde el panel de chat de Copilot, el agente modernize-azure-dotnet asiste en la creación del plan de infraestructura. El agente puede tomar como entrada: código fuente, informes de evaluación (el puente principal), diagramas de arquitectura y requisitos de cumplimiento o seguridad. Por ejemplo, se le puede pedir: «Crear infraestructura de Azure basada en el informe de evaluación, siguiendo nuestras políticas de cumplimiento en docs/security-requirements.md».

El agente generará dos archivos:

  • Archivo de plan: plan.md (detallando la estrategia y arquitectura de infraestructura).
  • Lista de tareas: tasks.json (con las acciones específicas a realizar).

Este plan abarca el diseño completo de una Azure Landing Zone, incluyendo redes, identidad y seguridad. La salida de IaC se produce en formato Bicep o Terraform. Es crucial que estos archivos son editables en VS Code, permitiendo la revisión y ajuste por parte del usuario antes de la ejecución.

Fase 2: Containerización y Despliegue

Esta fase se encarga de preparar la aplicación para su ejecución en la nube. Desde el panel de modernización, se crea un plan con un prompt como: «Containerizar y desplegar mi aplicación en Azure, suscripción: , grupo de recursos: «. Las tareas que cubre incluyen:

  • Generación de Dockerfile personalizado.
  • Validación de la imagen del contenedor.
  • Creación de manifiestos de despliegue para el servicio Azure objetivo (AKS, Container Apps, App Service).
  • Generación de scripts de despliegue reutilizables.

Las operaciones se pueden granularizar, por ejemplo, solicitar solo la containerización o solo el despliegue de una aplicación ya containerizada.

Principios de Diseño: Independencia y Control Humano

El flujo de trabajo se basa en dos pilares:

  • Independencia de las Fases: Cada fase (infraestructura, containerización, despliegue) puede ejecutarse de forma independiente. Esto permite flexibilidad, como preparar la infraestructura hoy y desplegar la aplicación más tarde.
  • Control Humano Continuo: Todos los planes generados son editables antes de su ejecución. Además, cada cambio es rastreado con Git, lo que permite revisar diferencias, revertir commits y auditar completamente las acciones del agente. GitHub Copilot Modernization propone, pero el desarrollador siempre tiene la última palabra.

Resumen Final y Próximos Pasos

El documento de evaluación es el eje central del proceso de modernización con GitHub Copilot. Es el motor que impulsa todas las decisiones posteriores, desde la infraestructura hasta la estrategia de despliegue. Entender su funcionamiento y cómo influye en las fases de planificación y ejecución es clave para una migración exitosa a Azure.

¡Anímate a explorar estas capacidades! Instala la extensión de GitHub Copilot Modernization para VS Code y comienza tu primera evaluación hoy mismo. Para más detalles, consulta la documentación oficial de modernización con GitHub Copilot.

Author: Enagora

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *