Compartir a través de


Evaluación de procesamiento por lotes con el agente de modernización de GitHub Copilot

La evaluación por lotes le permite analizar varias aplicaciones simultáneamente, lo que proporciona una vista completa del panorama de modernización en todas las aplicaciones. Este artículo le guía por el proceso de evaluación de varios repositorios de forma eficaz.

La evaluación por lotes es especialmente valiosa para el planeamiento de la migración, ya que permite evaluar de forma eficaz la preparación y los requisitos de varias aplicaciones a la vez. Mediante la evaluación por lotes, puede evaluar repositorios diferentes al mismo tiempo y obtener informes de evaluación detallados para cada aplicación. Genera dos tipos de informes para apoyar la planificación de la migración:

  • Informe por aplicación: proporciona información detallada sobre todos los problemas de modernización identificados en el nivel de repositorio individual.
  • Informe agregado: presenta una perspectiva general de todas las aplicaciones evaluadas, ofreciendo información de resumen, recomendaciones sobre servicios de Azure, plataformas de destino y rutas de actualización. Además, el informe agregado incluye accesos directos para facilitar el acceso a cada informe por aplicación.

La evaluación por lotes proporciona las siguientes ventajas:

  • Visibilidad entre aplicaciones:

    • Informes agregados: obtenga una vista completa de las aplicaciones.
    • Análisis entre repositorios: identifique patrones y dependencias comunes entre aplicaciones.
    • Información de priorización: comprenda qué aplicaciones necesitan atención inmediata.
  • Escala y eficiencia:

    • Procesamiento paralelo: use agentes de codificación en la nube para procesar varios repositorios simultáneamente.
    • Flujos de trabajo automatizados: se integran con canalizaciones de CI/CD para evaluaciones programadas.
    • Ahorro de tiempo: reduzca el tiempo total de evaluación de semanas a horas.

Prerrequisitos

  • Modernización de la CLI.
  • Acceso a todos los repositorios que desea evaluar.
  • La autenticación de GitHub está configurada (gh auth login).

Configuración de repositorios

Para habilitar la evaluación por lotes, cree un .github/modernize/repos.json archivo en el directorio de trabajo que muestre todos los repositorios que desea evaluar.

Asegúrese de tener los permisos adecuados para los repositorios o bifurcarlos.

[
  {
    "name": "PhotoAlbum-Java",
    "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
  },
  {
    "name": "PhotoAlbum",
    "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
  },
  {
    "name": "eShopOnWeb",
    "url": "https://github.com/dotnet-architecture/eShopOnWeb.git"
  }
]

Configuración del repositorio

Cada entrada requiere:

  • name: un nombre descriptivo para el repositorio (que se usa en informes y paneles).
  • url: la dirección URL de clonación de Git en formato HTTPS.

Sugerencia

Puede incluir repositorios de diferentes organizaciones y usar distintos métodos de autenticación siempre que tenga acceso.

Ubicación del archivo

Debe colocar el archivo repos.json en .github/modernize/repos.json.

El agente de modernización detecta automáticamente este archivo cuando ejecuta operaciones por lotes.

Ejecución de la evaluación por lotes

Hay dos modos de ejecución disponibles:

  • Ejecución local: el agente de modernización procesa los repositorios uno tras otro en su máquina local. Este modo funciona mejor para un conjunto más pequeño de aplicaciones o para pruebas iniciales.
  • Delegación del agente de codificación en la nube: el agente de modernización envía tareas a Los agentes de codificación en la nube de GitHub para el procesamiento paralelo en la nube. Este modo es más rápido para escenarios de varios repositorios.

Sugerencia

Mediante el uso de la delegación del Agente de codificación en la nube, se habilita la ejecución en paralelo en todos los repositorios. Este enfoque reduce significativamente el tiempo total de evaluación de las carteras grandes.

