Batchutvärdering med GitHub Copilot moderniseringsagent

Med Batch-utvärdering kan du analysera flera program samtidigt, vilket ger en omfattande vy över moderniseringslandskapet i dina program. Den här artikeln vägleder dig genom processen att utvärdera flera lagringsplatser effektivt.

Batchutvärdering är särskilt värdefull för migreringsplanering eftersom du på ett effektivt sätt kan utvärdera beredskapen och kraven för olika program samtidigt. Genom att använda batchutvärdering kan du utvärdera olika lagringsplatser samtidigt och få detaljerade utvärderingsrapporter för varje program. Den skapar två typer av rapporter som stöder migreringsplaneringen:

  • Per apprapport: Ger detaljerade insikter om alla moderniseringsproblem som identifierats på enskild lagringsplatsnivå.
  • Aggregated report: Presenterar ett övergripande perspektiv på alla utvärderade program, med sammanfattningsinsikter, rekommendationer om Azure tjänster, målplattformar och uppgraderingsvägar. Dessutom innehåller den aggregerade rapporten genvägar för enkel åtkomst till varje apprapport.

Batch-utvärdering ger följande fördelar:

  • Synlighet mellan program:

    • Sammanställda rapporter: Få en omfattande vy över program.
    • Analys mellan lagringsplatser: Identifiera vanliga mönster och beroenden mellan program.
    • Prioriteringsinsikter: Förstå vilka program som behöver omedelbar uppmärksamhet.
  • Skala och effektivitet:

    • Parallell bearbetning: Använd molnkodningsagenter för att bearbeta flera lagringsplatser samtidigt.
    • Automatiserade arbetsflöden: Integrera med CI/CD-pipelines för schemalagd utvärdering.
    • Tidsbesparingar: Minska den totala utvärderingstiden från veckor till timmar.

Förutsättningar

  • Modernisera CLI.
  • Åtkomst till alla lagringsplatser som du vill utvärdera.
  • GitHub autentisering har konfigurerats (gh auth login).

Konfigurera lagringsplatser

Moderniseringsagenten har stöd för flera sätt att ange de lagringsplatser som du vill utvärdera:

  • Aktuell mapp: Utvärdera projektet i den aktuella arbetskatalogen.
  • Manuell inmatning: Ange lokala katalogsökvägar eller git-fjärr-URL:er direkt.
  • Databaskonfigurationsfil: Använd en JSON-konfigurationsfil som visar alla lagringsplatser.

Databaskonfigurationsfil

För batchåtgärder över många lagringsplatser skapar du en JSON-konfigurationsfil för att visa en lista över alla lagringsplatser. Du kan till exempel skapa det .github/modernize/repos.json i din arbetskatalog eller ange en anpassad sökväg.

Kontrollera att du har rätt behörigheter för lagringsplatserna eller förgrena dem.

Enkelt format (matris med lagringsplatser):

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

Fullständigt format (med gren- och lokala sökvägar):

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

Varje lagringsplatspost stöder följande fält:

Fält Beskrivning Obligatoriskt
name Ett eget namn för lagringsplatsen (används i rapporter och instrumentpaneler). Ja
url Git-klon-URL i HTTPS- eller SSH-format. En av url eller path
path Absolut lokal katalogsökväg. En av url eller path
branch Förgrena för att checka ut efter kloning. No
description Beskrivning som kan läsas av människor. No

Fullständigt format med appgruppering (valfritt, för organiserad rapportering):

Du kan lägga till ett apps[] avsnitt för att gruppera lagringsplatser i logiska program. När appar definieras ordnar den aggregerade rapporten resultat efter program och stöder rapportdistribution till externa mål.

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

Varje app-inlägg stödjer:

Fält Beskrivning Obligatoriskt
identifier Unikt visningsnamn för programmet. Ja
description Beskrivning som kan läsas av människor. No
repos Lista över lagringsplatsnamn som tillhör den här appen. Ja
output Var appens utvärderingsrapport ska distribueras efter generering. No

Fältet output stöder följande distributionstyper:

