Batch-evaluatie met de GitHub Copilot moderniseringsagent

Met Batch-evaluatie kunt u meerdere toepassingen tegelijk analyseren, zodat u een uitgebreid overzicht krijgt van het moderniseringslandschap in uw toepassingen. In dit artikel wordt u begeleid bij het proces van het efficiënt beoordelen van meerdere opslagplaatsen.

Batch-evaluatie is vooral waardevol voor migratieplanning, omdat u hiermee efficiënt de gereedheid en vereisten van verschillende toepassingen tegelijk kunt beoordelen. Met behulp van batchevaluatie kunt u verschillende opslagplaatsen tegelijk evalueren en gedetailleerde evaluatierapporten voor elke toepassing verkrijgen. Het produceert twee soorten rapporten ter ondersteuning van uw migratieplanning:

  • Per app-rapport: biedt gedetailleerde inzichten in alle moderniseringsproblemen die zijn geïdentificeerd op het niveau van de afzonderlijke opslagplaats.
  • Aggregated report: Biedt een algemeen perspectief van alle geëvalueerde toepassingen, biedt overzichtsinzichten, aanbevelingen voor Azure services, doelplatforms en upgradepaden. Daarnaast bevat het samengevoegde rapport snelkoppelingen voor eenvoudige toegang tot elk rapport per app.

Batch-evaluatie biedt de volgende voordelen:

  • Zichtbaarheid tussen toepassingen

    • Geaggregeerde rapporten: krijg een uitgebreide weergave van toepassingen.
    • Analyse tussen opslagplaatsen: algemene patronen en afhankelijkheden in toepassingen identificeren.
    • Prioriteitsinzichten: inzicht in welke toepassingen direct aandacht nodig hebben.
  • Schaal en efficiëntie:

    • Parallelle verwerking: Gebruik Cloud Coding Agents om meerdere opslagplaatsen tegelijk te verwerken.
    • Geautomatiseerde werkstromen: integreren met CI/CD-pijplijnen voor geplande evaluatie.
    • Tijdbesparing: Verminder de totale evaluatietijd van weken tot uren.

Vereiste voorwaarden

  • De CLI moderniseren.
  • Toegang tot alle opslagplaatsen die u wilt evalueren.
  • GitHub verificatie is geconfigureerd (gh auth login).

Opslagplaatsen configureren

De moderniseringsagent ondersteunt meerdere manieren om de opslagplaatsen op te geven die u wilt evalueren:

  • Huidige map: Evalueer het project in uw huidige werkmap.
  • Handmatige invoer: voer lokale mappaden of externe Git-URL's rechtstreeks in.
  • Configuratiebestand voor opslagplaatsen: gebruik een JSON-configuratiebestand waarin alle opslagplaatsen worden vermeld.

Configuratiebestand voor opslagplaats

Voor batchbewerkingen in veel opslagplaatsen maakt u een JSON-configuratiebestand om alle opslagplaatsen weer te geven. Maak het bestand .github/modernize/repos.json bijvoorbeeld in uw werkmap, of geef een aangepast pad op.

Zorg ervoor dat je de juiste machtigingen hebt voor de repositories of maak een fork ervan.

Eenvoudige indeling (matrix van opslagplaatsen):

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

Volledige indeling (met vertakking en lokale paden):

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

Elke opslagplaatsvermelding ondersteunt de volgende velden:

Veld Beschrijving Verplicht
name Een beschrijvende naam voor de opslagplaats (gebruikt in rapporten en dashboards). Ja
url Git klonen-URL in HTTPS- of SSH-formaat. Een van url of path
path Absoluut pad naar lokale map. Een van url of path
branch Vertakking die moet worden uitgecheckt na het klonen. No
description Leesbare beschrijving. No

Volledige indeling met app-groepering (optioneel, voor georganiseerde rapportage):

U kunt een apps[] sectie toevoegen om opslagplaatsen te groeperen in logische toepassingen. Wanneer apps zijn gedefinieerd, organiseert het samengevoegde rapport resultaten per toepassing en ondersteunt het rapportdistributie naar externe bestemmingen.

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

Elke app-vermelding ondersteunt:

Veld Beschrijving Verplicht
identifier Unieke weergavenaam van de toepassing. Ja
description Leesbare beschrijving. No
repos Lijst met namen van opslagplaatsen die deel uitmaken van deze app. Ja
output Waar u het evaluatierapport van deze app na het genereren kunt distribueren. No

Het output veld ondersteunt de volgende distributietypen:

