Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Batch-utvärdering kan du analysera en portfölj med Java, .NET och JavaScript/TypeScript program i en enda körning. Du får en omfattande vy över moderniseringslandskapet i dina program. Den här artikeln vägleder dig genom processen att utvärdera flera lagringsplatser effektivt. Processen stöder både lagringsplatser med ett enda språk och mono-repos som innehåller en blandning av Java- .NET- och JavaScript-/TypeScript-projekt.
Varje program analyseras längs två kompletterande spår. Genomsökning av problem hittar problem som du behöver åtgärda. Codebase-insikter dokumenterar hur programmet skapas så att du kan planera runt det.
Problemgenomsökning
Genomsökning av problem identifierar moderniserings- och säkerhetsproblem i tre domäner. Språktäckningen skiljer sig åt beroende på domän:
- Uppgradera – körnings- och ramverksversionsanalys. Omfattar Java och .NET.
- Cloud Readiness – Azure problem med anpassning och migrering av målplattformen. Omfattar Java och .NET.
- Säkerhet – CVE-genomsökning över direkta och transitiva beroenden, plus ISO 5055-guidade CWE-säkerhetsproblem . Java endast just nu; stöd för .NET och JavaScript/TypeScript finns med i översikten.
Codebase-insikter
Codebase Insights dokumenterar hur varje program skapas. De produceras för projekt Java, .NET och JavaScript/TypeScript. De visas när du väljer Fullständig analys i inställningen Analystäckning.
- Arkitektur – arkitekturdiagram på hög nivå med skiktning, modulgränser, runtime-topologi och startpunkter.
- API-kontrakt – REST-, gRPC-, meddelandekö- och webhook-gränssnitt som appen exponerar eller använder. Bedömer integrationens påverkansområde före migrering.
- Konfiguration – konfigurationsfiler, miljövariabler, funktionsflaggor, anslutningssträngar och hemligheter. Driver migreringen av hemligheter och konfiguration till Azure Key Vault och Azure App Configuration.
- Affärsarbetsflöden – funktionella flöden från slutpunkt till slutpunkt som rekonstruerats från kod (till exempel order → reservera → betala → uppfylla). Fäster regressionsomfånget och intressenternas kommunikation.
- Beroenden — direkta och transitiva bibliotek, SDK:er och drivrutiner med låsta versioner. Matar mappningen av Azure-tjänster och visar EOL- eller betamarkeringar.
- Datamodell – databaser, scheman, nyckelentiteter och relationer från ORM-mappningar och DDL. Driver migreringsplanering på datanivå.
Rapporter
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:
- Rapport per lagringsplats: Ger detaljerade insikter om de två aspekter som identifieras på den enskilda lagringsplatsens nivå.
- Aggregated report: Presenterar ett övergripande perspektiv på alla utvärderade program, med sammanfattningsinsikter, rekommendationer om Azure tjänster, målplattformar, uppgraderingsvägar, migreringsstrategier och migreringsvågor. Dessutom innehåller den aggregerade rapporten genvägar för enkel åtkomst till varje rapport per lagringsplats.
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 molnagenter 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-agentdelegering: Moderniseringsagenten skickar uppgifter till GitHub Copilot molnagenter för parallell bearbetning i molnet. Det här läget är snabbare för flerepo-scenarier.
Viktigt!
Molnagentdelegering kräver att lagringsplatser har url:er för GitHub (github.com). 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 molnagentdelegering 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)
Kör moderniseringsagenten:
modernizeVälj Utvärdera på huvudmenyn.
Välj hur du vill ange dina mållagringsplatser. Välj Från en konfigurationsfil för att använda en
repos.jsonfil.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.
repos.jsonOm filen identifieras på standardplatsen fyller agenten automatiskt i den. Annars anger du sökvägen till konfigurationsfilen och trycker på Retur.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.
Välj de utvärderingsdomäner som ska analyseras. Upgrade och Cloud Readiness köras på Java- och .NET projekt på lagringsplatsen. Security är avmarkerat som standard och körs endast på Java projekt. Välj det för att söka efter CVE-sårbarheter och ISO 5055-guidade CWE-problem.
Granska och konfigurera utvärderingsalternativen. På konfigurationssidan visas alternativ grupperade efter språk och domän:
-
Allmän/analystäckning:
- Endast problem (standard): Identifierar moderniserings- och säkerhetsproblem i källkoden. Snabbaste alternativet.
- Fullständig analys: Identifierar problem och genererar dessutom codebase-insikter i sex aspekter av ditt program – Arkitektur, API Contracts, Configuration, Business Workflows, Dependencies och Data Model. Det tar längre tid att köra än endast problemanalys.
- Java/UPGRADE: Target Runtime (OpenJDK 11, 17, 21 eller 25).
- Java / CLOUD READINESS: Target Compute Services, Target Operating System och Containerisering.
-
Java/SECURITY: Minsta allvarlighetsgrad för CVE (
low,medium,high,critical; standardhigh). Lägre allvarlighetsgradsvärden innehåller fler resultat. (Säkerhetsdomänen är endast Java i dag.) - .NET/UPGRADE: Target Framework (.NET 8, 9 eller 10).
- .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.
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, en specifik Azure beräkningstjänst eller ett annat tröskelvärde för CVE-allvarlighetsgrad.
-
Allmän/analystäckning:
Välj körningsläge. Välj Utvärdera lokalt.
Ange utdatasökvägen för utvärderingsresultat eller tryck på Retur för att acceptera standardvärdet.
Agenten utför automatiskt följande:
När utvärderingen är klar öppnar agenten automatiskt den aggregerade rapporten.
Interaktivt läge (delegera till molnagenter)
Konfigurera först molnagenter på varje programlagringsplats. För att konfigurera molnagenter gör du en fork av exempelrepositorierna.
Konfiguration för .NET program
Konfigurera för att köras på Windows för .NET Framework-program
Som standard körs Copilot-molnagenten 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 molnagentens integrerade brandvägg i lagringsplatsens inställningar enligt följande bild:
MCP-server
Konfigurera GitHub Copilot Modernization MCP Server i avsnittet Cloud agent i inställningarna för lagringsplatsen, så som visas i följande exempel:
{
"mcpServers": {
"AppModDotNetUpgrade": {
"type": "local",
"command": "dotnet",
"args": [
"dnx",
"Microsoft.GitHubCopilot.Modernization.Mcp",
"--prerelease",
"--yes",
"--source",
"https://api.nuget.org/v3/index.json"
],
"env": {
"APPMOD_CALLER_TYPE": "modernize-cli"
},
"tools": ["*"]
}
}
}
Konfiguration för Java program
Konfigurera GitHub Copilot Modernization MCP-servern i avsnittet Cloud agent i inställningarna för lagringsplatsen, så som visas i följande exempel:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Instruktioner
Det interaktiva flödet för molndelegering är identiskt med Utvärdera lokalt via stegen källa, lagringsplats, domän och konfiguration. Den enda skillnaden är valet av körningsläge och vad som händer efteråt.
Kör moderniseringsagenten:
modernizeVälj Utvärdera på huvudmenyn, välj din källa (konfigurationsfil, manuell indata eller aktuell mapp), välj lagringsplatser, välj dina utvärderingsdomäner och granska konfigurationen. De här stegen fungerar exakt enligt beskrivningen i interaktivt läge (utvärdera lokalt).
Välj körningsläge. Välj Delegera till molnagenter.
Ange utdatasökvägen för utvärderingsresultat eller tryck på Retur för att acceptera standardvärdet.
Agenten delegerar automatiskt utvärderingsuppgifter för varje lagringsplats till molnagenter och kör dem parallellt i molnet.
Agenten hämtar utvärderingsresultaten per app tillbaka till lokalt och genererar den aggregerade rapporten lokalt.
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 molnagenter:
modernize assess --source .github/modernize/repos.json --delegate cloud --wait
Mer information finns i utvärdera – CLI-kommandon.
Azure Migrate-integrering
Du kan köra batchutvärdering direkt från ditt Azure Migrate projekt och få de resulterande rapporterna att flöda tillbaka till Azure Migrate automatiskt.
Flödet från slutpunkt till slutpunkt:
Ladda ned ett startpaket
repos.jsonfrån Azure Migrate. Azure Migrate genererar en JSON-fil som är begränsad till de program som du har valt för moderniseringsutvärdering. Filen innehåller redan posternaapps[]och blocketoutputsom pekar tillbaka på ditt Azure Migrate projekt.Fyll i url:er för lagringsplats. Redigera varje
repos[]post i den nedladdade filen för att lägga till GitHub lagringsplats-URL:en för programmet. Behåll blockenapps[]ochoutputså som Azure Migrate genererade dem – dessa block styr uppladdningen.Kör grupputvärdering. Kör utvärderingen lokalt eller genom att delegera till molnagenter enligt föregående steg. Båda körningslägena följer utdatakonfigurationen för Azure Migrate.
Rapporter laddas upp automatiskt. När utvärderingen är klar laddar moderniseringsagenten upp varje programs rapport tillbaka till ditt Azure Migrate projekt. Ingen extra CLI-flagga krävs –
output.typeinställningen irepos.jsonfilen styr uppladdningen.
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.
- Target Platform: vägleder valet av värdplattform, 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.
- Cost Estimate: beräknar den Azure kostnaden för att köra varje program på det rekommenderade målet, så att du kan prioritera utgifter.
- Migreringsstrategier: rekommenderar en migreringsstrategi för varje applikation – till exempel Replatform för flyttar av typen lift-and-reshape eller Rearchitect för mer omfattande refaktorisering – så att varje app får en strategi som är anpassad efter dess beredskap.
- Migreringsvågor: delar in appar i faser utifrån mognad och risk (till exempel snabba vinster i våg 1, våg 2: kärnmoln, våg 3: långsiktiga satsningar). 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.jsonkorrekta 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-, .NET- eller JavaScript-/TypeScript-projekt.
- Kontrollera att det finns byggfiler, till exempel
pom.xml,build.gradle,*.csproj,*.sln,*.slnxellerpackage.json. - Granska felmeddelanden i konsolens utdata. Varningar som inte är dödliga (till exempel saknade byggfiler i en undermodul) visas nu direkt i CLI-utdata – granska dem innan du behandlar rapporten som slutgiltig.
Problem med molnagentdelegering:
- Molnagentdelegering accepterar endast
https://github.com/...url:er för lagringsplatser. Lokala sökvägar och leverantörer som inte är GitHub (GitLab, Azure DevOps) avvisas redan från början med ett beskrivande felmeddelande. Använd lokal exekvering för dessa lagringsplatser. - 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:
- Kör batchuppgradering mellan lagringsplatser – Tillämpa konsekventa uppgraderingar baserat på utvärderingsresultat.
Läs mer:
Lämna feedback
Dina indata är viktiga! 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.