Type Beskrivning Obligatoriska fält
local Kopiera rapporter till en lokal katalog. path
git Skicka rapporter till en Git-lagringsplats. URL-formatet är https://github.com/org/repo.git#branch:path. url

Tips/Råd

Du kan inkludera lagringsplatser från olika organisationer och använda olika autentiseringsmetoder så länge du har åtkomst.

Moderniseringsagenten identifierar automatiskt repos.json-filen vid .github/modernize/repos.json när du väljer Från en konfigfil i interaktivt läge. Du kan också ange en anpassad sökväg.

Köra batchutvärdering

Två körningslägen är tillgängliga:

  • Lokal körning: Moderniseringsagenten bearbetar lagringsplatser en efter en på den lokala datorn. Det här läget fungerar bäst för en mindre uppsättning program eller för inledande testning. Stöder både Git-URL:er och lokala sökvägslagringsplatser.
  • Cloud Coding Agent-delegering: Moderniseringsagenten skickar uppgifter till GitHub Molnkodningsagenter för parallell bearbetning i molnet. Det här läget är snabbare för flerepo-scenarier.

Viktigt!

Cloud Coding Agent-delegering kräver att lagringsplatser har url:er för GitHub (github.com) lagringsplats. Lokala sökvägslagringsplatser och icke-GitHub providers (GitLab, Azure DevOps) stöds inte för molndelegering. Använd lokal exekvering för dessa lagringsplatser.

Tips/Råd

Genom att använda Cloud Coding Agent-delegering aktiverar du parallell körning över alla lagringsplatser. Den här metoden minskar avsevärt den totala utvärderingstiden för stora portföljer.

Interaktivt läge (utvärdera lokalt)

  1. Kör moderniseringsagenten:

    modernize
    
  2. Välj Utvärdera på huvudmenyn.

    Skärmbild av Modernisera CLI som visar huvudmenyn med alternativet Utvärdera i terminalen.

  3. Välj hur du vill ange dina mållagringsplatser. Välj Från en konfigurationsfil för att använda en repos.json fil.

    Skärmbild av Modernisera CLI som visar val av källtyp i terminalen.

    Tips/Råd

    Du kan också välja Manuella indata för att ange lokala sökvägar eller fjärranslutna Git-URL:er direkt, eller Aktuell mapp för att utvärdera projektet i den aktuella katalogen.

  4. repos.json Om filen identifieras på standardplatsen fyller agenten automatiskt i den. Annars anger du sökvägen till konfigurationsfilen och trycker på Retur.

  5. Alla lagringsplatser är markerade som standard. Avmarkera alla lagringsplatser som du vill hoppa över och tryck sedan på Retur för att bekräfta ditt val.

    • Använd piltangenterna för att navigera och tryck på Blanksteg för att växla enskilda lagringsutrymmen.

    Skärmbild av Modernisera CLI som visar lagringsplatsens lista i terminalen.

  6. Välj körningsläge. Välj Utvärdera lokalt.

    Skärmbild av Modernisera CLI som visar menyn för utvärderingsläge i terminalen.

  7. Välj de utvärderingsdomäner som ska analyseras. Välj mellan Java uppgradering och Molnberedskap och tryck sedan på Enter.

    Skärmbild av Modernisera CLI som visar val av utvärderingsdomän i terminalen.

  8. Granska och konfigurera utvärderingsalternativen. På konfigurationssidan visas alternativ grupperade efter språk och domän:

    • Java/GENERAL: Analystäckning (endast problem, problem och teknologier, eller problem, teknologier och beroenden).
    • Java/JAVA UPGRADE: Target Runtime (OpenJDK 11, 17 eller 21).
    • Java / CLOUD READINESS: Target Compute Services, Target Operating System och Containerisering.
    • .NET/CLOUD READINESS: Target Compute Services.

    Använd piltangenterna för att navigera, tryck på Retur för att ändra ett värde eller välj Fortsätt för att fortsätta med de aktuella inställningarna.

    Skärmbild av Modernisera CLI som visar sidan för utvärderingskonfiguration i terminalen.

    Tips/Råd

    De rekommenderade standardvärdena fungerar för de flesta scenarier. Du behöver bara ändra de här inställningarna om du har specifika krav, till exempel att rikta in dig på en viss JDK-version eller Azure beräkningstjänst.

  9. Ange utdatasökvägen för utvärderingsresultat eller tryck på Retur för att acceptera standardvärdet.

  10. Agenten utför automatiskt följande:

    • Klonar fjärranslutna lagringsplatser (lokala sökvägslagringsplatser används direkt).

    • Kör utvärdering på varje lagringsplats en i taget.

    • Genererar enskilda utvärderingsrapporter.

      Skärmbild av Modernisera CLI som visar utdata från enskilda utvärderingsrapportgenereringar i terminalen.

    • Skapar en aggregerad rapport.

      Skärmbild av Modernisera CLI som visar utdata från den aggregerade rapportgenereringen i terminalen.

  11. När utvärderingen är klar öppnar agenten automatiskt den aggregerade rapporten.

    Skärmbild av Modernisera CLI som visar innehållet i den aggregerade rapporten.