Typ Beschrijving Vereiste velden
local Rapporten kopiëren naar een lokale map. path
git Push rapporten naar een Git-opslagplaats. De URL-indeling is https://github.com/org/repo.git#branch:path. url

Aanbeveling

U kunt opslagplaatsen van verschillende organisaties opnemen en verschillende verificatiemethoden gebruiken zolang u toegang hebt.

De moderniseringsagent detecteert het repos.json bestand .github/modernize/repos.json automatisch wanneer u Een configuratiebestand selecteert bij interactieve modus. U kunt ook een aangepast pad opgeven.

Batch-evaluatie uitvoeren

Er zijn twee uitvoeringsmodi beschikbaar:

  • Lokale uitvoering: de moderniseringsagent verwerkt opslagplaatsen na elkaar op uw lokale computer. Deze modus werkt het beste voor een kleinere set toepassingen of voor eerste tests. Ondersteunt zowel Git-URL als lokale padopslagplaatsen.
  • Cloud Coding Agent-delegatie: De moderniseringsagent verzendt taken naar GitHub Cloud Coding Agents voor parallelle verwerking in de cloud. Deze modus is sneller voor scenario's met meerdere repositories.

Belangrijk

Opslagplaatsen voor de overdracht van cloud-coderingsagenten moeten GitHub (github.com) opslagplaats-URL's hebben. Repositoriums voor lokale paden en niet-GitHub-providers (GitLab, Azure DevOps) worden niet ondersteund voor delegatie in de cloud. Lokale uitvoering gebruiken voor deze opslagplaatsen.

Aanbeveling

Door cloudcoderingsagentdelegering te gebruiken, schakelt u parallelle uitvoering in alle opslagplaatsen in. Deze aanpak vermindert de totale beoordelingstijd voor grote portfolio's aanzienlijk.

Interactieve modus (lokaal evalueren)

  1. Voer de moderniseringsagent uit:

    modernize
    
  2. Selecteer Evalueren in het hoofdmenu.

    Schermopname van Modernize CLI met het hoofdmenu met de optie Evalueren in de terminal.

  3. Kies hoe u de doelopslagplaatsen opgeeft. Selecteer in een configuratiebestand om een repos.json bestand te gebruiken.

    Schermopname van De CLI moderniseren waarin de selectie van het brontype in de terminal wordt weergegeven.

    Aanbeveling

    U kunt ook handmatige invoer selecteren om lokale paden of externe Git-URL's rechtstreeks in te voeren, of de huidige map om het project in uw huidige map te evalueren.

  4. Als het repos.json bestand wordt gedetecteerd op de standaardlocatie, vult de agent het automatisch in. Anders voert u het pad naar het configuratiebestand in en drukt u op Enter.

  5. Alle opslagplaatsen zijn standaard geselecteerd. Deselecteer de repositories die u wilt overslaan en druk op Enter om uw selectie te bevestigen.

    • Gebruik pijltoetsen om te navigeren en druk op Spatiebalk om afzonderlijke opslagplaatsen in te schakelen.

    Schermopname van Modernize CLI met de lijst met opslagplaatsen in de terminal.

  6. Kies de uitvoeringsmodus. Selecteer Lokaal evalueren.

    Schermopname van Modernize CLI die het menu voor beoordelingsmodus in de terminal toont.

  7. Selecteer de evaluatiedomeinen die u wilt analyseren. Kies uit Java upgrade en Cloud Readiness en druk op Enter.

    Schermopname van Modernize CLI waarin de selectie van het evaluatiedomein in de terminal wordt weergegeven.

  8. Controleer en configureer de instellingen voor beoordeling. Op de configuratiepagina ziet u opties gegroepeerd op taal en domein:

    • Java / GENERAL: Analysedekking (alleen probleem, problemen en problemen & Technologieën of problemen, technologieën & Afhankelijkheden).
    • Java /JAVA UPGRADE: Target Runtime (OpenJDK 11, 17 of 21).
    • Java / CLOUD READINESS: Doel-computeservices, Doel-besturingssysteem en containerisatie.
    • .NET / CLOUD GEREEDHEID: Doelcomputatiediensten.

    Gebruik de pijltoetsen om te navigeren, druk op Enter om een waarde te wijzigen of selecteer Doorgaan om door te gaan met de huidige instellingen.

    Schermopname van Modernize CLI met de pagina evaluatieconfiguratie in de terminal.

    Aanbeveling

    De aanbevolen standaardinstellingen werken voor de meeste scenario's. U hoeft deze instellingen alleen te wijzigen als u specifieke vereisten hebt, zoals het doel van een bepaalde JDK-versie of Azure compute-service.

  9. Voer het uitvoerpad voor evaluatieresultaten in of druk op Enter om de standaardwaarde te accepteren.

  10. De agent voert automatisch uit:

    • Kloont externe opslagplaatsen (lokale padopslagplaatsen worden rechtstreeks gebruikt).

    • Voert een evaluatie uit op elke opslagplaats, één voor één.

    • Genereert individuele evaluatierapporten.

      Schermopname van de Modernize CLI met de uitvoer van het genereren van een afzonderlijk evaluatierapport in de terminal.

    • Hiermee maakt u een samengevoegd rapport.

      Schermopname van Modernize CLI met de uitvoer van de geaggregeerde rapportgeneratie in de terminal.

  11. Wanneer de evaluatie is voltooid, opent de agent automatisch het samengevoegde rapport.

    Schermopname van de Modernize CLI die de inhoud van het geaggregeerde rapport toont.

