Partager via


Évaluation par lots avec l’agent de modernisation GitHub Copilot

L’évaluation par lots vous permet d’analyser plusieurs applications simultanément, en fournissant une vue complète du paysage de modernisation de vos applications. Cet article vous guide tout au long du processus d’évaluation efficace de plusieurs référentiels.

L’évaluation par lots est particulièrement utile pour la planification de la migration, car elle vous permet d’évaluer efficacement la préparation et les exigences de différentes applications en même temps. En utilisant l’évaluation par lots, vous pouvez évaluer différents référentiels en même temps et obtenir des rapports d’évaluation détaillés pour chaque application. Il produit deux types de rapports pour prendre en charge votre planification de la migration :

  • Rapport par application : fournit des insights détaillés sur tous les problèmes de modernisation identifiés au niveau du référentiel individuel.
  • rapport Aggregated : présente une perspective globale de toutes les applications évaluées, offrant des insights récapitulatives, des recommandations sur les services Azure, les plateformes cibles et les chemins de mise à niveau. En outre, le rapport agrégé inclut des raccourcis pour faciliter l’accès à chaque rapport d’application.

L’évaluation par lots offre les avantages suivants :

  • Visibilité inter-applications :

    • Rapports agrégés : obtenir une vue complète sur les applications.
    • Analyse entre référentiels : identifiez les modèles et dépendances courants entre les applications.
    • Informations sur la hiérarchisation : Comprendre les applications qui ont besoin d’une attention immédiate.
  • Mise à l’échelle et efficacité :

    • Traitement parallèle : utilisez des agents de codage cloud pour traiter plusieurs référentiels simultanément.
    • Flux de travail automatisés : intégrer des pipelines CI/CD pour l’évaluation planifiée.
    • Économies de temps : réduisez le temps total d’évaluation des semaines aux heures.

Prerequisites

  • Moderniser l’interface CLI.
  • Accès à tous les référentiels que vous souhaitez évaluer.
  • L'authentification GitHub est configurée (gh auth login).

Configurer les référentiels

L’agent de modernisation prend en charge plusieurs façons de spécifier les référentiels que vous souhaitez évaluer :

  • Dossier actif : évaluez le projet dans votre répertoire de travail actuel.
  • Entrée manuelle : entrez directement les chemins d’accès au répertoire local ou les URL Git distantes.
  • Fichier de configuration du référentiel : utilisez un fichier de configuration JSON qui répertorie tous les référentiels.

Fichier de configuration du référentiel

Pour les opérations par lots sur de nombreux référentiels, créez un fichier de configuration JSON pour répertorier tous les référentiels. Par exemple, créez-le .github/modernize/repos.json dans votre répertoire de travail ou fournissez un chemin personnalisé.

Vérifiez que vous disposez des autorisations appropriées pour les référentiels ou les dupliquez.

Format simple (tableau de référentiels) :

[
  {
    "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"
  }
]

Format complet (avec les chemins de branche et les chemins locaux) :

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "local-project",
      "path": "/absolute/path/to/project"
    }
  ]
}

Chaque entrée de dépôt prend en charge les champs suivants :

Champ Description Obligatoire
name Nom convivial du référentiel (utilisé dans les rapports et les tableaux de bord). Oui
url URL de clonage Git au format HTTPS ou SSH. L’un ou l’autre urlpath
path Chemin d’accès absolu du répertoire local. L’une de url ou path
branch Branche à vérifier après le clonage. Non
description Description lisible par l’homme. Non

Format complet avec regroupement d’applications (facultatif, pour les rapports organisés) :

Vous pouvez ajouter une apps[] section pour regrouper des référentiels dans des applications logiques. Lorsque les applications sont définies, le rapport agrégé organise les résultats par application et prend en charge la distribution de rapports vers des destinations externes.

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "PhotoAlbum",
      "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
    }
  ],
  "apps": [
    {
      "identifier": "photo-app",
      "description": "Photo management application",
      "repos": ["PhotoAlbum-Java"],
      "output": {
        "type": "local",
        "path": "/path/to/reports/photo-app"
      }
    }
  ]
}

Chaque entrée d’application prend en charge :

Champ Description Obligatoire
identifier Nom d'affichage unique de l’application. Oui
description Description lisible par l’homme. Non
repos Liste des noms de dépôts appartenant à cette application. Oui
output Où distribuer le rapport d'évaluation de l'application après la génération. Non

