Condividi tramite


Valutazione batch con l'agente di modernizzazione di GitHub Copilot

La valutazione batch consente di analizzare più applicazioni contemporaneamente, offrendo una panoramica completa del panorama della modernizzazione nelle applicazioni. Questo articolo illustra il processo di valutazione efficiente di più repository.

La valutazione batch è particolarmente utile per la pianificazione della migrazione perché consente di valutare in modo efficiente la conformità e i requisiti di varie applicazioni contemporaneamente. Usando la valutazione batch, è possibile valutare contemporaneamente repository diversi e ottenere report di valutazione dettagliati per ogni applicazione. Produce due tipi di report per supportare la pianificazione della migrazione:

  • Report per app: fornisce informazioni dettagliate su tutti i problemi di modernizzazione identificati a livello di singolo repository.
  • Report aggregato: presenta una prospettiva complessiva di tutte le applicazioni valutate, che offre informazioni dettagliate di riepilogo, raccomandazioni su servizi di Azure, piattaforme di destinazione e percorsi di aggiornamento. Inoltre, il report aggregato include collegamenti per facilitare l'accesso a ogni report dell'app.

La valutazione batch offre i vantaggi seguenti:

  • Visibilità tra applicazioni:

    • Report aggregati: ottenere una visualizzazione completa tra le applicazioni.
    • Analisi tra più repository: Identificare modelli e dipendenze comuni tra applicazioni.
    • Informazioni dettagliate sulla definizione delle priorità: comprendere quali applicazioni necessitano di attenzione immediata.
  • Scalabilità ed efficienza:

    • Elaborazione parallela: usare agenti di codifica cloud per elaborare più repository contemporaneamente.
    • Flussi di lavoro automatizzati: integrazione con pipeline CI/CD per la valutazione pianificata.
    • Risparmio di tempo: ridurre il tempo totale di valutazione da settimane a ore.

Prerequisiti

  • Modernizzare la CLI.
  • Accesso a tutti i repository da valutare.
  • L'autenticazione di GitHub è configurata (gh auth login).

Configurare gli archivi

Per abilitare la valutazione batch, creare un .github/modernize/repos.json file nella directory di lavoro in cui sono elencati tutti i repository da valutare.

Assicurarsi di avere le autorizzazioni appropriate per i repository o crearne una copia tramite fork.

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

Configurazione del repository

Ogni voce richiede:

  • name: nome descrittivo per il repository (usato nei report e nei dashboard).
  • url: URL Git clone in formato HTTPS.

Suggerimento

È possibile includere repository di organizzazioni diverse e usare metodi di autenticazione diversi purché si abbia accesso.

Percorso del file

È necessario inserire il repos.json file in .github/modernize/repos.json.

L'agente di modernizzazione rileva automaticamente questo file quando esegue operazioni batch.

Eseguire la valutazione batch

Sono disponibili due modalità di esecuzione:

  • Esecuzione locale: l'agente di modernizzazione elabora i repository uno dopo l'altro nel computer locale. Questa modalità funziona meglio per un set più piccolo di applicazioni o per i test iniziali.
  • Delega dell'agente di codifica cloud: l'agente di modernizzazione invia attività agli agenti di codifica cloud GitHub per l'elaborazione parallela nel cloud. Questa modalità è più veloce per scenari multi-repo.

Suggerimento

Usando la delega dell'agente di codifica cloud, si abilita l'esecuzione parallela in tutti i repository. Questo approccio riduce significativamente il tempo totale di valutazione per i portafogli di grandi dimensioni.

Modalità interattiva (valutazione locale)

  1. Eseguire l'agente di modernizzazione:

    modernize
    
  2. L'agente rileva il repos.json file e visualizza l'elenco dei repository:

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra l'elenco di repository nel terminale.

  3. Selezionare i repository da valutare e premere Enter per confermare la selezione.

    • Premi Ctrl+A per selezionare tutti i repository.
    • Usare i tasti di direzione per spostarsi e premere Space per selezionare singoli repository.
  4. Selezionare 1. Valutare l'applicazione dal menu principale.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra il menu modernize nel terminale.

  5. Per eseguire la valutazione, scegliere di valutare localmente o delegare gli agenti di codifica cloud. Selezionare 1. Valutare localmente.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra il menu di valutazione nel terminale.

  6. L'agente opera automaticamente:

    • Clona tutti i repository selezionati.

    • Esegue la valutazione in ogni repository uno alla volta.

    • Genera report di valutazione individuali.

      Screenshot dell'interfaccia della riga di comando di Modernize che mostra l'output della generazione di singoli report di valutazione nel terminale.

    • Crea un report aggregato.

      Screenshot dell'interfaccia della riga di comando di Modernize che mostra l'output della generazione di report aggregati nel terminale.

  7. Al termine della valutazione, l'agente apre automaticamente il report aggregato.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra il contenuto del report aggregato.

Modalità interattiva (delega agli agenti di codifica cloud)

Prima di tutto, configurare gli agenti di codifica cloud in ogni repository di applicazioni. Per configurare i Cloud Coding Agents, effettuare un fork dei repository di esempio.

Configurazione per le applicazioni .NET

Configurare per l'esecuzione in Windows per applicazioni .NET Framework

Per impostazione predefinita, l'agente di codifica Copilot viene eseguito in un ambiente Ubuntu Linux. Per le applicazioni .NET Framework, è necessario un ambiente Windows. Per abilitarla, configurare .github/workflows/copilot-setup-steps.yaml nel main ramo del repository dell'applicazione, come illustrato nell'esempio seguente:

# 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