Interactieve modus (delegeren aan Cloud Coding Agents)

Configureer eerst Cloud Coding Agents in elke toepassingsopslagplaats. Als u Cloud Coding Agents wilt configureren, moet u de voorbeeldopslagplaatsen forkeren.

Configuratie voor .NET toepassingen

Configureren voor uitvoering op Windows voor .NET Framework-toepassingen

Standaard wordt de Copilot Coderingsagent uitgevoerd in een Ubuntu Linux-omgeving. Voor .NET Framework-toepassingen hebt u een Windows-omgeving nodig. Als u dit wilt inschakelen, configureert u .github/workflows/copilot-setup-steps.yaml in de main vertakking van uw toepassingsopslagplaats, zoals in het volgende voorbeeld wordt weergegeven.

# 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

Meer informatie vindt u in: Aanpassen aan de ontwikkelomgeving van Copilot met Copilot installatiestappen

Firewall uitschakelen

Schakel in uw repository-instellingen de geïntegreerde firewall van de Copilot-agent uit, zoals te zien in de onderstaande afbeelding.

Schermafbeelding van GitHub waarin de instellingen van de opslagplaats worden weergegeven met de instelling Firewall inschakelen ingesteld op Off.

Configuratie voor Java toepassingen

Configureer GitHub Copilot Modernization MCP Server in de sectie Cloud Coding Agent van uw opslagplaatsinstellingen, zoals wordt weergegeven in het volgende voorbeeld:

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

Schermafbeelding van GitHub waarin de instellingen voor de coderingsagent voor de opslagplaats worden weergegeven met de sectie MCP-configuratie gemarkeerd.

Steps

  1. Voer de moderniseringsagent uit:

    modernize
    
  2. Selecteer Evalueren in het hoofdmenu.

    Schermopname van Modernize CLI met het hoofdmenu met de optie Evalueren in de terminal.

  3. Kies hoe u de doelopslagplaatsen opgeeft. Selecteer Van een configuratiebestand om een bestand repos.json te gebruiken of selecteer Manual input om rechtstreeks URL's voor GitHub opslagplaats in te voeren.

    Schermopname van De CLI moderniseren waarin de selectie van het brontype in de terminal wordt weergegeven.

  4. Als u Van een configuratiebestand hebt geselecteerd en het repos.json bestand wordt gedetecteerd op de standaardlocatie, vult de agent het automatisch in. Anders voert u het pad naar het configuratiebestand in en drukt u op Enter.

  5. Alle opslagplaatsen zijn standaard geselecteerd. Deselecteer de repositories die u wilt overslaan en druk op Enter om uw selectie te bevestigen.

    • Gebruik pijltoetsen om te navigeren en druk op Spatiebalk om afzonderlijke opslagplaatsen in te schakelen.

    Schermopname van Modernize CLI met de lijst met opslagplaatsen in terminal.

  6. Kies de uitvoeringsmodus. Selecteer Delegeren naar cloud-agents.

    Schermopname van de Modernize CLI met het evaluatiemenu, met de optie 'Deleguer naar Cloud Coding Agents' geselecteerd.

    Opmerking

    Wanneer u delegeert aan Cloud Coding Agents, worden de configuratiestappen voor domeinselectie en evaluatie niet ondersteund. De cloudagent maakt gebruik van de standaardconfiguraties om evaluatie uit te voeren.

  7. Voer het uitvoerpad voor evaluatieresultaten in of druk op Enter om de standaardwaarde te accepteren.

  8. De agent delegeert automatisch evaluatietaken voor elke opslagplaats naar Cloud Coding Agents en voert deze parallel uit in de cloud.

    Schermopname van Modernize CLI met de uitvoer van de voortgang van het delegeren van evaluatie naar Cloud Coding Agents in de terminal.

    De agent haalt de resultaten per app-evaluatie terug naar lokaal en genereert het geaggregeerde rapport lokaal.

    Schermopname van Modernize CLI met de Aggregating Assessment Reports in de terminal.

  9. Wanneer de evaluatie is voltooid, opent de agent automatisch het samengevoegde rapport.