Interaktivt läge (delegera till molnkodningsagenter)

Konfigurera först Molnkodningsagenter på varje programlagringsplats. För att konfigurera Molnkodningsagenter förgrenar du exempellagringsplatserna.

Konfiguration för .NET program

Konfigurera för att köras på Windows för .NET Framework-program

Som standard körs Copilot Coding Agent i en Ubuntu Linux-miljö. För .NET Framework-program behöver du en Windows miljö. Om du vill aktivera den konfigurerar du .github/workflows/copilot-setup-steps.yaml i grenen main av programlagringsplatsen enligt följande exempel:

# 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

Läs mer från: Anpassa Copilot utvecklingsmiljö med Copilot installationssteg

Inaktivera brandvägg

Inaktivera Copilot kodningsagentens integrerade brandvägg i lagringsplatsens inställningar enligt följande bild:

Skärmbild av GitHub som visar lagringsplatsens inställningar med inställningen Aktivera brandvägg inställd på Off.

Konfiguration för Java program

Konfigurera GitHub Copilot Modernization MCP Server i avsnittet Cloud Coding Agent i förvaringsinställningarna enligt följande exempel:

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

Skärmbild av GitHub som visar inställningarna för lagringsplatsens kodningsagent med MCP-konfigurationsavsnittet markerat.

Instruktioner

  1. Kör moderniseringsagenten:

    modernize
    
  2. Välj Utvärdera på huvudmenyn.

    Skärmbild av Modernisera CLI som visar huvudmenyn med alternativet Utvärdera i terminalen.

  3. Välj hur du vill ange dina mållagringsplatser. Välj Från en konfigurationsfil om du vill använda en repos.json-fil eller välj Manual input för att ange GitHub lagringsplats-URL:er direkt.

    Skärmbild av Modernisera CLI som visar val av källtyp i terminalen.

  4. Om du har valt Från en konfigurationsfil och repos.json filen identifieras på standardplatsen fyller agenten automatiskt i den. Annars anger du sökvägen till konfigurationsfilen och trycker på Retur.

  5. Alla lagringsplatser är markerade som standard. Avmarkera alla lagringsplatser som du vill hoppa över och tryck sedan på Retur för att bekräfta ditt val.

    • Använd piltangenterna för att navigera och tryck på Blanksteg för att växla enskilda lagringsutrymmen.

    Skärmbild av Modernisera CLI som visar lagringsplatsens lista i terminalen.

  6. Välj körningsläge. Välj Delegera till molnagenter.

    Skärmbild av Modernisera CLI som visar utvärderingsmenyn med alternativet Delegera till molnkodningsagenter valt.

    Anmärkning

    När du delegerar till Molnkodningsagenter stöds inte konfigurationsstegen för domänval och utvärdering. Molnagenten använder standardkonfigurationerna för att köra utvärderingen.

  7. Ange utdatasökvägen för utvärderingsresultat eller tryck på Retur för att acceptera standardvärdet.

  8. Agenten delegerar automatiskt utvärderingsuppgifter för varje lagringsplats till Molnkodningsagenter och kör dem parallellt i molnet.

    Skärmbild av Modernisera CLI som visar resultatet av förloppet för delegering av utvärdering till molnkodningsagenter i terminalen.

    Agenten hämtar utvärderingsresultaten per app tillbaka till lokalt och genererar den aggregerade rapporten lokalt.

    Skärmbild av Modernisera CLI som visar aggregeringsutvärderingsrapporter i terminalen.

  9. När utvärderingen är klar öppnar agenten automatiskt den aggregerade rapporten.