Le output champ prend en charge les types de distribution suivants :

Catégorie Description Champs obligatoires
local Copiez des rapports dans un répertoire local. path
git Envoyer (push) des rapports vers un dépôt Git. Le format d’URL est https://github.com/org/repo.git#branch:path. url

Conseil / Astuce

Vous pouvez inclure des référentiels provenant de différentes organisations et utiliser différentes méthodes d’authentification tant que vous avez accès.

L’agent de modernisation détecte automatiquement le fichier repos.json à .github/modernize/repos.json lorsque vous sélectionnez à partir d’un fichier de configuration en mode interactif. Vous pouvez également fournir un chemin personnalisé.

Exécuter l’évaluation par lots

Deux modes d’exécution sont disponibles :

  • Exécution locale : l’agent de modernisation traite les dépôts l’un après l’autre sur votre ordinateur local. Ce mode fonctionne mieux pour un plus petit ensemble d’applications ou pour les tests initiaux. Prend en charge à la fois l’URL Git et les dépôts de chemins d’accès locaux.
  • Délégation de l'agent de Cloud Coding : l’agent de modernisation envoie des tâches aux agents de codage cloud de GitHub pour un traitement parallèle. Ce mode est plus rapide pour les scénarios multi-dépôts.

Important

La délégation de l’Agent de codage cloud nécessite que les dépôts aient des URL de référentiel GitHub (github.com). Les dépôts de chemin d'accès local et les fournisseurs non GitHub (GitLab, Azure DevOps) ne sont pas pris en charge pour la délégation cloud. Utilisez l’exécution locale pour ces référentiels.

Conseil / Astuce

En utilisant la délégation de l’Agent de codage cloud, vous activez l’exécution parallèle sur tous les référentiels. Cette approche réduit considérablement le temps total d’évaluation pour les grands portefeuilles.

Mode interactif (évaluer localement)

  1. Exécutez l’agent de modernisation :

    modernize
    
  2. Sélectionnez Évaluer dans le menu principal.

    Capture d’écran de l’interface CLI De modernisation montrant le menu principal avec l’option Évaluer dans le terminal.

  3. Choisissez comment spécifier vos référentiels cibles. Sélectionnez Dans un fichier de configuration pour utiliser un repos.json fichier.

    Capture d’écran de l’interface CLI Moderniser qui montre la sélection de type source dans le terminal.

    Conseil / Astuce

    Vous pouvez également sélectionner Entrée manuelle pour entrer des chemins d’accès locaux ou des URL Git distantes directement, ou Dossier actif pour évaluer le projet dans votre répertoire actif.

  4. Si le repos.json fichier est détecté à l’emplacement par défaut, l’agent le remplit automatiquement. Sinon, entrez le chemin d’accès à votre fichier de configuration, puis appuyez sur Entrée.

  5. Tous les référentiels sont sélectionnés par défaut. Désélectionnez les référentiels que vous souhaitez ignorer, puis appuyez sur Entrée pour confirmer votre sélection.

    • Utilisez les touches de direction pour naviguer et appuyer sur Espace pour activer/désactiver les dépôts individuels.

    Capture d’écran de La modernisation de l’interface CLI montrant la liste des référentiels dans le terminal.

  6. Choisissez le mode d’exécution. Sélectionnez Évaluer localement.

    Capture d’écran du Modernize CLI montrant le menu du mode évaluation dans le terminal.

  7. Sélectionnez les domaines d’évaluation à analyser. Choisissez parmi Java mise à niveau et Cloud Readiness, puis appuyez sur Enter.

    Capture d’écran de Modernize CLI montrant la sélection du domaine d’évaluation dans le terminal.

  8. Passez en revue et configurez les options d’évaluation. La page de configuration affiche les options regroupées par langue et domaine :

    • Java / GENERAL : Couverture de l’analyse (problèmes uniquement, problèmes et technologies, ou problèmes, technologies et dépendances).
    • Java / JAVA UPGRADE : Le runtime cible est OpenJDK 11, 17 ou 21.
    • Java / CLOUD READINESS : Services de calcul cibles, système d’exploitation cible et conteneurisation.
    • .NET / CLOUD READINESS : Services de calcul cibles.

    Utilisez les touches de direction pour naviguer, appuyez sur Entrée pour modifier une valeur ou sélectionnez Continuer pour continuer avec les paramètres actuels.

    Capture d’écran de Modernize CLI montrant la page de configuration de l’évaluation dans le terminal.

    Conseil / Astuce

    Les valeurs par défaut recommandées fonctionnent pour la plupart des scénarios. Vous devez uniquement modifier ces paramètres si vous avez des exigences spécifiques, telles que le ciblage d’une version JDK spécifique ou d’un service de calcul Azure.

  9. Entrez le chemin de sortie des résultats de l’évaluation ou appuyez sur Entrée pour accepter la valeur par défaut.

  10. L'agent fonctionne automatiquement :

    • Clone les dépôts distants (les dépôts avec chemin local sont utilisés directement).

    • Exécute l’évaluation sur chaque référentiel un par un.

    • Génère des rapports d’évaluation individuels.

      Capture d’écran de Modernize CLI montrant la sortie du terminal lors de la génération de rapports d’évaluation individuels.

    • Crée un rapport agrégé.

      Capture d’écran du Modernize CLI qui montre les résultats de la génération du rapport agrégé dans le terminal.

  11. Une fois l’évaluation terminée, l’agent ouvre automatiquement le rapport agrégé.

    Capture d’écran de Modernize CLI montrant le contenu du rapport agrégé.