Niet-interactieve modus (CLI)

U kunt ook de niet-interactieve modus gebruiken door opdrachtargumenten rechtstreeks op te geven. Gebruik de opdracht modernize assess:

Lokaal evalueren met behulp van een configuratiebestand voor de opslagplaats:

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

Evalueer meerdere opslagplaatsen door rechtstreeks bronnen op te geven:

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

Beoordeel door delegeren aan cloudcoderingsagents:

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

Zie evalueren - CLI-opdrachten voor meer informatie.

Inzicht in het samengevoegde rapport

Het samengevoegde rapport biedt als volgt een uitgebreide weergave van geëvalueerde toepassingen:

Dashboard

  • Momentopname van portfoliostatus: totaal aantal apps, hoeveel upgrades nodig zijn en het aantal aggregatieblokkeringen en aantal problemen.
  • Technologiedistributie: welke frameworks worden gebruikt en hoeveel apps ze delen.
  • Verdeling van de inspanning: of de algehele migratie een kleine of grote onderneming is.

Aanbevelingen

  • Azure Services: wijst huidige afhankelijkheden toe aan aanbevolen Azure equivalenten. Gedeelde afhankelijkheden tussen apps worden eenmaal besloten, dus u voorkomt dat u per app opnieuw werkt.
  • Doelplatform: begeleidt hostingkeuze, zoals Azure Container Apps versus AKS, en biedt consolidatiemogelijkheden.
  • Upgradepad: identificeert welke apps frameworkupgrades nodig hebben als een vereiste, waardoor het upgradewerk van het migratiewerk wordt gescheiden.
  • Migratiegolven: sequentieert apps op gereedheid en risico in fasen. Deze aanpak maakt vroege overwinningen mogelijk, terwijl hardere apps parallel worden voorbereid.

Matrix voor toepassingsevaluatie

  • Snel overzicht voor elke toepassing op aspecten van framework, doelplatform, upgradeaanbeveling, uitsplitsing van problemen (verplicht, potentieel, optioneel), grootte van inspanning en meer.
  • Koppelingen naar afzonderlijke app-rapporten voor inzoomen wanneer dat nodig is.

Problemen met batchevaluatie oplossen

Veelvoorkomende problemen

Fouten bij toegang tot opslagplaatsen:

  • Controleer GitHub verificatie met behulp van gh auth status.
  • Zorg ervoor dat u toegang hebt tot alle opslagplaatsen die worden vermeld in repos.json.

Kloonfouten:

  • Controleer of de URL's van de opslagplaats in repos.json correct en toegankelijk zijn.
  • Zorg ervoor dat u over de juiste toegangsmachtigingen voor alle opslagplaatsen beschikt.
  • Controleer uw netwerkconnectiviteit en VPN-instellingen.

Evaluatiefouten:

  • Controleer of de opslagplaats geldige Java of .NET projecten bevat.
  • Controleer of buildbestanden bestaan, zoals pom.xml, build.gradle, *.csproj, *.sln of *.slnx.
  • Bekijk foutberichten in de console-uitvoer.

Problemen met delegatie van Cloud Coding Agent:

  • Zorg ervoor dat u over de juiste machtigingen beschikt om GitHub Actions werkstromen te maken.
  • Controleer GitHub Actions machtigingen en quotumlimieten voor uw organisatie.
  • Controleer voor .NET Framework-apps of de Windows Runner-configuratie juist is ingesteld.
  • Controleer de configuratie van uw MCP-server.

Volgende stappen 

Nadat de batch-evaluatie is voltooid, kunt u het volgende doen:

Ga door met de moderniseringswerkstroom:

Meer informatie:

Feedback geven

We waarderen uw invoer! Als u feedback hebt over batchevaluatie of de moderniseringsagent, maak dan een probleem op in de github-copilot-appmod-opslagplaats of gebruik het GitHub Copilot feedbackformulier voor modernisering.