Altre informazioni sono disponibili in: Personalizzazione dell'ambiente di sviluppo di Copilot con i passaggi di configurazione di Copilot

Disabilitare il firewall

Disabilitare il firewall integrato dell'agente di codifica Copilot nelle impostazioni del repository, come illustrato nell'immagine seguente:

Screenshot di GitHub che mostra le impostazioni del repository con l'impostazione Abilita firewall impostata su Disattivato.

Configurazione per applicazioni Java

Configurare gitHub Copilot Modernization MCP Server nella sezione Cloud Coding Agent delle impostazioni del repository, come illustrato nell'esempio seguente:

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

Screenshot di GitHub che mostra le impostazioni dell'agente di codifica del repository con la sezione di configurazione MCP evidenziata.

Gradi

  1. Eseguire l'agente di modernizzazione:

    modernize
    
  2. L'agente rileva il repos.json file e visualizza l'elenco dei repository:

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra l'elenco di repository nel terminale.

  3. Selezionare i repository da valutare e premere Enter per confermare la selezione.

    • Premi Ctrl+A per selezionare tutti i repository.
    • Usare i tasti di direzione per spostarsi e premere Space per selezionare singoli repository.
  4. Selezionare 1. Valutare le applicazioni dal menu principale.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra il menu modernize nel terminale.

  5. Per eseguire la valutazione, selezionare 2. Delegare agli agenti di codifica cloud.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra il menu di valutazione con l'opzione Delega ad agenti di codifica cloud selezionata.

  6. L'agente delega automaticamente le attività di valutazione per ogni repository agli agenti di codifica cloud e le esegue nel cloud in parallelo.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra l'output dello stato di avanzamento della delega della valutazione agli agenti di codifica cloud nel terminale.

    L'agente recupera quindi i risultati della valutazione delle singole app localmente e genera il report aggregato localmente.

    Screenshot dell'interfaccia della riga di comando di Modernize che mostra l'aggregazione dei report di valutazione nel terminale.

  7. Al termine della valutazione, l'agente apre automaticamente il report aggregato.

Modalità non interattiva (interfaccia della riga di comando)

È anche possibile usare la modalità non interattiva specificando direttamente gli argomenti di comando. Usare il comando modernize assess:

Valutare in locale:

modernize assess --multi-repo

Valutare delegando gli agenti di codifica cloud:

modernize assess --delegate cloud

Per altre informazioni, vedere Valutare - Comandi dell'interfaccia della riga di comando.

Informazioni sul report aggregato

Il report aggregato offre una visualizzazione completa delle applicazioni valutate nel modo seguente:

Dashboard

  • Snapshot dell'integrità del portfolio: il numero totale di app, quante necessitano di aggiornamenti, e i conteggi aggregati di blocchi e problemi.
  • Distribuzione della tecnologia: quali framework sono in uso e quante app le condividono.
  • Distribuzione del lavoro: se la migrazione complessiva è una piccola o grande impresa.

Raccomandazioni

  • Servizi di Azure: esegue il mapping delle dipendenze correnti agli equivalenti di Azure consigliati. Le dipendenze condivise tra le app vengono decise una sola volta, in modo da evitare la rielaborazione per app.
  • Piattaforma di destinazione: guida nella scelta di hosting, ad esempio Container Apps rispetto ad Azure Kubernetes Service (AKS), e identifica opportunità di consolidamento.
  • Percorso di aggiornamento: identifica le app che necessitano di aggiornamenti del framework come prerequisito, separando il lavoro di aggiornamento dal lavoro di migrazione.
  • Onde di migrazione: sequenzia le app in base all'idoneità e al rischio in fasi. Questo approccio consente la vittoria anticipata, mentre le app più difficili vengono preparate in parallelo.

Matrice di valutazione delle applicazioni

  • Panoramica rapida per ogni applicazione su aspetti del framework, piattaforma di destinazione, raccomandazione di aggiornamento, scomposizione dei problemi (obbligatorio, potenziale, facoltativo), ridimensionamento e altro ancora.
  • Collegamenti a singoli report dell'app per il drill-down quando necessario.

Risoluzione dei problemi relativi all'analisi batch

Problemi comuni

Errori di accesso al repository:

  • Verificare l'autenticazione di GitHub usando gh auth status.
  • Assicurarsi di avere accesso a tutti i repository elencati in repos.json.

Errori di clonazione:

  • Verificare che gli URL del repository in repos.json siano corretti e accessibili.
  • Assicurarsi di disporre delle autorizzazioni di accesso appropriate per tutti i repository.
  • Controllare la connettività di rete e le impostazioni VPN.

Errori di valutazione:

  • Controllare se il repository contiene progetti Java o .NET validi.
  • Verificare che i file di compilazione esistano, ad esempio pom.xml, build.gradle, *.csprojo *.sln.
  • Esaminare i messaggi di errore nell'output della console.

Problemi di delega dell'agente di codifica cloud:

  • Assicurarsi di avere le autorizzazioni appropriate per creare flussi di lavoro di GitHub Actions.
  • Controllare le autorizzazioni e i limiti di quota di GitHub Actions per l'organizzazione.
  • Per le app .NET Framework, assicurarsi che la configurazione di Windows Runner sia impostata correttamente.
  • Controllare la configurazione del server MCP.

Passaggi successivi

Dopo aver completato la valutazione batch, è possibile:

Continuare il flusso di lavoro di modernizzazione:

Altre informazioni:

Inviare commenti

Valiamo l'input! Se si hanno commenti e suggerimenti sulla valutazione batch o sull'agente di modernizzazione, creare un problema nel repository github-copilot-appmod o usare il modulo di feedback sulla modernizzazione di GitHub Copilot.