Mode interactif (délégation aux agents de codage cloud)

Tout d’abord, configurez les agents de codage cloud dans chaque référentiel d’applications. Pour configurer les agents de programmation dans le cloud, clonez les exemples de dépôts.

Configuration pour les applications .NET

Configurer l’exécution sur Windows pour les applications .NET Framework

Par défaut, l’agent de codage Copilot s’exécute dans un environnement Ubuntu Linux. Pour les applications .NET Framework, vous avez besoin d’un environnement Windows. Pour l’activer, configurez .github/workflows/copilot-setup-steps.yaml dans la main branche de votre référentiel d’applications, comme illustré dans l’exemple suivant :

# 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

En savoir plus sur : Customisation de l'environnement de développement de Copilot avec les étapes de configuration de Copilot

Désactiver le pare-feu

Désactivez le pare-feu intégré de Copilot dans les paramètres de votre référentiel, comme illustré dans l'image suivante :

Capture d'écran de GitHub qui affiche les paramètres du dépôt avec le paramètre Activer le pare-feu réglé sur Désactivé.

Configuration des applications Java

Configurez la section "Modernisation MCP Server" de GitHub Copilot dans l'agent cloud de codage de vos paramètres de référentiel, comme démontré dans l’exemple suivant :

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

Screenshot de GitHub qui affiche les paramètres de l’agent de codage du référentiel avec la section configuration MCP mise en surbrillance.

Étapes

  1. Exécutez l’agent de modernisation :

    modernize
    
  2. Sélectionnez Évaluer dans le menu principal.

    Capture d’écran de l’interface CLI De modernisation montrant le menu principal avec l’option Évaluer dans le terminal.

  3. Choisissez comment spécifier vos référentiels cibles. Sélectionnez Depuis un fichier de configuration pour utiliser un fichier repos.json, ou sélectionnez Entrée manuelle pour saisir directement les URL des dépôts GitHub.

    Capture d’écran de l’interface CLI Moderniser qui montre la sélection de type source dans le terminal.

  4. Si vous avez sélectionné À partir d’un fichier de configuration et que le repos.json fichier est détecté à l’emplacement par défaut, l’agent le remplit automatiquement. Sinon, entrez le chemin d’accès à votre fichier de configuration, puis appuyez sur Entrée.

  5. Tous les référentiels sont sélectionnés par défaut. Désélectionnez les référentiels que vous souhaitez ignorer, puis appuyez sur Entrée pour confirmer votre sélection.

    • Utilisez les touches de direction pour naviguer et appuyer sur Espace pour activer/désactiver les dépôts individuels.

    Capture d’écran de La modernisation de l’interface CLI montrant la liste des référentiels dans le terminal.

  6. Choisissez le mode d’exécution. Sélectionnez Déléguer aux agents cloud.

    Capture d’écran de Modernize CLI montrant le menu Évaluer avec l’option Déléguer aux agents de codage cloud sélectionnée.

    Note

    Lorsque vous déléguerez des agents de codage cloud, les étapes de configuration de la sélection et de l’évaluation du domaine ne sont pas prises en charge. L’agent cloud utilise les configurations par défaut pour exécuter l’évaluation.

  7. Entrez le chemin de sortie des résultats de l’évaluation ou appuyez sur Entrée pour accepter la valeur par défaut.

  8. L’agent délègue automatiquement les tâches d’évaluation pour chaque référentiel aux agents de codage cloud et les exécute dans le cloud en parallèle.

    Capture d’écran de Modernize CLI montrant la progression de la délégation de l'évaluation aux agents de codage Cloud dans le terminal.

    L’agent extrait les résultats de l’évaluation par application vers local et génère le rapport agrégé localement.

    Capture d’écran de Modernize CLI montrant les rapports d'agrégation d'évaluation dans le terminal.

  9. Une fois l’évaluation terminée, l’agent ouvre automatiquement le rapport agrégé.