Modo interactivo (evaluar localmente)

  1. Ejecute el agente de modernización:

    modernize
    
  2. El agente detecta el repos.json archivo y muestra la lista de repositorios:

    Captura de pantalla de Modernize CLI que muestra una lista de repositorios en el terminal.

  3. Seleccione repositorios para evaluar y presione Enter para confirmar la selección.

    • Presione Ctrl+A para seleccionar todos los repositorios.
    • Use las teclas de dirección para navegar y presionar Space para seleccionar repositorios individuales.
  4. Seleccione 1. Evaluar la aplicación desde el menú principal.

    Captura de pantalla de Modernize CLI que muestra el menú Modernizar en la terminal.

  5. Para ejecutar la evaluación, elija evaluar localmente o delegar en agentes de codificación en la nube. Seleccione 1. Evaluar localmente.

    Captura de pantalla de Modernize CLI que muestra el menú de evaluación en el terminal.

  6. El agente actúa automáticamente:

    • Clona todos los repositorios seleccionados.

    • Ejecuta la evaluación en cada repositorio uno por uno.

    • Genera informes de evaluación individuales.

      Captura de pantalla de Modernize CLI que muestra la generación de la salida de informes de evaluación individual en el terminal.

    • Crea un informe agregado.

      Captura de pantalla de Modernize CLI que muestra la salida de la generación del informe agregado en el terminal.

  7. Cuando finalice la evaluación, el agente abre automáticamente el informe agregado.

    Captura de pantalla de Modernize CLI que muestra el contenido del informe agregado.

Modo interactivo (delegación a agentes de codificación en la nube)

En primer lugar, configure Cloud Coding Agents en cada repositorio de aplicaciones. Para configurar agentes de codificación en la nube, bifurque los repositorios de ejemplo.

Configuración de aplicaciones .NET

Configuración para ejecutarse en Windows para aplicaciones de .NET Framework

De forma predeterminada, el agente de codificación de Copilot se ejecuta en un entorno de Ubuntu Linux. Para las aplicaciones de .NET Framework, necesita un entorno de Windows. Para habilitarlo, configure .github/workflows/copilot-setup-steps.yaml en la main rama del repositorio de aplicaciones, como se muestra en el ejemplo siguiente:

# Windows-based Copilot Setup Steps for .NET tasks
# Note: Windows runners have firewall limitations that may affect some network operations
# Use this workflow for .NET projects that require Windows-specific tooling

name: "Copilot Setup Step (Windows)"

on:
  workflow_dispatch:

jobs:
  copilot-setup-steps:
    runs-on: windows-latest
    permissions:
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v5

Más información en: Personalización del entorno de desarrollo de Copilot con los pasos de configuración de Copilot

Disable firewall (Deshabilitar firewall)

Deshabilite el firewall integrado del agente de codificación de Copilot en la configuración del repositorio, como se muestra en la siguiente imagen:

Captura de pantalla de GitHub que muestra la configuración del repositorio con la opción Habilitar firewall establecida en Desactivado.

Configuración de aplicaciones Java

Configure el servidor MCP de modernización de Copilot de GitHub en la sección Agente de codificación en la nube de la configuración del repositorio, como se muestra en el ejemplo siguiente:

{
  "mcpServers": {
    "app-modernization": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "-y",
        "@microsoft/github-copilot-app-modernization-mcp-server"
      ]
    }
  }
}

Captura de pantalla de GitHub que muestra la configuración del agente de codificación del repositorio con la sección configuración de MCP resaltada.

Pasos

  1. Ejecute el agente de modernización:

    modernize
    
  2. El agente detecta el repos.json archivo y muestra la lista de repositorios:

    Captura de pantalla de Modernize CLI que muestra la lista de repositorios en la terminal.

  3. Seleccione repositorios para evaluar y presione Enter para confirmar la selección.

    • Presione Ctrl+A para seleccionar todos los repositorios.
    • Use las teclas de dirección para navegar y presionar Space para seleccionar repositorios individuales.
  4. Seleccione 1. Evalúe las aplicaciones desde el menú principal.

    Captura de pantalla de Modernize CLI que muestra el menú Modernizar en la terminal.

  5. Para ejecutar la evaluación, seleccione 2. Delegar en agentes de codificación en la nube.

    Captura de pantalla de Modernize CLI que muestra el menú de evaluación con la opción Delegar en Agentes de Codificación en la Nube seleccionada.

  6. El agente delega automáticamente las tareas de evaluación de cada repositorio en Cloud Coding Agents y las ejecuta en la nube en paralelo.

    Captura de pantalla de Modernizar CLI que muestra el resultado del progreso de la delegación de la evaluación a Agentes de Codificación en la Nube en el terminal.

    A continuación, el agente vuelve a extraer los resultados de la evaluación por aplicación en local y genera el informe agregado localmente.

    Captura de pantalla de Modernize CLI que muestra la agregación de informes de evaluación en el terminal.

  7. Cuando finalice la evaluación, el agente abre automáticamente el informe agregado.

