Migración de aplicaciones de .NET a Azure mediante la modernización de GitHub Copilot en la CLI de Copilot

Información general

Aprenda a migrar aplicaciones de .NET a Azure mediante el complemento GitHub Copilot modernización en Copilot CLI.

El complemento proporciona un flujo de trabajo autónomo y multiagente que evalúa la aplicación .NET, genera un plan de modernización ejecutable y lleva a cabo la migración, todo desde el terminal. Admite migraciones Azure, correcciones de vulnerabilidades CVE y rediseño de aplicaciones.

Nota:

La CLI de Copilot de GitHub está disponible en los planes GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business y GitHub Copilot Enterprise. Si recibe Copilot a través de una organización, un administrador debe habilitar la directiva de la CLI de Copilot en la configuración de la organización.

Qué puede hacer

Capacidad Descripción
.NET migración a Azure Evaluar y migrar aplicaciones de .NET a servicios de Azure (Service Bus, Azure SQL, Redis, Key Vault, Application Insights, Managed Identity), incluidas las auditorías de seguridad de NuGet y las migraciones de ASP.NET a Azure
CVE y corrección de vulnerabilidades Analiza y corrige las vulnerabilidades CVE en las dependencias de NuGet
Rearquitectura de aplicaciones Reescrituras estructurales, como la descomposición de un monolito en microservicios, la modernización de interfaces de usuario heredadas y la extracción de módulos

Prerrequisitos

Instalación del complemento

  1. En un terminal, ejecute copilot para iniciar Copilot CLI.

    copilot
    
  2. Agregue Marketplace e instale el complemento:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  3. Compruebe que el complemento está instalado enumerando los complementos instalados:

    /plugin list
    

    Debería ver github-copilot-modernization:modernize en la lista.

Actualización del complemento

Para actualizar el complemento cuando haya disponible una nueva versión, ejecute:

copilot plugin update github-copilot-modernization@github-copilot-modernization

Iniciar una tarea de modernización

Opción 1: Empezar directamente con el agente

Vaya a la carpeta del proyecto de .NET e inicie Copilot CLI con el agente de modernización:

cd /path/to/your/dotnet-project
copilot --agent=github-copilot-modernization:modernize

Opción 2: Selección del agente desde dentro de la CLI de Copilot

Si ya está en una sesión de la CLI de Copilot, use el comando /agent para cambiar al agente de modernización:

/agent

Seleccione github-copilot-modernization:modernize en la lista.

Importante

Debe seleccionar el agente github-copilot-modernization:modernize antes de ejecutar las indicaciones de modernización. Sin este agente seleccionado, Copilot CLI usa el agente predeterminado, que no puede usar la orquestación multiagente completa, la compatibilidad con cuadernos de estrategias empresariales y las funcionalidades de migración especializadas que proporciona el complemento.

Ejecutar un prompt de modernización

Una vez que el agente esté activo, describa lo que desea en lenguaje natural:

copilot> modernize my application

O bien, ser más específico:

copilot> modernize my .NET application for Azure
copilot> migrate this app from local SQL Server to Azure SQL Database
copilot> fix CVE vulnerabilities in my project

Para ejecutar de forma desatendida, use el indicador --allow-all:

copilot --agent=github-copilot-modernization:modernize --allow-all

Funcionamiento del flujo de trabajo

El complemento usa un flujo de trabajo de tres fases que se ejecuta automáticamente. No es necesario invocar manualmente cada fase: el orquestador controla el enrutamiento en función de la solicitud.

Fase 1: Evaluación

  • Detecta la estructura del proyecto .NET y usa las herramientas de análisis adecuadas.
  • Analiza las dependencias, los marcos y las versiones.
  • Identifica las oportunidades y los riesgos de modernización.
  • Guarda los resultados en .github/modernize/assessment/.

Fase 2: Planificación

  • Carga los resultados de la evaluación y las restricciones del cuaderno de estrategias de empresa (si están presentes).
  • Genera un plan de tareas ejecutable.
  • Guarda el plan en .github/modernize/<app>/plan.md y tasks.json.

Fase 3: Ejecución

  • Enruta las tareas a agentes ejecutores especializados en función del tipo de tarea.
  • Cada ejecutor consulta una base de conocimiento para patrones de migración.
  • Supervisa el progreso con reintento automático en caso de error.
  • Crea confirmaciones detalladas por tarea para su revisión.

El orquestador admite varios puntos de entrada en función de la intención:

Flujo de trabajo Cuando se activa ¿Qué ocurre?
Intención amplia "modernizar mi aplicación" Evaluación completa → plan → ejecución de canalización
Tarea específica "migrar de SQL Server a Azure SQL" Omite la evaluación, va directamente al plan → ejecutar
Ejecución del plan existente "ejecutar el plan" Omite la evaluación y la planificación, ejecuta un plan existente.
Headless Ejecución desatendida con --allow-all La misma intención general sin indicaciones del usuario

Definición de directivas de modernización empresarial

Las organizaciones pueden insertar su intención de modernización (arquitecturas de destino, estándares de actualización y directivas de cumplimiento) directamente en el flujo de trabajo a través de un cuaderno de estrategias. Este enfoque garantiza que todos los planes generados se alinean con los estándares empresariales sin revisión manual de cada decisión.

Configurar una guía de estrategias

Coloque los archivos Markdown en el .github/modernize/playbook/ directorio del proyecto. La fase de planeación lee automáticamente todos los .md archivos de esta carpeta y los combina con los resultados de la evaluación antes de generar el plan de tareas.

Importante

Las restricciones de cuaderno de estrategias invalidan las recomendaciones de evaluación. Si el cuaderno de estrategias especifica "usar Azure Service Bus para la mensajería", esa opción tiene prioridad independientemente de lo que detecte la evaluación.

Lo que puede definir en un cuaderno de estrategias

Tipo de directiva Examples
Arquitecturas de destino Servicios de proceso (App Service, AKS, Container Apps), opciones de base de datos (Azure SQL, Cosmos DB), plataformas de mensajería (Service Bus, Event Hubs)
Estándares de actualización Versión de .NET de destino, rutas de migración del marco
Barreras de protección Tecnologías prohibidas, requisitos de seguridad, restricciones de cumplimiento, estándares de autenticación
Estándares de codificación Convenciones de nomenclatura, patrones de autenticación, marcos de registro
Estrategia de migración Límites del alcance, preferencias de clasificación según las 6R (realojamiento frente a refactorización frente a rearquitectura), estrategia de implantación por fases

Guía práctica de ejemplo

Cree un archivo en .github/modernize/playbook/enterprise-standards.md:

# Enterprise Modernization Standards

## Target Architecture
- Use Azure Container Apps for microservices deployments
- Use Azure Service Bus for all asynchronous messaging
- Use Azure SQL Database for relational data
- Use Azure Blob Storage for file storage

## Security & Compliance
- All services must authenticate using Managed Identity — no connection strings or passwords in code
- All public endpoints must be behind Azure Front Door

## Guardrails
- Do not use Azure Functions for long-running processes
- All infrastructure must be defined in Bicep

No se requiere ninguna nomenclatura o estructura fija: el orquestador deduce el propósito de cada archivo a partir de su contenido.

Valores predeterminados integrados

Sin un cuaderno de estrategias, el complemento aplica valores predeterminados razonables:

  • Azure: identidad administrada para la autenticación; servicios de base de datos administrados para datos relacionales.
  • Mensajería: mensajería local → Azure Service Bus.
  • Infrastructure: Bicep de forma predeterminada.

Escenarios comunes

Migración de Azure

copilot --agent=github-copilot-modernization:modernize
copilot> modernize my .NET application for Azure

Migración de SQL Server local a Azure SQL

copilot --agent=github-copilot-modernization:modernize
copilot> migrate this app from local SQL Server to Azure SQL Database with managed identity

Migrar de la entrada/salida de archivos al almacenamiento de blobs de Azure

copilot --agent=github-copilot-modernization:modernize
copilot> migrate this app from local file I/O to Azure Blob Storage

CVE y corrección de seguridad

copilot --agent=github-copilot-modernization:modernize
copilot> fix CVE vulnerabilities in my project

Rearquitectura de aplicaciones

copilot --agent=github-copilot-modernization:modernize
copilot> rearchitect my monolithic application into microservices

Modernización completa

copilot --agent=github-copilot-modernization:modernize
copilot> modernize my application

Solución de problemas

No se encontró el complemento

# Verify marketplace is added
copilot plugin marketplace list

# Re-add marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization

# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization

Error en la evaluación: no se encontró ninguna aplicación

  • Compruebe que la raíz del proyecto contiene un .csproj archivo o .sln .
  • Asegúrese de que está en el directorio correcto antes de iniciar Copilot CLI.

Problemas del servidor MCP

El complemento usa el servidor MCP definido en su configuración. Si tiene problemas, vuelva a instalar el complemento para restablecer la configuración de MCP.

Proporcionar comentarios

Comparta comentarios sobre GitHub Copilot CLI mediante el formulario de comentarios de la CLI GitHub Copilot.

Referencia