Mode non interactif (CLI)

Vous pouvez également utiliser le mode non interactif en spécifiant directement des arguments de commande. Utilisez la commande modernize assess :

Évaluez localement à l’aide d’un fichier de configuration de référentiel :

modernize assess --source .github/modernize/repos.json

Évaluez plusieurs référentiels en spécifiant directement des sources :

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2

Évaluer en déléguant aux agents de codage cloud :

modernize assess --source .github/modernize/repos.json --delegate cloud --wait

Pour plus d’informations, consultez évaluer - Commandes CLI.

Présentation du rapport agrégé

Le rapport agrégé fournit une vue complète sur les applications évaluées comme suit :

Tableau de bord

  • Instantané de l'intégrité du portefeuille : nombre total d'applications, nombre d'applications nécessitant des mises à niveau, et nombre total de blocages et de problèmes.
  • Distribution de technologies : quels frameworks sont utilisés et combien d’applications les partagent.
  • Répartition des efforts : indique si la migration globale est une petite ou grande entreprise.

Recommandations

  • Azure Services : cartographie les dépendances actuelles aux équivalents recommandés dans Azure. Les dépendances partagées entre les applications sont décidés une fois. Vous évitez donc de retravailler par application.
  • Plateforme cible : guide le choix d’hébergement, tel que Azure Container Apps et AKS, et présente des opportunités de consolidation.
  • Chemin de mise à niveau : identifie les applications qui ont besoin de mises à niveau de l’infrastructure en tant que prérequis, en séparant le travail de mise à niveau du travail de migration.
  • Vagues de migration : séquence les applications en fonction de la préparation et du risque en phases. Cette approche permet de gagner rapidement, tandis que les applications plus difficiles sont préparées en parallèle.

Matrice d’évaluation des applications

  • Vue d’ensemble rapide de chaque application sur les aspects de l’infrastructure, de la plateforme cible, de la recommandation de mise à niveau, de la répartition des problèmes (obligatoire, potentiel, facultatif), du dimensionnement des efforts, etc.
  • Liens vers des rapports d’application individuels pour descendre dans la hiérarchie si nécessaire.

Résolution des problèmes liés à l’évaluation par lots

Problèmes courants

Erreurs d’accès au référentiel :

  • Vérifiez l'authentification GitHub à l'aide de gh auth status.
  • Vérifiez que vous avez accès à tous les référentiels répertoriés dans repos.json.

Échecs de clonage :

  • Vérifiez que les URL du référentiel dans repos.json sont correctes et accessibles.
  • Vérifiez que vous disposez des autorisations d’accès appropriées pour tous les référentiels.
  • Vérifiez la connectivité réseau et les paramètres VPN.

Échecs d’évaluation :

  • Vérifiez si le référentiel contient des projets Java ou .NET valides.
  • Vérifiez que les fichiers de build existent, tels que pom.xml, , build.gradle*.csproj, *.sln, ou *.slnx.
  • Passez en revue les messages d’erreur dans la sortie de la console.

Problèmes de délégation de l’Agent de codage cloud :

  • Vérifiez que vous disposez des autorisations appropriées pour créer des flux de travail GitHub Actions.
  • Vérifiez GitHub Actions autorisations et limites de quota pour votre organisation.
  • Pour les applications .NET Framework, vérifiez que la configuration de l'exécuteur Windows est correctement définie.
  • Vérifiez la configuration de votre serveur MCP.

Étapes suivantes

Une fois l’évaluation par lots terminée, vous pouvez :

Poursuivez le flux de travail de modernisation :

En savoir plus :

Fournir des commentaires

Nous apprécions vos commentaires ! Si vous avez des commentaires sur l’évaluation par lots ou l’agent de modernisation, créez un problème dans le dépôt github-copilot-appmod ou utilisez le formulaire de commentaires de modernisation GitHub Copilot.