Modo no interactivo (CLI)

También puede usar el modo no interactivo especificando los argumentos de comando directamente. Use el comando modernize assess:

Evaluar localmente:

modernize assess --multi-repo

Evalúe mediante la delegación a agentes de codificación en la nube:

modernize assess --delegate cloud

Para más información, consulte evaluación: comandos de la CLI.

Descripción del informe agregado

El informe agregado proporciona una vista completa de las aplicaciones evaluadas de la siguiente manera:

Panel de control

  • Instantánea del estado de la cartera: total de aplicaciones, cuántas necesitan actualizaciones y recuentos agregados de bloqueadores y problemas.
  • Distribución de tecnología: qué marcos de trabajo están en uso y cuántas aplicaciones las comparten.
  • Distribución del esfuerzo: si la migración general es una tarea pequeña o grande.

Recomendaciones

  • Servicios de Azure: asigna las dependencias actuales a los equivalentes de Azure recomendados. Las dependencias compartidas entre aplicaciones se deciden de manera centralizada, lo que evita la redundancia de trabajo en cada aplicación.
  • Plataforma de destino: guía la opción de hospedaje, como Container Apps frente a AKS, y expone las oportunidades de consolidación.
  • Ruta de actualización: identifica qué aplicaciones necesitan actualizaciones de marco como requisito previo, separando el trabajo de actualización del trabajo de migración.
  • Oleadas de migración: secuencia las aplicaciones por preparación y riesgo en fases. Este enfoque permite ganar temprano mientras las aplicaciones más difíciles se preparan en paralelo.

Matriz de evaluación de aplicaciones

  • Información general rápida para cada aplicación sobre aspectos del marco de trabajo, la plataforma de destino, la recomendación de actualización, el desglose de problemas (obligatorio, potencial, opcional), el tamaño del esfuerzo, etc.
  • Vínculos a informes de aplicaciones individuales para explorar en profundidad cuando sea necesario.

Solución de problemas de evaluación por lotes

Problemas comunes

Errores de acceso al repositorio:

  • Compruebe la autenticación de GitHub mediante gh auth status.
  • Asegúrese de que tiene acceso a todos los repositorios enumerados en repos.json.

Errores de clonación:

  • Compruebe que las direcciones URL del repositorio en repos.json son correctas y accesibles.
  • Asegúrese de que tiene los permisos de acceso adecuados para todos los repositorios.
  • Compruebe la conectividad de red y la configuración de VPN.

Errores de evaluación:

  • Compruebe si el repositorio contiene proyectos de Java o .NET válidos.
  • Compruebe que existen archivos de compilación, como pom.xml, build.gradle, *.csprojo *.sln.
  • Revise los mensajes de error en la salida de la consola.

Problemas de delegación del agente de codificación en la nube:

  • Asegúrese de que tiene los permisos adecuados para crear flujos de trabajo de Acciones de GitHub.
  • Compruebe los permisos y los límites de cuota de Acciones de GitHub para su organización.
  • En el caso de las aplicaciones de .NET Framework, asegúrese de que la configuración del ejecutor de Windows esté establecida correctamente.
  • Compruebe la configuración del servidor MCP.

Pasos siguientes

Después de completar la evaluación por lotes, puede hacer lo siguiente:

Continúe con el flujo de trabajo de modernización:

Más información:

Enviar comentarios

¡Valoramos su entrada! Si tiene algún comentario sobre la evaluación por lotes o el agente de modernización, cree un problema en el repositorio github-copilot-appmod o use el formulario de comentarios de modernización de Copilot de GitHub.