Migrez des applications .NET vers Azure à l’aide de la fonctionnalité de modernisation de GitHub Copilot dans Copilot CLI

Aperçu

Découvrez comment migrer des applications .NET vers Azure à l’aide du plug-in de modernisation GitHub Copilot dans Copilot CLI.

Le plug-in fournit un flux de travail autonome multi-agent qui évalue votre application .NET, génère un plan de modernisation exécutable et effectue la migration, à partir du terminal. Il prend en charge les migrations Azure, les correctifs de vulnérabilité CVE et la réarchitecture des applications.

Note

GitHub Copilot CLI est disponible dans les plans GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business et GitHub Copilot Enterprise. Si vous recevez Copilot via une organisation, un administrateur doit activer la stratégie CLI Copilot dans les paramètres de l’organisation.

Ce que vous pouvez faire

Capability Description
Migration de .NET vers Azure Évaluer et migrer des applications .NET vers des services Azure (Service Bus, Azure SQL, Redis, Key Vault, Application Insights, Managed Identity), y compris des audits de sécurité NuGet et des migrations ASP.NET-à-Azure
CVE et correction de vulnérabilités Analyser et corriger les vulnérabilités CVE dans les dépendances NuGet
Réarchitecture d’application Réécritures structurelles telles que la décomposition d’un monolithe en microservices, la modernisation d’une interface utilisateur existante et l’extraction de modules

Prerequisites

Installer le plug-in

  1. Dans un terminal, exécutez copilot pour démarrer Copilot CLI.

    copilot
    
  2. Ajoutez la Place de marché et installez le plug-in :

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  3. Vérifiez que le plug-in est installé en répertoriant les plug-ins installés :

    /plugin list
    

    Vous devriez voir github-copilot-modernization:modernize dans la liste.

Mettre à jour le plug-in

Pour mettre à jour le plug-in lorsqu’une nouvelle version est disponible, exécutez :

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

Démarrer une tâche de modernisation

Option 1 : Démarrer directement avec l’agent

Accédez à votre dossier de projet .NET et démarrez Copilot CLI avec l’agent de modernisation :

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

Option 2 : Sélectionner l’agent dans Copilot CLI

Si vous êtes déjà dans une session CLI Copilot, utilisez la commande /agent pour basculer vers l'agent de modernisation :

/agent

Sélectionnez-le github-copilot-modernization:modernize dans la liste.

Important

Vous devez sélectionner l’agent github-copilot-modernization:modernize avant d’exécuter des instructions de modernisation. Sans cet agent sélectionné, Copilot CLI utilise l'agent par défaut, qui ne peut pas utiliser l'orchestration multi-agent complète, la prise en charge des playbooks d'entreprise et les fonctionnalités de migration spécialisées que le plug-in fournit.

Lancer un prompt de modernisation

Une fois l’agent actif, décrivez ce que vous souhaitez en langage naturel :

copilot> modernize my application

Ou être plus spécifique :

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

Pour une exécution sans assistance, utilisez l’indicateur --allow-all :

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

Fonctionnement du flux de travail

Le plug-in utilise un workflow en trois phases qui s’exécute automatiquement. Vous n’avez pas besoin d’appeler chaque phase manuellement : l’orchestrateur gère le routage en fonction de votre demande.

Phase 1 : Évaluation

  • Détecte la structure du projet .NET et utilise les outils d’analyse appropriés.
  • Analyse les dépendances, les frameworks et les versions.
  • Identifie les opportunités et les risques de modernisation.
  • Enregistre les résultats dans .github/modernize/assessment/.

Phase 2 : Planification

  • Charge les résultats d’évaluation et les contraintes du guide opérationnel d’entreprise (le cas échéant).
  • Génère un plan de tâche exécutable.
  • Enregistre le plan dans .github/modernize/<app>/plan.md et tasks.json.

