Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dávkové posouzení umožňuje analyzovat portfolio aplikací Java, .NET a JavaScript/TypeScript v jednom spuštění. Získáte komplexní přehled o modernizaci prostředí napříč vašimi aplikacemi. Tento článek vás provede procesem efektivního vyhodnocení více úložišť. Tento proces podporuje úložiště s jedním jazykem i úložiště mono-repos, která obsahují kombinaci projektů Java, .NET a JavaScript/TypeScript.
Každá aplikace se analyzuje ve dvou vzájemně se doplňujících směrech. Kontrola problémů najde problémy, které je potřeba opravit. CodeBase Insights dokumentuje, jak je aplikace sestavená, abyste si ji mohli naplánovat.
Kontrola problémů
Kontrola problémů detekuje modernizaci a problémy se zabezpečením napříč třemi doménami. Pokrytí jazyka se liší podle domény:
- Upgrade – analýza verzí modulu runtime a architektury Zahrnuje Java a .NET.
- Cloud Readiness – Azure problémy s přizpůsobením cílové platformy a migrací. Zahrnuje Java a .NET.
- Zabezpečení — skenování CVE napříč přímými i nepřímými závislostmi a bezpečnostní problémy CWE podle ISO 5055. V tuto chvíli pouze Java; podpora pro .NET a JavaScript/TypeScript je plánována.
Přehled kódové základny
CodeBase Insights dokumentuje, jak se každá aplikace sestavuje. Vytvářejí se pro projekty Java, .NET a JavaScript/TypeScript. Zobrazí se, když v nastavení Pokrytí analýzy vyberete Úplnou analýzu .
- Architektura – diagram architektury vysoké úrovně s vrstvami, hranicemi modulů, topologií modulu a vstupními body
- Kontrakty rozhraní API – REST, gRPC, fronta zpráv a webhook zpřístupňují nebo spotřebovávají aplikace. Velikost poloměru výbuchu integrace před migrací
- Konfigurace – konfigurační soubory, proměnné prostředí, příznaky funkcí, připojovací řetězce a tajné kódy. Řídí migraci tajných kódů a konfigurace do Azure Key Vault a Azure App Configuration.
- Obchodní pracovní postupy – kompletní funkční toky rekonstruované z kódu (například objednávky → rezerva → placení →). Ukotvuje rozsah regresního testování a komunikaci se zainteresovanými stranami.
- Závislosti – přímé a tranzitivní knihovny, sady SDK a ovladače s připnutými verzemi. Poskytuje mapování služeb Azure a zobrazuje připnutí verzí po konci životnosti (EOL) nebo beta verzí.
- Datový model – databáze, schémata, klíčové entity a vztahy z mapování ORM a DDL. Řídí plánování migrace datové vrstvy.
Přehledy
Dávkové hodnocení je zvláště cenné pro plánování migrace, protože umožňuje efektivně posoudit připravenost a požadavky různých aplikací najednou. Pomocí dávkového hodnocení můžete současně vyhodnotit různá úložiště a získat podrobné sestavy hodnocení pro každou aplikaci. Vytváří dva druhy sestav k podpoře plánování migrace:
- Přehled podle úložiště: Poskytuje podrobný přehled o dvou identifikovaných aspektech na úrovni jednotlivých úložišť.
- Agregovaná sestava: Představuje celkový pohled na všechny hodnocené aplikace, nabízí souhrnné přehledy, doporučení týkající se služeb Azure, cílových platforem, cest upgradu, strategií migrace a vln migrace. Agregovaná sestava navíc obsahuje klávesové zkratky pro snadný přístup ke každé sestavě úložiště.
Dávkové hodnocení poskytuje následující výhody:
Viditelnost mezi aplikacemi:
- Agregované sestavy: Získejte celkový přehled ve všech aplikacích.
- Analýza mezi úložišti: Identifikace běžných vzorů a závislostí napříč aplikacemi
- Přehledy stanovení priorit: Zjistěte, které aplikace vyžadují okamžitou pozornost.
Efektivita a škálování:
- Paralelní zpracování: Použití cloudových agentů ke zpracování více úložišť současně.
- Automatizované pracovní postupy: Integrace s CI/CD pipelines pro plánované hodnocení.
- Úspora času: Zkracujte celkovou dobu hodnocení od týdnů do hodin.
Předpoklady
- Modernizace rozhraní příkazového řádku
- Přístup ke všem úložištím, která chcete posoudit.
- GitHub ověřování je nakonfigurované (
gh auth login).
Konfigurace úložišť
Agent modernizace podporuje několik způsobů, jak určit úložiště, která chcete posoudit:
- Aktuální složka: Vyhodnoťte projekt v aktuálním pracovním adresáři.
- Ruční vstup: Zadejte cesty k místnímu adresáři nebo vzdálené adresy URL Gitu přímo.
- Konfigurační soubor úložiště: Použijte konfigurační soubor JSON, který obsahuje seznam všech úložišť.
Konfigurační soubor úložiště
Pro dávkové operace v mnoha úložištích vytvořte konfigurační soubor JSON pro výpis všech úložišť. Můžete ho například vytvořit v .github/modernize/repos.json pracovním adresáři nebo zadat vlastní cestu.
Ujistěte se, že máte správná oprávnění pro úložiště, nebo je rozvětvěte.
Jednoduchý formát (pole úložišť):
[
{
"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"
}
]
Úplný formát (s větvemi a místními cestami):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Každá položka úložiště podporuje následující pole:
| Pole | Description | Povinné |
|---|---|---|
name |
Přátelský název úložiště (používaný v sestavách a řídicích panelech) | Ano |
url |
Adresa URL pro klonování v Gitu ve formátu HTTPS nebo SSH | Jedna z url nebo path |
path |
Absolutní cesta k místnímu adresáři | Jedna z url nebo path |
branch |
Větev, na kterou se přepnout po klonování. | Ne |
description |
Popis čitelný pro člověka. | Ne |
Úplný formát s uskupením aplikací (volitelně, pro organizované reportování):
Do logických aplikací můžete přidat apps[] oddíl pro seskupení úložišť. Když jsou aplikace definovány, souhrnná zpráva uspořádá výsledky podle aplikace a podporuje rozšiřování zpráv do externích cí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"
}
}
]
}
Každá položka aplikace podporuje:
| Pole | Description | Povinné |
|---|---|---|
identifier |
Jedinečný zobrazovaný název aplikace | Ano |
description |
Popis čitelný pro člověka. | Ne |
repos |
Seznam názvů úložiště, které patří do této aplikace | Ano |
output |
Kam distribuovat zprávu o hodnocení této aplikace po jejím vygenerování | Ne |
Pole output podporuje následující typy distribuce:
| Typ | Description | Povinná pole |
|---|---|---|
local |
Zkopírujte sestavy do místního adresáře. | path |
git |
Nasdílení sestav do úložiště Git Formát adresy URL je https://github.com/org/repo.git#branch:path. |
url |
Návod
Můžete zahrnout úložiště z různých organizací a používat různé metody ověřování, pokud máte přístup.
Agent modernizace automaticky rozpozná soubor repos.json na .github/modernize/repos.json, když vyberete možnost Z konfiguračního souboru v interaktivním režimu. Můžete také zadat vlastní cestu.
Spuštění dávkového hodnocení
K dispozici jsou dva režimy spuštění:
- Místní spuštění: Agent modernizace zpracovává úložiště po druhém na místním počítači. Tento režim je nejvhodnější pro menší sadu aplikací nebo pro počáteční testování. Podporuje jak adresu URL Gitu, tak úložiště místních cest.
- Delegování cloudovým agentům: Modernizační agent odesílá úlohy cloudovým agentům GitHub Copilot ke paralelnímu zpracování v cloudu. Tento režim je rychlejší pro scénáře s více úložišti.
Důležité
Delegování cloudového agenta vyžaduje, aby repozitáře měly adresy URL repozitářů GitHub (github.com). Úložiště místních cest a poskytovatelé jiných než GitHub (GitLab, Azure DevOps) nejsou pro delegování cloudu podporované. Pro tato úložiště použijte lokální spuštění.
Návod
Pomocí delegování cloudového agenta povolíte paralelní spouštění napříč všemi úložišti. Tento přístup výrazně zkracuje celkovou dobu posouzení velkých portfolií.
Interaktivní režim (posouzení místně)
Spusťte agenta modernizace:
modernizeV hlavní nabídce vyberte Vyhodnotit .
Zvolte, jak zadat cílová úložiště. Vyberte Z konfiguračního souboru pro použití souboru
repos.json.Návod
Můžete také vybrat ruční vstup a zadat místní cesty nebo vzdálené adresy URL Gitu přímo nebo aktuální složku a posoudit tak projekt v aktuálním adresáři.
repos.jsonPokud je soubor zjištěn ve výchozím umístění, agent ho automaticky vyplní. V opačném případě zadejte cestu ke konfiguračnímu souboru a stiskněte Enter.Ve výchozím nastavení jsou vybraná všechna úložiště. Zrušte výběr všech úložišť, která chcete přeskočit, a stisknutím klávesy Enter potvrďte výběr.
- Pomocí kláves se šipkami můžete procházet a stisknutím mezerník přepínat jednotlivá úložiště.
Vyberte domény posouzení, které chcete analyzovat. Upgrade a Cloud Readiness běží na projektech Java a .NET v úložišti. Security není ve výchozím nastavení zaškrtnutá a funguje pouze u projektů v Javě; zaškrtněte ji, chcete-li provést kontrolu zranitelností CVE a problémů CWE podle normy ISO 5055.
Zkontrolujte a nakonfigurujte možnosti posouzení. Na stránce konfigurace se zobrazují možnosti seskupené podle jazyka a domény:
-
Obecné pokrytí / analýza:
- Pouze problém (výchozí): Detekuje problémy s modernizací a zabezpečením ve zdrojovém kódu. Nejrychlejší možnost.
- Úplná analýza: Detekuje problémy a navíc generuje přehledy o základu kódu napříč šesti aspekty vaší aplikace – architektura, kontrakty rozhraní API, konfigurace, obchodní pracovní postupy, závislosti a datový model. Spuštění trvá déle než analýza pouze problémů.
- Java / UPGRADE: Cílové běhové prostředí (OpenJDK 11, 17, 21 nebo 25).
- Java / CLOUD READINESS: Cílové výpočetní služby, cílový operační systém a kontejnerizace.
-
Java / SECURITY: Minimální závažnost CVE (
low,medium,high,critical; výchozíhigh). Nižší hodnoty závažnosti zahrnují více zjištění. (Bezpečnostní doména je dnes k dispozici pouze pro Javu.) - .NET / UPGRADE: Cílová architektura (.NET 8, 9 nebo 10).
- .NET / CLOUD READINESS: Cílové výpočetní služby.
Pomocí kláves se šipkami přejděte, stisknutím klávesy Enter změňte hodnotu nebo pokračujte v aktuálním nastavení výběrem možnosti Pokračovat .
Návod
Doporučené výchozí hodnoty fungují pro většinu scénářů. Tato nastavení je potřeba změnit jenom v případě, že máte specifické požadavky, například cílení na konkrétní verzi sady JDK, konkrétní Azure výpočetní službu nebo jinou prahovou hodnotu závažnosti CVE.
-
Obecné pokrytí / analýza:
Zvolte režim provádění. Vyberte Posoudit místně.
Zadejte výstupní cestu pro výsledky posouzení nebo stisknutím klávesy Enter přijměte výchozí hodnotu.
Agent automaticky:
Po dokončení posouzení agent automaticky otevře agregovanou sestavu.
Interaktivní režim (delegování na cloudové agenty)
Nejprve nakonfigurujte cloudové agenty v každém úložišti aplikací. Chcete-li nakonfigurovat cloudové agenty, vytvořte fork ukázkových úložišť.
Konfigurace pro aplikace .NET
Konfigurace spuštění na Windows pro aplikace .NET Framework
Ve výchozím nastavení běží Copilot cloudový agent v prostředí Ubuntu Linux. Pro aplikace .NET Framework potřebujete Windows prostředí. Pokud ji chcete povolit, nakonfigurujte .github/workflows/copilot-setup-steps.yaml ji ve main větvi úložiště vaší aplikace, jak je znázorněno v následujícím příkladu:
# 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
Další informace najdete v tématu: Přiložit vývojové prostředí Copilot pomocí kroků nastavení Copilot
Zakázání brány firewall
V nastavení vašeho úložiště zakažte integrovaný firewall cloudového agenta Copilotu, jak je znázorněno na následujícím obrázku:
MCP Server
Nakonfigurujte GitHub Copilot Modernization MCP Server v části Cloud agent v nastavení vašeho úložiště, jak je znázorněno v následujícím příkladu:
{
"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": ["*"]
}
}
}
Konfigurace pro aplikace Java
Nakonfigurujte GitHub Copilot Modernization MCP Server v části Cloud agent v nastavení svého úložiště, jak je znázorněno v následujícím příkladu:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Kroky
Interaktivní tok pro delegování do cloudu je stejný jako u Posoudit místně v krocích zdroje, úložiště, domény a konfigurace. Jediným rozdílem je volba režimu spuštění a to, co se stane později.
Spusťte agenta modernizace:
modernizeV hlavní nabídce vyberte Posouzení , zvolte zdroj (konfigurační soubor, ruční vstup nebo aktuální složku), vyberte úložiště, vyberte domény posouzení a zkontrolujte konfiguraci. Tyto kroky fungují přesně tak, jak je popsáno v interaktivním režimu (posouzení místně).
Zvolte režim provádění. Vyberte Delegovat na cloudové agenty.
Zadejte výstupní cestu pro výsledky posouzení nebo stisknutím klávesy Enter přijměte výchozí hodnotu.
Agent automaticky deleguje úlohy hodnocení pro každé úložiště na cloudové agenty a provádí je paralelně v cloudu.
Agent stáhne výsledky posouzení jednotlivých aplikací zpět do místního prostředí a místně vygeneruje agregovanou sestavu.
Po dokončení posouzení agent automaticky otevře agregovanou sestavu.
Neinteraktivní režim (CLI)
Neinteraktivní režim můžete použít také tak, že zadáte přímo argumenty příkazu. Použijte příkaz modernize assess:
Místní posouzení pomocí konfiguračního souboru úložiště:
modernize assess --source .github/modernize/repos.json
Vyhodnoťte více úložišť tak, že přímo zadáte zdroje:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Posuďte pomocí cloudových agentů:
modernize assess --source .github/modernize/repos.json --delegate cloud --wait
Další informace najdete v tématu vyhodnocení – příkazy rozhraní příkazového řádku.
Integrace služby Azure Migrate
Dávkové hodnocení můžete spustit přímo z projektu Azure Migrate a výsledné sestavy se automaticky vrátí zpět do Azure Migrate.
Tok od začátku do konce:
Stáhněte si z Azure Migrate šablonu pro začátek
repos.json. Azure Migrate vygeneruje soubor JSON s oborem aplikací, které jste vybrali pro posouzení modernizace. Soubor již obsahuje položkyapps[]a blokoutput, který odkazuje zpět na projekt Azure Migrate.Vyplňte adresy URL úložiště. Upravte každou položku
repos[]ve staženém souboru a přidejte adresu URL úložiště GitHub aplikace. Ponechte blokyapps[]aoutputtak, jak je vygenerovala služba Azure Migrate – tyto bloky řídí proces nahrávání.Spusťte dávkové hodnocení. Spusťte posouzení místně nebo delegováním na cloudové agenty podle předchozích kroků. Oba režimy provádění dodržují konfiguraci výstupu Azure Migrate.
Reporty se automaticky odesílají. Po dokončení posouzení agent pro modernizaci nahraje zpět do vašeho projektu Azure Migrate zprávu pro každou aplikaci. Není vyžadován žádný další přepínač CLI – o odeslání rozhoduje nastavení
output.typev souborurepos.json.
Pochopení agregované sestavy
Agregovaná sestava poskytuje komplexní přehled o hodnocených aplikacích následujícím způsobem:
Dashboard
- Snímek stavu portfolia: celkový počet aplikací, počet potřebných upgradů a agregované blokování a počty problémů
- Distribuce technologií: jaké architektury se používají a kolik aplikací je sdílí.
- Distribuce úsilí: zda je celková migrace malým nebo velkým podnikem.
Doporučení
- Azure Services: mapuje aktuální závislosti na doporučené Azure ekvivalenty. Sdílené závislosti napříč aplikacemi se rozhodnou jednou, takže se vyhnete přepracování jednotlivých aplikací.
- Cílová platforma: usměrňuje volbu hostingu, například mezi Azure Container Apps a AKS, a odhaluje příležitosti ke konsolidaci.
- Postup upgradu: identifikuje, které aplikace vyžadují nejprve upgrade frameworku, a odděluje práci na upgradu od migračních prací.
- Cost Estimate: odhaduje Azure náklady na provoz jednotlivých aplikací podle doporučeného cíle, abyste mohli zohlednit výdaje na stanovení priorit.
- Strategie migrace: Doporučuje přístup k migraci na aplikaci – například Replatform for lift-and-reshape moves nebo Rearchitect pro hlubší refaktoring – aby každá aplikace získala strategii odpovídající připravenosti.
- Vlny migrace: rozděluje aplikace do fází podle připravenosti a rizika (například vlna 1: rychlé přínosy, vlna 2: klíčové cloudové aplikace, vlna 3: dlouhodobé investice). Tento přístup umožňuje předčasné výhry, zatímco těžší aplikace jsou připravené paralelně.
Matice posouzení aplikací
- Rychlý přehled jednotlivých aplikací v aspektech architektury, cílové platformy, doporučení k upgradu, rozpisu problémů (povinné, potenciální, volitelné), nastavení velikosti úsilí a další.
- Odkazy na jednotlivé sestavy aplikací pro podrobnější přístup k detailům při potřebě.
Řešení potíží s dávkovými posouzeními
Běžné problémy
Chyby přístupu k úložišti:
- Pomocí příkazu
gh auth statusověřte ověřování GitHub. - Ujistěte se, že máte přístup ke všem úložištím uvedeným v seznamu
repos.json.
Selhání klonování:
- Ověřte, že adresy URL úložiště v
repos.jsonjsou správné a přístupné. - Ujistěte se, že máte správná přístupová oprávnění pro všechna úložiště.
- Zkontrolujte připojení k síti a nastavení sítě VPN.
Selhání posouzení:
- Zkontrolujte, jestli úložiště obsahuje platné Java, .NET nebo projekty JavaScript/TypeScript.
- Ověřte, že existují soubory sestavení, například
pom.xml,build.gradle,*.csproj,*.sln,*.slnxnebopackage.json. - Zkontrolujte chybové zprávy ve výstupu konzoly. Nezávažná upozornění (například chybějící soubory sestavení v dílčím modulu) se nyní zobrazují přímo ve výstupu rozhraní příkazového řádku – předtím, než budete zprávu považovat za konečnou, je zkontrolujte.
Problémy s delegování cloudového agenta:
- Delegování cloudového agenta podporuje pouze adresy URL úložišť
https://github.com/.... Místní cesty a jiní poskytovatelé než GitHub (GitLab, Azure DevOps) jsou rovnou odmítnuty s jasnou chybovou zprávou. Pro tato úložiště použijte lokální spuštění. - Ujistěte se, že máte správná oprávnění k vytváření pracovních postupů GitHub Actions.
- Zkontrolujte oprávnění GitHub Actions a limity kvót pro vaši organizaci.
- U aplikací .NET Framework se ujistěte, že je správně nastavená konfigurace spouštěče Windows.
- Zkontrolujte konfiguraci serveru MCP.
Další kroky
Po dokončení dávkového hodnocení můžete:
Pokračujte v postupu modernizace:
- Spuštění dávkového upgradu napříč úložišti – použití konzistentních upgradů na základě zjištění z posouzení
Další informace:
- Vytvářejte vlastní dovednosti pro vzory specifické pro organizaci.
- Seznamte se s příkazy rozhraní příkazového řádku.
Poskytnout zpětnou vazbu
Váš vstup je důležitý! Pokud máte zpětnou vazbu k dávkovému posouzení nebo agentovi modernizace, vytvořte problém v úložišti github-copilot-appmod nebo použijte formulář pro GitHub Copilot formulář pro modernizaci.