Migration Center App Modernization Assessment (codmod) è uno strumento basato sull'AI che automatizza il processo di valutazione della modernizzazione della tua applicazione. Questa pagina descrive i passaggi per installare, utilizzare e risolvere i problemi dello strumento codmod.
Informazioni su App Modernization Assessment
Il tipico processo di valutazione della modernizzazione richiede alcune settimane e molta esperienza. Automatizzando questo processo, lo strumento codmod riduce notevolmente questo tempo a poche ore.
Questo strumento mira a fornire informazioni basate su prove sull'architettura, sulla funzionalità e sui potenziali blocchi dell'applicazione attuale che potrebbero rallentare la trasformazione nel cloud.
Questo strumento è destinato ai seguenti ruoli:
- Architetti IT
- Decision maker
- Proprietari dell'applicazione
Lo strumento codmod mira ad accelerare la trasformazione delle applicazioni fornendo una chiara visibilità delle modifiche richieste e dei vantaggi ottenuti dalla trasformazione dell'applicazione in Google Cloud. codmod è uno strumento CLI portatile che utilizza Gemini per analizzare il codice sorgente e fornisce suggerimenti basati sulle best practice di Google Cloud .
Prima di iniziare
Lo strumento codmod richiede i seguenti prerequisiti:
- Una workstation Linux o Windows (10 o versioni successive).
- Accesso a un progetto Google Cloud in cui è abilitata l'API Vertex AI.
- Un'installazione di gcloud CLI sulla tua workstation. Per saperne di più, consulta Installa gcloud CLI.
Prezzi
Il costo dell'utilizzo di Gemini per la valutazione del codice dipende principalmente dalle dimensioni del codebase e viene misurato in token. La tabella seguente mostra le stime dei costi che puoi aspettarti di vedere in base alle righe di codice e al modello che scegli:
| Codebase | Righe di codice (LOC) | Costo stimato | ||||
|---|---|---|---|---|---|---|
| adaptive | 2.5-flash | 2.5-pro | 3.5-flash | 3.8-flash (predefinito) | ||
| Spring Petclinic | ~6500 | 20 $ | 3 $ | 20 $ | 3 $ | 9 $ |
| James Project | ~1.000.000 | 40 $ | 30 $ | 200 $ | 200 $ | 200 $ |
| Elasticsearch | ~5.000.000 | 200 $ | 200 $ | $ 900 | $ 500 | $ 500 |
Questi valori potrebbero essere una sovrastima perché non tengono conto dei possibili risparmi dovuti a quanto segue:
- Prezzi ridotti per le query brevi.
- Prezzi ridotti per la memorizzazione nella cache implicita.
- Sconti per impegno di utilizzo (CUD).
I costi per questi parametri dovrebbero essere una parte trascurabile del costo totale, soprattutto per codebase più grandi. Per ulteriori informazioni, consulta i prezzi dell'API Gemini.
Informazioni aggiuntive
Lo strumento utilizza le funzionalità avanzate di analisi e comprensione del codice dell'API Vertex AI. Per ulteriori informazioni sui modelli disponibili e sulle loro funzionalità, consulta Modelli Google nella documentazione dell'API Vertex AI.
Per mantenere prestazioni e un'efficienza dei costi ottimali, codmod ha un limite di dimensioni del codebase di circa 6 milioni di righe di codice.
Per i codebase che superano questo limite, consigliamo di suddividerli in parti più piccole e gestibili per l'analisi. L'analisi di sezioni più piccole può anche aiutare a eseguire valutazioni più mirate e potenzialmente ridurre il tempo di elaborazione complessivo.
Configura codmod
Questa sezione fornisce istruzioni di installazione e autenticazione per l'utilizzo dello strumento codmod.
Installa codmod
Windows
Esegui il seguente comando in Windows PowerShell per scaricare l'ultima versione di codmod:
$version=curl.exe -s https://codmod-release.storage.googleapis.com/latest
curl.exe -O "https://codmod-release.storage.googleapis.com/${version}/windows/amd64/codmod.exe"
Linux
Esegui questo comando per scaricare l'ultima versione di codmod:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/linux/amd64/codmod"
chmod +x codmod
Per utilizzare il comando codmod, aggiungi l'eseguibile al percorso o crea un alias.
Esegui l'autenticazione su Google Cloud
Per utilizzare lo strumento codmod, devi disporre di un progetto Google Cloud .
Assicurati che l'API Vertex AI sia abilitata nel progetto nella console o utilizzando l'interfaccia a riga di comando:
gcloud services enable aiplatform.googleapis.com --project <project-id>Assicurati di disporre del ruolo
roles/aiplatform.usero di un ruolo simile nel progetto.Per eseguire l'autenticazione, esegui questo comando:
gcloud auth application-default login
In alternativa, puoi utilizzare un account di servizio e impostare la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS. Per saperne di più, consulta Come funzionano le credenziali predefinite dell'applicazione.
Gestisci la configurazione di codmod
Le sezioni seguenti spiegano come configurare codmod con il comando codmod config.
Elenca tutte le impostazioni
Per visualizzare tutte le proprietà di configurazione attuali e i relativi valori, esegui il seguente comando:
codmod config list
Imposta un valore predefinito per un flag
Per impostare un valore predefinito per una proprietà, utilizza il comando set. Ad esempio, per impostare l'ID progetto predefinito, esegui:
codmod config set project "PROJECT_ID"
Sostituisci PROJECT_ID con l'ID progetto Google Cloud .
Per impostare la regione predefinita, esegui:
codmod config set region "REGION"
Sostituisci REGION con la regione Google Cloud . Consulta l'elenco delle regioni disponibili.
Se non sai quale regione utilizzare, usa us-central1.
Recupera un valore specifico
Per visualizzare il valore di una singola proprietà, utilizza il comando get. Ad esempio, per ottenere l'ID progetto configurato, esegui questo comando:
codmod config get project
Annulla l'impostazione di un valore predefinito
Per rimuovere un valore predefinito configurato e ripristinare l'impostazione predefinita originale dello strumento, utilizza il comando unset. Ad esempio, per rimuovere l'ID progetto predefinito, esegui questo comando:
codmod config unset project
Crea un report di valutazione codmod
Le sezioni seguenti descrivono come creare la valutazione predefinita e come personalizzarla in base alle tue esigenze.
Crea il report predefinito
Per creare un report di valutazione, esegui lo strumento codmod con i seguenti flag:
codmod create -c "CODEBASE" -o "OUTPUT"
Sostituisci quanto segue:
CODEBASE: specifica la directory che contiene il codice sorgente da analizzare e può essere specificata più volte.OUTPUT: specifica il percorso in cui viene salvato il report generato. Il report è in formato HTML.
Puoi eseguire l'override del progetto e della regione predefiniti rispettivamente con i flag -p "PROJECT_ID" e -r "REGION".
Puoi anche specificare i seguenti flag facoltativi:
--modelset [2.5-flash|2.5-pro|3.5-flash|3.8-flash|adaptive]: specifica i modelli Gemini da utilizzare. Il valore predefinito è3.8-flash. La modalità Adattiva offre una significativa riduzione dei costi con un potenziale compromesso nella qualità dei report rispetto alla modalità2.5-pro.--format <html|markdown|odt|json>: il formato utilizzato per il report generato. Il valore predefinito è HTML.--allow-large-codebase: per impostazione predefinita,codmodchiederà conferma prima di eseguire l'analisi su codebase di dimensioni superiori a 1 milione di righe di codice, per evitare costi elevati. Questa opzione funge da conferma non interattiva. Puoi anche attivare questa opzione per impostazione predefinita eseguendocodmod config set allow_large_codebase true.--improve-fidelity: se impostato,codmodgenera le sezioni in serie anziché in parallelo. In questo modo, la coerenza tra le diverse sezioni del report finale migliora, ma il tempo di esecuzione è più lungo.--force-include <strings>,--force-exclude <strings>: per impostazione predefinita,codmodanalizza le estensioni dei file più comuni, tra cui Java, .NET e Python. Utilizza questi flag per includere o escludere le estensioni dei file. L'argomento deve essere un'espressione regolare con la sintassi RE2.--experiments: specifica--experiments=enable_pdf,enable_imagesper supportare PDF e immagini incodmod.--context <string>: qualsiasi contesto aggiuntivo che vuoi fornire sul progetto. Lo strumento tiene conto di questo contesto quando genera il report.--context-file <path>: uguale a--context, dove il contesto viene fornito nel file specificato.--supporting-documents <path>: specifica una directory della documentazione di supporto sul codebase. I file in questa directory possono essere referenziati dal contesto fornito con i flag--contexto--context-fileper essere inclusi nell'analisi. I formati supportati includono testo, PDF e immagini (PNG, JPG, JPEG).
Crea un report completo
Se hai bisogno di un'analisi completa, crea un report utilizzando il comando create full:
codmod create full -c "~/mycodebase/" -o "report.html"
Crea un report incentrato sul livello dati
Se è necessaria un'attenzione più approfondita al livello dati, è possibile creare un report incentrato su quest'area:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
Crea un report per un intento di trasformazione specifico
Se vuoi concentrare il report su un particolare intento di modernizzazione, puoi utilizzare uno dei seguenti intenti supportati:
- Trasformazione dei workload Microsoft (
MICROSOFT_MODERNIZATION): da utilizzare con le applicazioni in esecuzione su sistema operativo Microsoft, la valutazione si concentrerà sui percorsi di trasformazione che modernizzeranno i framework basati su .NET per utilizzare l'ultima versione e ridurre le dipendenze dalle licenze Microsoft. - Trasformazione dei workload da cloud a cloud (
CLOUD_TO_CLOUD): da utilizzare con le applicazioni in esecuzione su un'altra infrastruttura di hyperscaler. La valutazione si concentrerà sulle modifiche consigliate per la trasformazione dell'applicazione, ad esempio la mappatura dei servizi di altri fornitori cloud ai serviziGoogle Cloud . - Trasformazione Java legacy (
JAVA_LEGACY_TO_MODERN): da utilizzare con le applicazioni che eseguono la versione Java Java 8 o simile. La valutazione si concentrerà sulla ricerca delle dipendenze di upgrade e delle aree del codice interessate dal passaggio a Java 21 (l'attuale LTS). - Trasformazione WILDFLY Java legacy (
WILDFLY_LEGACY_TO_MODERN): da utilizzare con codebase Java EE/Jakarta EE in esecuzione su versioni del server applicazioni WildFly precedenti all'ultima. La valutazione si concentrerà sull'identificazione delle dipendenze dell'upgrade e delle aree del codice interessate dall'upgrade della versione dell'application server WildFly, incluse le modifiche richieste per le differenze e la compatibilità delle API. - Migrazione di applicazioni C/C++ all'architettura Arm (
ARM_MIGRATION): utilizzala con le applicazioni C/C++ per valutare la loro idoneità e l'impegno richiesto per la migrazione da architetture basate su x86 ad architetture basate su Arm, come le VM Google Cloud Axion C4A. La valutazione si concentra sull'identificazione di potenziali problemi di portabilità del codice, dipendenze specifiche dell'architettura, modifiche al sistema di compilazione e considerazioni sui test necessarie per una transizione di successo ad Arm daGoogle Cloud o da un altro CSP come le istanze Graviton di AWS.
Per creare un report incentrato sull'intent, utilizza il flag --intent:
codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"
Crea un report con sezioni aggiuntive
Lo strumento supporta l'aggiunta di sezioni aggiuntive che non sono incluse per impostazione predefinita per ridurre i costi. Sono supportate le seguenti sezioni:
files: una visualizzazione gerarchica strutturata delle cartelle del progetto e una descrizione dei contenuti di ogni cartella per aiutarti a orientarti tra i file del progetto.classes: un catalogo di classi di codice con informazioni su ogni classe e sulle relative dipendenze da altre classi. I linguaggi supportati sono Java e C#.
Per creare le sezioni aggiuntive, utilizza il flag --optional-sections:
codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"
Sostituisci SECTIONS con un elenco di valori separati da virgole.
Crea un report personalizzato
Se vuoi esplorare alcuni argomenti personalizzati specifici, puoi creare un report personalizzato in base al contesto che fornisci utilizzando il seguente comando:
codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"
Per impostazione predefinita, viene utilizzato un LLM per espandere il contesto fornito e adattarlo in modo da garantire la generazione di una sezione coerente. Puoi disattivare questo comportamento specificando --improve-context=false.
Flag aggiuntivi:
--from-template <path>: specifica un file modello che definisce la struttura del documento in formato file di testo o PDF.codmodrileva la struttura e chiede l'approvazione per continuare a generare il report.--skip-template-approval: salta la richiesta di approvazione quando utilizzi il flag--from-template.
Modifica un report esistente
Puoi creare una nuova sezione in un report o modificare una sezione esistente in base a una sezione specifica. Ad esempio, potresti voler concentrarti su un aspetto particolare dell'architettura del sistema o su un tipo specifico di vulnerabilità della sicurezza.
I comandi che modificano un report richiedono i seguenti flag:
- Uno tra
--contexte--context-file: specifica la richiesta di modifica. --from-report: specifica il percorso del file di report esistente.--from-section: nome della sezione da utilizzare come base per una nuova sezione (ad esempio "Panoramica" o "Architettura").
Per visualizzare tutte le sezioni disponibili in un report specifico, esegui questo comando:
codmod list-sections --from-report "REPORT"
Rivedi una sezione del report
Modifica una sezione esistente eseguendo questo comando:
codmod revise section -c "CODEBASE" --from-report "REPORT" \
-o "REVISED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
Crea una nuova sezione del report
Crea una nuova sezione utilizzando il seguente comando:
codmod create section -c "CODEBASE" --from-report "REPORT" \
-o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
- Il flag
from-sectionnel comandocreate sectionè facoltativo. - Per impostazione predefinita, viene utilizzato un LLM per espandere il contesto fornito e adattarlo in modo da garantire la generazione di una sezione coerente. Puoi disattivare questo comportamento specificando
--improve-context=false.
Tieni presente quanto segue:
create sectionerevise sectionsupportano solo il formato dei reporthtml.create section,revise section,list-sectionsprevedono che il flag--from-reportpunti a un report in formato HTML.
Stima i costi di valutazione
Lo strumento codmod ti aiuta a comprendere il costo di utilizzo dello strumento consentendoti di calcolare il costo approssimativo della creazione di un report. Per visualizzare la stima dei costi, esegui questo comando:
codmod create --estimate-cost -c "CODEBASE"
Le stime dei costi non sono supportate per i comandi create section e create custom.
Imposta il livello di dettaglio
La Preferenza di lettura codmod viene configurata utilizzando il flag --verbosity LEVEL.
Il livello di dettaglio dei log è uno dei seguenti: debug, info,
warn, error o none. Il valore predefinito è warn.
Controlla e aggiorna la versione dell'interfaccia a riga di comando codmod
La CLI codmod può verificare automaticamente se è disponibile una versione più recente.
Controlli automatici
Ogni 24 ore, l'interfaccia a riga di comando esegue il polling di un bucket Cloud Storage per verificare se è stata rilasciata una versione più recente di codmod. Se viene trovata una versione più recente,
vedrai un messaggio di notifica nel terminale.
Il messaggio include il numero della nuova versione e un link per scaricare l'aggiornamento.
Questo processo ti consente di rimanere al passo con le ultime funzionalità, i miglioramenti e le correzioni di bug.
Disabilita i controlli della versione
Se preferisci disattivare il controllo automatico della versione, puoi utilizzare il comando config
set:
codmod config set disable_version_check true
Per riattivare il controllo della versione, imposta nuovamente il valore su false:
codmod config set disable_version_check false
Puoi visualizzare lo stato attuale di questa impostazione e di altre configurazioni eseguendo:
codmod config list
Completamento della riga di comando
Lo strumento CLI codmod supporta il completamento della riga di comando della shell per Bash, Zsh, Fish e PowerShell. Questa funzionalità ti consente di digitare rapidamente comandi, flag e argomenti premendo il tasto Tab per visualizzare e selezionare le opzioni disponibili.
Il completamento automatico offre i seguenti vantaggi:
- Completamento automatico di comandi e flag: inizia a digitare un comando o un flag
codmode premiTabper visualizzare i possibili completamenti. - Scopri le opzioni:visualizza i valori validi per determinati flag. Ad esempio:
codmod create --modelset [TAB]suggerisce i set di modelli disponibili (ad esempio2.0-flash,2.5-pro).codmod create --format [TAB]suggerisce formati di output (ad esempiohtml,json,markdown).codmod create --intent [TAB]suggerisce intent predefiniti.
- Suggerimenti sensibili al contesto: il completamento è personalizzato in base al comando.
Ad esempio:
codmod config set [TAB]suggerisce le chiavi di configurazione disponibili che puoi impostare.codmod config get [TAB]suggerisce le chiavi di configurazione disponibili che puoi ottenere.- Il completamento del percorso file è disponibile solo per i flag o gli argomenti che prevedono un percorso file o directory (ad esempio
--codebase,--output-path). Altri flag, come--project, non suggeriscono più i nomi file.
Abilita il completamento della shell
Prima di attivare il completamento della shell, assicurati che il comando codmod funzioni aggiungendo l'eseguibile al percorso o creando un alias.
Per caricare i completamenti per la tua shell, esegui il comando appropriato. Le istruzioni variano a seconda della shell. Utilizza il comando help per ricevere istruzioni specifiche:
# For Bash
codmod completion bash --help
# For Zsh
codmod completion zsh --help
# For Fish
codmod completion fish --help
# For PowerShell
codmod completion powershell --help
Ad esempio, per caricare il completamento di Bash su Linux, puoi aggiungere quanto segue al tuo ~/.bashrc:
source <(codmod completion bash)
Assicurati di riavviare la shell o di eseguire il sourcing del tuo profilo (ad esempio, source
~/.bashrc) per applicare le modifiche.
Risoluzione dei problemi
- Autorizzazione negata: se ricevi un errore "Autorizzazione negata",
assicurati di aver concesso l'autorizzazione di esecuzione al file binario
codmodeseguendo il comandochmod +x codmod. - La CLI sembra bloccarsi: l'analisi può richiedere molto tempo, ma in genere puoi vedere l'avanzamento nella barra di avanzamento della CLI. Se la barra di avanzamento rimane allo 0% dopo 15 minuti, verifica di avere una quota sufficiente per il modello pertinente. Per impostazione predefinita,
codmodutilizza il modellogemini-3.8-flash. Tuttavia, questo è soggetto a modifiche poiché set di modelli diversi utilizzano modelli diversi per scopi diversi. Segnalazione di errori:in caso di errore che richiede un'indagine, raccogli le informazioni di debug per aiutare il nostro team di sviluppo. I log forniscono dettagli cruciali per la risoluzione dei problemi. Esegui il seguente comando per raccogliere i log, quindi comprimi e condividi l'archivio risultante con il team all'indirizzo codmod-feedback-external@google.com.
codmod collect-logs -o "codmod_logs.zip"
Licenze open source
Puoi scaricare le comunicazioni open source per le dipendenze dell'ultima versione di codmod eseguendo:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"
Ricevi assistenza e fornisci feedback
Per contribuire a migliorare la qualità di questo prodotto, raccogliamo dati di utilizzo pseudoanonimizzati. Questi dati vengono gestiti nel rispetto delle nostre norme sulla privacy Google Cloud Informativa sulla privacy. Puoi modificare la tua preferenza in qualsiasi momento eseguendo questo comando:
codmod config set disable_usage_reporting true
Puoi ricevere assistenza e fornire feedback nei seguenti modi:
- Per ricevere assistenza per
codmod, fai clic sul pulsante Assistenza nel report HTML generato o invia un'email all'indirizzo codmod-feedback-external@google.com. - Per condividere un feedback su
codmod, fai clic sul pulsante Feedback nel report HTML generato.