Esegui la migrazione delle app .NET in Azure usando la funzionalità di modernizzazione di GitHub Copilot in Copilot CLI

Informazioni generali

Scopri come eseguire la migrazione delle applicazioni .NET in Azure usando il plug-in GitHub Copilot modernization in Copilot CLI.

Il plug-in fornisce un flusso di lavoro autonomo e multi-agente che valuta l'applicazione .NET, genera un piano di modernizzazione eseguibile ed esegue la migrazione, tutto dal terminale. Supporta Azure migrazioni, correzioni di vulnerabilità CVE e riprogettazione dell'applicazione.

Annotazioni

L'interfaccia della riga di comando di GitHub Copilot è disponibile nei piani GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business e GitHub Copilot Enterprise. Se si riceve Copilot tramite un'organizzazione, un amministratore deve abilitare i criteri dell'interfaccia della riga di comando di Copilot nelle impostazioni dell'organizzazione.

Cosa puoi fare

Capability Description
migrazione di .NET in Azure Valutare ed eseguire la migrazione di applicazioni .NET ai servizi di Azure (bus di servizio, Azure SQL, Redis, Key Vault, Application Insights, Identità gestita), inclusi i controlli di sicurezza e le migrazioni da ASP.NET a Azure
CVE e correzione delle vulnerabilità Analizzare e correggere le vulnerabilità CVE nelle dipendenze NuGet
Riprogettazione dell'applicazione Riscritture strutturali, ad esempio la scomposizione da monolith a microservizi, la modernizzazione dell'interfaccia utente legacy e l'estrazione di moduli

Prerequisiti

Installare il plug-in

  1. In un terminale eseguire copilot per avviare l'interfaccia della riga di comando di Copilot.

    copilot
    
  2. Aggiungere il marketplace e installare il plug-in:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  3. Verificare che il plug-in sia installato elencando i plug-in installati:

    /plugin list
    

    Dovresti vedere github-copilot-modernization:modernize nell'elenco.

Aggiornare il plug-in

Per aggiornare il plug-in quando è disponibile una nuova versione, eseguire:

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

Avviare un'attività di modernizzazione

Opzione 1: Iniziare direttamente con l'agente

Passa alla cartella del progetto .NET e avvia la CLI di Copilot con l'agente di modernizzazione:

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

Opzione 2: Selezionare l'agente dall'interfaccia della riga di comando di Copilot

Se si è già in una sessione dell'interfaccia della riga di comando di Copilot, usare il comando /agent per passare all'agente di modernizzazione:

/agent

Selezionare github-copilot-modernization:modernize dall'elenco.

Importante

È necessario selezionare l'agente github-copilot-modernization:modernize prima di eseguire eventuali richieste di modernizzazione. Senza questo agente selezionato, la CLI di Copilot usa l'agente predefinito, che non può sfruttare la piena orchestrazione multi-agente, il supporto per i playbook aziendali e le funzionalità di migrazione specializzate fornite dal plugin.

Esegui un prompt di modernizzazione

Quando l'agente è attivo, descrivere ciò che si vuole nel linguaggio naturale:

copilot> modernize my application

Oppure essere più specifici:

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

Per l'esecuzione automatica, usare il --allow-all flag :

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

Funzionamento del flusso di lavoro

Il plug-in usa un flusso di lavoro in tre fasi che viene eseguito automaticamente. Non è necessario richiamare manualmente ogni fase, ovvero l'agente di orchestrazione gestisce il routing in base alla richiesta.

Fase 1: Valutazione

  • Rileva la struttura del progetto .NET e usa gli strumenti di analisi adeguati.
  • Analizza dipendenze, framework e versioni.
  • Identifica opportunità e rischi per la modernizzazione.
  • Salva i risultati in .github/modernize/assessment/.

Fase 2: Pianificazione

  • Carica i risultati della valutazione e i vincoli dei playbook aziendali (se presenti).
  • Genera un piano attività eseguibile.
  • Salva il piano su .github/modernize/<app>/plan.md e tasks.json.

