Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La valutazione batch consente di analizzare più applicazioni contemporaneamente, offrendo una panoramica completa del panorama della modernizzazione nelle applicazioni. Questo articolo illustra il processo di valutazione efficiente di più repository.
La valutazione batch è particolarmente utile per la pianificazione della migrazione perché consente di valutare in modo efficiente la conformità e i requisiti di varie applicazioni contemporaneamente. Usando la valutazione batch, è possibile valutare contemporaneamente repository diversi e ottenere report di valutazione dettagliati per ogni applicazione. Produce due tipi di report per supportare la pianificazione della migrazione:
- Report per app: fornisce informazioni dettagliate su tutti i problemi di modernizzazione identificati a livello di singolo repository.
- report Aggregated report: presenta una prospettiva complessiva di tutte le applicazioni valutate, che offre informazioni dettagliate di riepilogo, raccomandazioni su servizi Azure, piattaforme di destinazione e percorsi di aggiornamento. Inoltre, il report aggregato include collegamenti per facilitare l'accesso a ogni report dell'app.
La valutazione batch offre i vantaggi seguenti:
Visibilità tra applicazioni:
- Report aggregati: ottenere una visualizzazione completa tra le applicazioni.
- Analisi tra più repository: Identificare modelli e dipendenze comuni tra applicazioni.
- Informazioni dettagliate sulla definizione delle priorità: comprendere quali applicazioni necessitano di attenzione immediata.
Scalabilità ed efficienza:
- Elaborazione parallela: usare agenti di codifica cloud per elaborare più repository contemporaneamente.
- Flussi di lavoro automatizzati: integrazione con pipeline CI/CD per la valutazione pianificata.
- Risparmio di tempo: ridurre il tempo totale di valutazione da settimane a ore.
Prerequisiti
- Modernizzare la CLI.
- Accesso a tutti i repository da valutare.
- L'autenticazione di GitHub è configurata (
gh auth login).
Configurare gli archivi
L'agente di modernizzazione supporta diversi modi per specificare i repository da valutare:
- Cartella corrente: Valuta il progetto nella tua attuale directory di lavoro.
- Inserimento manuale: immettere direttamente i percorsi delle directory locali o gli URL Git remoti.
- File di configurazione del repository: usare un file di configurazione JSON che elenca tutti i repository.
File di configurazione del repository
Per le operazioni batch in molti repository, creare un file di configurazione JSON per elencare tutti i repository. Ad esempio, crealo nella directory di lavoro .github/modernize/repos.json oppure specifica un percorso personalizzato.
Assicurarsi di avere le autorizzazioni appropriate per i repository o crearne una copia tramite fork.
Formato semplice (matrice di repository):
[
{
"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"
}
]
Formato completo (con rami e percorsi locali):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Ogni voce del repository supporta i campi seguenti:
| Campo | Descrizione | Obbligatorio |
|---|---|---|
name |
Nome amichevole per il repository (usato nei report e nei dashboard). | Sì |
url |
URL clone Git in formato HTTPS o SSH. | Uno di url o path |
path |
Percorso assoluto della directory locale. | Uno di url o path |
branch |
Ramo da controllare dopo la clonazione. | No |
description |
Descrizione leggibile dagli umani | No |
Formato completo con raggruppamento di app (facoltativo, per la creazione di report organizzati):
È possibile aggiungere una apps[] sezione per raggruppare i repository in applicazioni logiche. Quando vengono definite le app, il report aggregato organizza i risultati in base all'applicazione e supporta la distribuzione dei report in destinazioni esterne.
{
"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"
}
}
]
}
Ogni voce nell’app supporta:
| Campo | Descrizione | Obbligatorio |
|---|---|---|
identifier |
Nome visualizzato univoco dell'applicazione. | Sì |
description |
Descrizione leggibile dagli umani | No |
repos |
Elenco dei nomi dei repository che appartengono a questa app. | Sì |
output |
Dove distribuire il report di valutazione dell'app dopo la generazione. | No |
Il output campo supporta i tipi di distribuzione seguenti:
| Tipo | Descrizione | Campi obbligatori |
|---|---|---|
local |
Copiare i report in una directory locale. | path |
git |
Effettuare il push dei report in un repository Git. Il formato dell'URL è https://github.com/org/repo.git#branch:path. |
url |
Suggerimento
È possibile includere repository di organizzazioni diverse e usare metodi di autenticazione diversi purché si abbia accesso.
L'agente di modernizzazione rileva automaticamente il repos.json file in .github/modernize/repos.json quando si seleziona Da un file di configurazione in modalità interattiva. È anche possibile fornire un percorso personalizzato.
Eseguire la valutazione batch
Sono disponibili due modalità di esecuzione:
- Esecuzione locale: l'agente di modernizzazione elabora i repository uno dopo l'altro nel computer locale. Questa modalità funziona meglio per un set più piccolo di applicazioni o per i test iniziali. Supporta sia gli URL Git sia i repository di percorsi locali.
- Delega dell'agente di codifica cloud: l'agente di modernizzazione invia attività agli agenti di codifica cloud GitHub per l'elaborazione parallela nel cloud. Questa modalità è più veloce per scenari multi-repo.
Importante
La delega dell'agente di codifica cloud richiede che i repository abbiano URL del repository GitHub (github.com). I repository di percorsi locali e i provider diversi da GitHub (GitLab, Azure DevOps) non sono supportati per la delega nel cloud. Usare l'esecuzione locale per tali repository.
Suggerimento
Usando la delega dell'agente di codifica cloud, si abilita l'esecuzione parallela in tutti i repository. Questo approccio riduce significativamente il tempo totale di valutazione per i portafogli di grandi dimensioni.
Modalità interattiva (valutazione locale)
Eseguire l'agente di modernizzazione:
modernizeSelezionare Valutare dal menu principale.
Scegliere come specificare i repository di destinazione. Selezionare Da un file di configurazione per usare un
repos.jsonfile.Suggerimento
È anche possibile selezionare Input manuale per digitare direttamente percorsi locali o URL Git remoti oppure Cartella corrente per valutare il progetto nella tua directory attuale.
Se il
repos.jsonfile viene rilevato nel percorso predefinito, l'agente lo riempie automaticamente. In caso contrario, immettere il percorso del file di configurazione e premere INVIO.Tutti i repository sono selezionati per impostazione predefinita. Deselezionare tutti i repository da ignorare e quindi premere INVIO per confermare la selezione.
- Usare i tasti di direzione per spostarsi e premere Spazio per attivare o disattivare singoli repository.
Scegliere la modalità di esecuzione. Selezionare Valuta localmente.
Selezionare i domini di valutazione da analizzare. Scegliere tra Java upgrade e Cloud Readiness, quindi premere Invio.
Esaminare e configurare le opzioni di valutazione. La pagina di configurazione mostra le opzioni raggruppate per lingua e dominio:
- Java/GENERAL: Copertura dell'analisi (solo problema, problemi e Tecnologie, o problemi, tecnologie e Dipendenze).
- Java/JAVA UPGRADE: Runtime di destinazione (OpenJDK 11, 17 o 21).
- Java/CLOUD READINESS: Servizi di calcolo di destinazione, Sistema operativo di destinazione e Containerizzazione.
- .NET/CLOUD READINESS: Servizi di calcolo mirati.
Usare i tasti di direzione per spostarsi, premere INVIO per modificare un valore o selezionare Continua per continuare con le impostazioni correnti.
Suggerimento
Le impostazioni predefinite consigliate funzionano per la maggior parte degli scenari. È necessario modificare queste impostazioni solo se si hanno requisiti specifici, ad esempio la destinazione di una determinata versione JDK o Azure servizio di calcolo.
Immettere il percorso di output per i risultati della valutazione o premere INVIO per accettare l'impostazione predefinita.
L'agente opera automaticamente:
Al termine della valutazione, l'agente apre automaticamente il report aggregato.
Modalità interattiva (delega agli agenti di codifica cloud)
Prima di tutto, configurare gli agenti di codifica cloud in ogni repository di applicazioni. Per configurare i Cloud Coding Agents, effettuare un fork dei repository di esempio.
Configurazione per le applicazioni .NET
Configurare per l'esecuzione in Windows per le applicazioni .NET Framework
Per impostazione predefinita, l'agente di codifica Copilot viene eseguito in un ambiente Ubuntu Linux. Per le applicazioni .NET Framework, è necessario un ambiente Windows. Per abilitarla, configurare .github/workflows/copilot-setup-steps.yaml nel main ramo del repository dell'applicazione, come illustrato nell'esempio seguente:
# 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
Per saperne di più su: Personalizzazione dell'ambiente di sviluppo di Copilot con i passaggi di configurazione di Copilot
Disabilitare il firewall
Disabilitare il firewall integrato dell'agente di codifica di Copilot nelle impostazioni del repository, come illustrato nell'immagine seguente.
Configurazione per le applicazioni Java
Configurare il Modernization MCP Server di GitHub Copilot nella sezione Agente di codifica cloud delle impostazioni del repository come riportato nel seguente esempio:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Gradi
Eseguire l'agente di modernizzazione:
modernizeSelezionare Valutare dal menu principale.
Scegliere come specificare i repository di destinazione. Selezionare Da un file di configurazione per utilizzare un
repos.jsonfile oppure selezionare Inserimento manuale per immettere direttamente gli URL del repository GitHub.Se è stata selezionata l'opzione Da un file di configurazione e il
repos.jsonfile viene rilevato nel percorso predefinito, l'agente lo riempie automaticamente. In caso contrario, immettere il percorso del file di configurazione e premere INVIO.Tutti i repository sono selezionati per impostazione predefinita. Deselezionare tutti i repository da ignorare e quindi premere INVIO per confermare la selezione.
- Usare i tasti di direzione per spostarsi e premere Spazio per attivare o disattivare singoli repository.
Scegliere la modalità di esecuzione. Selezionare Delegare agli agenti cloud.
Annotazioni
Quando si delega agli agenti di codifica cloud, la selezione del dominio e i passaggi di configurazione della valutazione non sono supportati. L'agente cloud usa le configurazioni predefinite per eseguire la valutazione.
Immettere il percorso di output per i risultati della valutazione o premere INVIO per accettare l'impostazione predefinita.
L'agente delega automaticamente le attività di valutazione per ogni repository agli agenti di codifica cloud e le esegue nel cloud in parallelo.
L'agente recupera i risultati della valutazione per app a livello locale e genera in loco il report aggregato.
Al termine della valutazione, l'agente apre automaticamente il report aggregato.
Modalità non interattiva (interfaccia della riga di comando)
È anche possibile usare la modalità non interattiva specificando direttamente gli argomenti di comando. Usare il comando modernize assess:
Valutare in locale usando un file di configurazione del repository:
modernize assess --source .github/modernize/repos.json
Valutare più repository specificando direttamente le origini:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Valutare delegando gli agenti di codifica cloud:
modernize assess --source .github/modernize/repos.json --delegate cloud --wait
Per altre informazioni, vedere Valutare - Comandi dell'interfaccia della riga di comando.
Informazioni sul report aggregato
Il report aggregato offre una visualizzazione completa delle applicazioni valutate nel modo seguente:
Dashboard
- Snapshot dell'integrità del portfolio: il numero totale di app, quante necessitano di aggiornamenti, e i conteggi aggregati di blocchi e problemi.
- Distribuzione della tecnologia: quali framework sono in uso e quante app le condividono.
- Distribuzione del lavoro: se la migrazione complessiva è una piccola o grande impresa.
Raccomandazioni
- Azure Services: mappa le dipendenze correnti agli equivalenti Azure consigliati. Le dipendenze condivise tra le app vengono decise una sola volta, in modo da evitare la rielaborazione per app.
- Piattaforma di destinazione: guida alla scelta dell'hosting, ad esempio App contenitore di Azure rispetto al servizio Azure Kubernetes e illustra le opportunità di consolidamento.
- Percorso di aggiornamento: identifica le app che necessitano di aggiornamenti del framework come prerequisito, separando il lavoro di aggiornamento dal lavoro di migrazione.
- Onde di migrazione: sequenzia le app in base all'idoneità e al rischio in fasi. Questo approccio consente la vittoria anticipata, mentre le app più difficili vengono preparate in parallelo.
Matrice di valutazione delle applicazioni
- Panoramica rapida per ogni applicazione su aspetti del framework, piattaforma di destinazione, raccomandazione di aggiornamento, scomposizione dei problemi (obbligatorio, potenziale, facoltativo), ridimensionamento e altro ancora.
- Collegamenti a singoli report dell'app per il drill-down quando necessario.
Risoluzione dei problemi relativi all'analisi batch
Problemi comuni
Errori di accesso al repository:
- Verificare l'autenticazione di GitHub usando
gh auth status. - Assicurarsi di avere accesso a tutti i repository elencati in
repos.json.
Errori di clonazione:
- Verificare che gli URL del repository in
repos.jsonsiano corretti e accessibili. - Assicurarsi di disporre delle autorizzazioni di accesso appropriate per tutti i repository.
- Controllare la connettività di rete e le impostazioni VPN.
Errori di valutazione:
- Controllare se il repository contiene progetti di Java o di .NET validi.
- Verificare che i file di compilazione esistano, ad esempio
pom.xml,build.gradle*.csproj,*.sln, o*.slnx. - Esaminare i messaggi di errore nell'output della console.
Problemi di delega dell'agente di codifica cloud:
- Assicurarsi di disporre delle autorizzazioni appropriate per creare flussi di lavoro GitHub Actions.
- Controlla le autorizzazioni di GitHub Actions e i limiti di quota per l'organizzazione.
- Per le app di .NET Framework, assicurarsi che la configurazione del runner di Windows sia impostata correttamente.
- Controllare la configurazione del server MCP.
Passaggi successivi
Dopo aver completato la valutazione batch, è possibile:
Continuare il flusso di lavoro di modernizzazione:
- Eseguire l'aggiornamento batch tra repository : applicare aggiornamenti coerenti in base ai risultati della valutazione.
Altre informazioni:
Inviare commenti
Valiamo l'input! Se si hanno commenti e suggerimenti sulla valutazione batch o sull'agente di modernizzazione, creare un problema nel repository github-copilot-appmod o usare il modulo di feedback sulla modernizzazione GitHub Copilot.