Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met Batch-evaluatie kunt u een portfolio van Java, .NET en JavaScript/TypeScript-toepassingen in één uitvoering analyseren. U krijgt een uitgebreid overzicht van het moderniseringslandschap in uw toepassingen. In dit artikel wordt u begeleid bij het proces van het efficiënt beoordelen van meerdere opslagplaatsen. Het proces ondersteunt zowel opslagplaatsen met één taal als mono-opslagplaatsen die een combinatie van Java-, .NET- en JavaScript-/TypeScript-projecten bevatten.
Elke toepassing wordt geanalyseerd op twee complementaire sporen. Probleemscan spoort problemen op die u moet oplossen. Codebase Insights documenteert hoe de toepassing is gebouwd, zodat u deze kunt plannen.
Scannen van problemen
Bij het scannen van problemen worden moderniserings- en beveiligingsproblemen in drie domeinen gedetecteerd. Taaldekking verschilt per domein:
- Upgrade — runtime- en frameworkversieanalyse. Behandelt Java en .NET.
- Cloudgereedheid — geschiktheid van het Azure-doelplatform en migratieproblemen. Behandelt Java en .NET.
- Beveiliging — CVE-scans voor directe en transitieve afhankelijkheden, plus volgens ISO 5055 beoordeelde CWE-beveiligingsproblemen. Java op dit moment alleen; .NET en ondersteuning voor JavaScript/TypeScript staat op de roadmap.
Codebase-inzichten
Codebase Insights documenteert hoe elke toepassing wordt gebouwd. Ze worden geproduceerd voor projecten Java, .NET en JavaScript/TypeScript. Ze worden weergegeven wanneer u Volledige analyse selecteert in de instelling Analysedekking.
- Architectuur : architectuurdiagram op hoog niveau met lagen, modulegrenzen, runtimetopologie en toegangspunten.
- API-contracten — REST-, gRPC-, messagequeue- en webhook-interfaces die de app aanbiedt of gebruikt. Bepaalt de impact van de integratie vóór de migratie.
- Configuratie : configuratiebestanden, omgevingsvariabelen, functievlagmen, verbindingsreeksen en geheimen. Hiermee wordt de migratie van geheimen en configuratie naar Azure Key Vault en Azure App Configuration aangestuurd.
- Zakelijke werkstromen: end-to-end functionele stromen die zijn gereconstrueerd vanuit code (bijvoorbeeld order → reserveren → betalen → voldoen). Ankers regressiebereik en communicatie met belanghebbenden.
- Afhankelijkheden : directe en transitieve bibliotheken, SDK's en stuurprogramma's met vastgemaakte versies. Voedt de toewijzing van Azure-services en brengt EOL- of bètavastzettingen aan het licht.
- Gegevensmodel : databases, schema's, sleutelentiteiten en relaties van ORM-toewijzingen en DDL. Stuurt de migratieplanning van de gegevenslaag aan.
Rapporten
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:
- Rapport per opslagplaats: biedt gedetailleerde inzichten over de twee aspecten die zijn geïdentificeerd op het niveau van de afzonderlijke opslagplaats.
- Geaggregateerd rapport: biedt een algemeen perspectief van alle geëvalueerde toepassingen, met overzichtsinzichten, aanbevelingen voor Azure services, doelplatformen, upgradepaden, migratiestrategieën en migratiegolven. Daarnaast bevat het samengevoegde rapport snelkoppelingen voor eenvoudige toegang tot elk rapport per opslagplaats.
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 cloudagents 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-agentdelegering: De moderniseringsagent verzendt taken naar GitHub Copilot cloudagents voor parallelle verwerking in de cloud. Deze modus is sneller voor scenario's met meerdere repositories.
Belangrijk
Voor cloudagentdelegering moeten opslagplaatsen 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 cloudagentdelegering 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)
Voer de moderniseringsagent uit:
modernizeSelecteer Evalueren in het hoofdmenu.
Kies hoe u de doelopslagplaatsen opgeeft. Selecteer in een configuratiebestand om een
repos.jsonbestand te gebruiken.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.
Als het
repos.jsonbestand 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.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.
Selecteer de evaluatiedomeinen die u wilt analyseren. Upgrade en Cloud Readiness worden uitgevoerd op Java en .NET projecten in de opslagplaats. Beveiliging is standaard uitgeschakeld en wordt alleen uitgevoerd op Java projecten; selecteer deze om te scannen op CVE-beveiligingsproblemen en problemen met ISO 5055-gestuurde CWE.
Controleer en configureer de instellingen voor beoordeling. Op de configuratiepagina ziet u opties gegroepeerd op taal en domein:
-
Algemene/analysedekking:
- Alleen probleem (standaard): Detecteert moderniserings- en beveiligingsproblemen in uw broncode. Snelste optie.
- Volledige analyse: detecteert problemen en genereert daarnaast codebase-inzichten in zes aspecten van uw toepassing: architectuur, API-contracten, configuratie, bedrijfswerkstromen, afhankelijkheden en gegevensmodel. Duurt langer dan een analyse van alleen problemen.
- Java/UPGRADE: Target Runtime (OpenJDK 11, 17, 21 of 25).
- Java / CLOUD READINESS: Doel-computeservices, Doel-besturingssysteem en containerisatie.
-
Java / BEVEILIGING: Minimaal CVE-ernstniveau (
low,medium,high,critical; standaardhigh). Waarden voor lagere ernst bevatten meer bevindingen. (Beveiligingsdomein is momenteel alleen Java.) - .NET/UPGRADE: Target Framework (.NET 8, 9 of 10).
- .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.
Aanbeveling
De aanbevolen standaardinstellingen werken voor de meeste scenario's. U hoeft deze instellingen alleen te wijzigen als u specifieke vereisten hebt, zoals het richten op een bepaalde JDK-versie, een specifieke Azure compute-service of een andere CVE-ernstdrempel.
-
Algemene/analysedekking:
Kies de uitvoeringsmodus. Selecteer Lokaal evalueren.
Voer het uitvoerpad voor evaluatieresultaten in of druk op Enter om de standaardwaarde te accepteren.
De agent voert automatisch uit:
Wanneer de evaluatie is voltooid, opent de agent automatisch het samengevoegde rapport.
Interactieve modus (delegeren aan cloudagents)
Configureer eerst cloudagents in elke toepassingsopslagplaats. Als u cloudagents wilt configureren, forkt u de voorbeeldopslagplaatsen.
Configuratie voor .NET toepassingen
Configureren voor uitvoering op Windows voor .NET Framework-toepassingen
De Copilot cloudagent wordt standaard 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 de geïntegreerde firewall van de cloudagent van Copilot uit in de instellingen van uw repository, zoals in de volgende afbeelding wordt weergegeven:
MCP-server
Configureer GitHub Copilot Modernization MCP Server in de sectie Cloud-agent van de instellingen van uw opslagplaats, zoals wordt weergegeven in het volgende voorbeeld:
{
"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": ["*"]
}
}
}
Configuratie voor Java toepassingen
Configureer GitHub Copilot Modernization MCP Server in de sectie Cloud-agent van de instellingen van uw opslagplaats, zoals wordt weergegeven in het volgende voorbeeld:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Steps
De interactieve stroom voor clouddelegering is identiek aan Lokaal evalueren via de stappen voor bron, opslagplaats, domein en configuratie. Het enige verschil is de keuze in de uitvoeringsmodus en wat er daarna gebeurt.
Voer de moderniseringsagent uit:
modernizeSelecteer Evalueren in het hoofdmenu, kies uw bron (configuratiebestand, handmatige invoer of huidige map), selecteer opslagplaatsen, kies uw evaluatiedomeinen en controleer de configuratie. Deze stappen werken precies zoals beschreven in de interactieve modus (lokaal evalueren).
Kies de uitvoeringsmodus. Selecteer Delegeren naar cloud-agents.
Voer het uitvoerpad voor evaluatieresultaten in of druk op Enter om de standaardwaarde te accepteren.
De agent delegeert automatisch evaluatietaken voor elke opslagplaats naar cloudagents en voert deze parallel uit in de cloud.
De agent haalt de resultaten per app-evaluatie terug naar lokaal en genereert het geaggregeerde rapport lokaal.
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 cloudagents:
modernize assess --source .github/modernize/repos.json --delegate cloud --wait
Zie evalueren - CLI-opdrachten voor meer informatie.
Azure Migrate-integratie
U kunt batchevaluatie rechtstreeks vanuit uw Azure Migrate project stimuleren en de resulterende rapporten automatisch laten terugstromen naar Azure Migrate.
Het end-to-endproces:
Download een startsjabloon
repos.jsonvanuit Azure Migrate. Azure Migrate genereert een JSON-bestand dat is afgestemd op de toepassingen die u hebt geselecteerd voor moderniseringsevaluatie. Het bestand bevat al deapps[]vermeldingen en hetoutputblok dat terugverwijst naar uw Azure Migrate project.Vul de URL's van de opslagplaats in. Bewerk elke vermelding
repos[]in het gedownloade bestand om de URL van de GitHub opslagplaats voor de toepassing toe te voegen. Houd de blokkenapps[]enoutputzoals Azure Migrate deze heeft gegenereerd; deze blokken sturen het uploadproces aan.Batch-evaluatie uitvoeren. Voer de evaluatie lokaal uit of delegeer deze aan cloudagenten volgens de voorgaande stappen. Beide uitvoeringsmodi respecteren de Azure Migrate uitvoerconfiguratie.
Rapporten worden automatisch geüpload. Wanneer de evaluatie is voltooid, uploadt de moderniseringsagent het rapport van elke toepassing terug naar uw Azure Migrate project. Er is geen extra CLI-flag nodig - de instelling
output.typein het bestandrepos.jsonstuurt de upload aan.
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.
- Target Platform: begeleidt hostingkeuzes, zoals Azure Container Apps versus AKS, en consolidatiemogelijkheden.
- Upgradepad: identificeert welke apps frameworkupgrades nodig hebben als een vereiste, waardoor het upgradewerk van het migratiewerk wordt gescheiden.
- Cost-schatting: maakt een schatting van de Azure kosten voor het uitvoeren van elke toepassing op het aanbevolen doel, zodat u rekening kunt houden met de prioriteitstelling.
- Migratiestrategieën: beveelt per applicatie een migratieaanpak aan, bijvoorbeeld Replatform voor lift-and-reshape-migraties of Rearchitect voor ingrijpendere refactoring, zodat elke applicatie een strategie krijgt die past bij de migratiegereedheid ervan.
- Migratiegolven: sequentieert apps op gereedheid en risico in fasen (bijvoorbeeld Wave 1 quick wins, Wave 2 core cloud, Wave 3 long-term bets). 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.jsoncorrect 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-, .NET- of JavaScript-/TypeScript-projecten bevat.
- Controleer of er buildbestanden bestaan, zoals
pom.xml,build.gradle,*.csproj,*.sln,*.slnxofpackage.json. - Bekijk foutberichten in de console-uitvoer. Niet-fatale waarschuwingen (bijvoorbeeld ontbrekende buildbestanden in een submodule) worden nu rechtstreeks naar de CLI-uitvoer weergegeven. Controleer deze voordat u het rapport als definitief behandelt.
Problemen met delegatie van cloudagenten:
- Cloudagentdelegering accepteert alleen
https://github.com/...url's voor opslagplaatsen. Lokale paden en niet-GitHub-providers (GitLab, Azure DevOps) worden vooraf geweigerd met een beschrijvende fout. Lokale uitvoering gebruiken voor deze opslagplaatsen. - 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:
- Batchupgrade uitvoeren in opslagplaatsen : consistente upgrades toepassen op basis van evaluatieresultaten.
Meer informatie:
- Maak aangepaste vaardigheden voor organisatiespecifieke patronen.
- Meer informatie over CLI-opdrachten.
Feedback geven
Uw input is belangrijk! 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.