Fase 3: Esecuzione

  • Indirizza le attività agli agenti executor specializzati in base al tipo di attività.
  • Ogni executor esegue una query su una Knowledge Base per i modelli di migrazione.
  • Monitora l'avanzamento con nuovi tentativi automatici in caso di errore.
  • Crea commit dettagliati per ciascuna attività per la revisione.

L'orchestratore supporta più punti d'ingresso a seconda dell'obiettivo:

Flusso di lavoro Quando viene attivato Che succede
Intento generale "modernizzare l'applicazione" Valutazione completa → pianificare → eseguire la pipeline
Attività specifica "eseguire la migrazione da SQL Server a Azure SQL" Ignora la valutazione, passa direttamente al piano → eseguire
Eseguire un piano esistente "eseguire il piano" Ignora la valutazione e la pianificazione, esegue un piano esistente
Headless Esecuzione non assistita con --allow-all Uguale a una finalità generale senza richieste dell'utente

Definire i criteri di modernizzazione dell'organizzazione

Le organizzazioni possono incorporare la finalità di modernizzazione, ovvero architetture di destinazione, standard di aggiornamento e criteri di conformità, direttamente nel flusso di lavoro tramite un playbook. Questo approccio garantisce che ogni piano generato sia allineato agli standard aziendali senza una revisione manuale di ogni decisione.

Configura un playbook

Inserire i file Markdown nella .github/modernize/playbook/ directory del progetto. La fase di pianificazione legge automaticamente tutti i .md file in questa cartella e li unisce ai risultati della valutazione prima di generare il piano attività.

Importante

I vincoli del playbook sostituiscono le raccomandazioni di valutazione. Se il playbook specifica "usare bus di servizio di Azure per la messaggistica", tale scelta ha la precedenza indipendentemente da ciò che viene individuata dalla valutazione.

Cosa è possibile definire in un playbook

Tipo di criterio Examples
Architetture di destinazione Servizi di calcolo (servizio app, servizio Azure Kubernetes, app contenitore), opzioni di database (Azure SQL, Cosmos DB), piattaforme di messaggistica (bus di servizio, Hub eventi)
Aggiornare gli standard Versione di .NET di destinazione, percorsi di migrazione del framework
Guardrail Tecnologie proibite, requisiti di sicurezza, vincoli di conformità, standard di autenticazione
Standard di codifica Convenzioni di denominazione, modelli di autenticazione, framework di registrazione
Strategia di migrazione Confini dell’ambito, preferenze di classificazione 6R (rehost vs. refactor vs. rearchitect), strategia di implementazione per fasi

Playbook di esempio

Creare un file in .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

Non è necessaria alcuna denominazione o struttura fissa. L'agente di orchestrazione deduce lo scopo di ogni file dal relativo contenuto.

Impostazioni predefinite integrate

Senza un playbook, il plugin applica impostazioni predefinite ragionevoli:

  • Azure: identità gestita per l'autenticazione; servizi di database gestiti per i dati relazionali.
  • Messaging: → bus di servizio di Azure di messaggistica locale.
  • Infrastructure: Bicep come impostazione predefinita.

Scenari comuni

migrazione Azure

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

Eseguire la migrazione da SQL Server locale a Azure SQL

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

Eseguire la migrazione dall'I/O del file a Archiviazione BLOB di Azure

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

CVE e correzione della sicurezza

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

Riprogettazione dell'applicazione

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

Modernizzazione completa

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

Troubleshooting

Plug-in non trovato

# 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

Valutazione non riuscita: nessuna applicazione trovata

  • Verifica che la directory radice del progetto contenga un file .csproj o un file .sln.
  • Assicurati di essere nella directory corretta prima di avviare Copilot CLI.

Problemi del server MCP

Il plug-in usa il server MCP definito nella configurazione. In caso di problemi, reinstallare il plug-in per reimpostare la configurazione MCP.

Inviare commenti

Condividi il tuo feedback su GitHub Copilot CLI tramite il modulo di feedback di GitHub Copilot CLI.

Reference