Icke-interaktivt läge (CLI)

Du kan också använda icke-interaktivt läge genom att ange kommandoargument direkt. Använd kommandot modernize assess:

Utvärdera lokalt med hjälp av en databaskonfigurationsfil:

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

Utvärdera flera lagringsplatser genom att ange källor direkt:

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

Utvärdera genom att delegera till molnkodningsagenter:

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

Mer information finns i utvärdera – CLI-kommandon.

Förstå den aggregerade rapporten

Den aggregerade rapporten ger en omfattande vy över utvärderade program på följande sätt:

Dashboard

  • Ögonblicksbild av portföljhälsa: totalt antal appar, hur många som behöver uppgraderingar och antal aggregerade blockeringar och problem.
  • Teknikdistribution: vilka ramverk som används och hur många appar som delar dem.
  • Insatsfördelning: om migreringen i sin helhet är ett litet eller stort åtagande.

Recommendations

  • Azure Services: mappar aktuella beroenden till rekommenderade Azure motsvarigheter. Delade beroenden mellan appar bestäms en gång, så du undviker omarbete per app.
  • Målplattform: vägleder valet av plattform, till exempel Azure Container Apps jämfört med AKS, och lyfter fram konsolideringsmöjligheter.
  • Uppgraderingssökväg: identifierar vilka appar som behöver ramverksuppgraderingar som en förutsättning, vilket skiljer uppgraderingsarbetet från migreringsarbetet.
  • Migreringsvågor: ordnar appar efter beredskap och risk i faser. Den här metoden möjliggör tidiga vinster medan svårare appar förbereds parallellt.

Matris för programutvärdering

  • Snabböversikt för varje program avseende ramverk, målplattform, uppgraderingsrekommendation, problemuppdelning (obligatorisk, potentiell, valfri), ansträngningsbedömning och mer.
  • Länkar till enskilda apprapporter för ökad detaljnivå när det behövs.

Felsökning av batchutvärdering

Vanliga problem

Fel vid åtkomst till lagringsplats:

  • Verifiera GitHub autentisering med hjälp av gh auth status.
  • Kontrollera att du har åtkomst till alla lagringsplatser som anges i repos.json.

Klonfel:

  • Kontrollera att url:erna för lagringsplatsen är repos.json korrekta och tillgängliga.
  • Kontrollera att du har rätt åtkomstbehörigheter för alla lagringsplatser.
  • Kontrollera nätverksanslutningen och VPN-inställningarna.

Utvärderingsfel:

  • Kontrollera om lagringsplatsen innehåller giltiga Java eller .NET projekt.
  • Kontrollera att det finns byggfiler, till exempel pom.xml, build.gradle, *.csproj, *.slneller *.slnx.
  • Granska felmeddelanden i konsolens utdata.

Problem med delegering av molnkodningsagent:

  • Kontrollera att du har rätt behörigheter för att skapa GitHub Actions arbetsflöden.
  • Kontrollera GitHub Actions behörigheter och kvotgränser för din organisation.
  • För .NET Framework-appar kontrollerar du att Windows runner-konfigurationen är korrekt inställd.
  • Kontrollera mcp-serverkonfigurationen.

Nästa steg

När du har slutfört batchutvärderingen kan du:

Fortsätt moderniseringsarbetsflödet:

Läs mer:

Lämna feedback

Vi värdesätter dina indata! Om du har feedback om batchutvärdering eller moderniseringsagenten skapa ett problem på github-copilot-appmod-lagringsplatsen eller använd GitHub Copilot formuläret för moderniseringsfeedback.