Phase 3 : Exécution

  • Route les tâches vers des agents exécuteurs spécialisés en fonction du type de tâche.
  • Chaque exécuteur interroge une base de connaissances pour les modèles de migration.
  • Surveille la progression avec une nouvelle tentative automatique en cas d’échec.
  • Crée des commits détaillés pour chaque tâche, pour examen.

L’orchestrateur prend en charge plusieurs points d’entrée en fonction de votre intention :

Flux de travail Quand il s’active Que se passe-t-il ?
Intention générale « moderniser mon application » Évaluation complète → planification → exécution du pipeline
Tâche spécifique « migrer de SQL Server vers Azure SQL » Ignore l’évaluation, passe directement au plan → exécuter
Exécuter un plan existant « exécuter le plan » Ignore l’évaluation et la planification, exécute un plan existant
Headless Exécution non assistée avec --allow-all Même intention générale sans invites utilisateur

Définir des stratégies de modernisation d’entreprise

Les organisations peuvent incorporer leur intention de modernisation (architectures cibles, normes de mise à niveau et stratégies de conformité) directement dans le flux de travail via un playbook. Cette approche garantit que chaque plan généré s’aligne sur les normes d’entreprise sans examen manuel de chaque décision.

Configurer un scénario

Placez les fichiers Markdown dans le .github/modernize/playbook/ répertoire de votre projet. La phase de planification lit automatiquement tous les .md fichiers de ce dossier et les fusionne avec les résultats de l’évaluation avant de générer le plan de tâche.

Important

Les contraintes du playbook prévalent sur les recommandations d’évaluation. Si votre playbook spécifie « utiliser Azure Service Bus pour la messagerie », ce choix est prioritaire, quelle que soit la découverte de l’évaluation.

Ce que vous pouvez définir dans un manuel d’exploitation

Type de stratégie Exemples
Architectures cibles Services de calcul (App Service, AKS, Container Apps), choix de base de données (Azure SQL, Cosmos DB), plateformes de messagerie (Service Bus, Event Hubs)
Normes de mise à niveau Version cible de .NET, chemins de migration du framework
Garde-corps Technologies interdites, exigences de sécurité, contraintes de conformité, normes d’authentification
Normes de codage Conventions d’affectation de noms, modèles d’authentification, frameworks de journalisation
Stratégie de migration Limites du périmètre, préférences de classification selon les 6R (réhébergement vs refactorisation vs réarchitecture), stratégie de phasage

Exemple de guide pratique

Créez un fichier à l’adresse .github/modernize/playbook/enterprise-standards.mdsuivante :

# 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

Aucun nom ou structure fixe n’est requis : l’orchestrateur déduit l’objectif de chaque fichier à partir de son contenu.

Valeurs par défaut intégrées

En l’absence de playbook, le plugin applique des paramètres par défaut appropriés :

  • Azure : Identité managée pour l’authentification ; services de base de données managés pour les données relationnelles.
  • Messaging : Messagerie locale → Azure Service Bus.
  • Infrastructure : Bicep par défaut.

Scénarios courants

migration de Azure

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

Migrer du SQL Server local vers Azure SQL

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

Migrer des E/S de fichiers vers Stockage Blob Azure

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

CVE et correctif de sécurité

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

Réarchitecture d’application

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

Modernisation complète

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

Résolution des problèmes

Extension introuvable

# 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

Échec de l’évaluation : aucune application trouvée

  • Vérifiez que la racine de votre projet contient un fichier .csproj ou .sln.
  • Vérifiez que vous êtes dans le répertoire approprié avant de commencer Copilot CLI.

Problèmes de serveur MCP

Le plug-in utilise le serveur MCP défini dans sa configuration. Si vous rencontrez des problèmes, réinstallez le plug-in pour réinitialiser la configuration MCP.

Fournir des commentaires

Faites part de vos commentaires sur GitHub Copilot CLI à l’aide du formulaire de commentaires sur GitHub Copilot CLI.

Reference