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 relativi allo strumento codmod.
Informazioni su App Modernization Assessment
La procedura di valutazione della modernizzazione tipica 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 al cloud.
Questo strumento è destinato ai seguenti ruoli:
- Architetti IT
- Responsabili delle decisioni
- Proprietari dell'applicazione
Lo strumento codmod ha lo scopo di accelerare la trasformazione delle applicazioni fornendo
una visibilità chiara 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
consigli 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 workstation. Per saperne di più, vedi Installa gcloud CLI.
Prezzi
Il costo dell'utilizzo di Gemini per la valutazione del codice è determinato principalmente dalle dimensioni della codebase ed è misurato in token. La seguente tabella mostra le stime dei costi che puoi aspettarti di vedere in base alle tue righe di codice e al modello che scegli:
| Codebase | Linee di codice (LOC) | Costo stimato | |||
|---|---|---|---|---|---|
| adattivo | 2.0-flash | 2.5-pro (predefinito) | 2.5-flash | ||
| Spring Petclinic | ~6500 | 20 $ | 2 $ | 30 $ | 4 $ |
| James Project | ~1.000.000 | 60 $ | 30 $ | $ 500 | 40 $ |
| Elasticsearch | ~5.000.000 | 200 $ | 200 $ | 3000 $ | 200 $ |
Questi valori potrebbero essere una sovrastima perché non tengono conto di possibili risparmi dovuti a quanto segue:
- Prezzi ridotti per le query brevi.
- Prezzi ridotti per la memorizzazione implicita nella cache.
- Sconti per impegno di utilizzo (CUD).
I costi per questi parametri dovrebbero rappresentare una parte trascurabile del costo totale, soprattutto per i codebase più grandi. Per ulteriori informazioni, consulta la sezione Prezzi dell'API Gemini.
Informazioni aggiuntive
Lo strumento utilizza le funzionalità avanzate di comprensione e analisi 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 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 contribuire a valutazioni più mirate e potenzialmente ridurre il tempo di elaborazione
complessivo.
Configura codmod
Questa sezione fornisce istruzioni di installazione e autenticazione per utilizzare lo 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.
Autenticati per 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 la CLI:
gcloud services enable aiplatform.googleapis.com --project <project-id>Assicurati di disporre del ruolo
roles/aiplatform.usero di un ruolo simile nel progetto.Per 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 scoprire di più, consulta
Come funzionano le credenziali predefinite dell'applicazione.
Gestire 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 correnti e i relativi valori, esegui il seguente comando:
codmod config list
Impostare 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' Google Cloud ID progetto.
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.
Ottenere 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
Rimuovere 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
Creare un report del test codmod
Le sezioni seguenti descrivono come creare la valutazione predefinita e come personalizzarla in base alle tue esigenze.
Creare 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 specificato 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 con i flag -p "PROJECT_ID" e -r "REGION", rispettivamente.
Puoi anche specificare i seguenti flag facoltativi:
--modelset [2.0-flash|2.5-flash|2.5-pro|adaptive]: specifica quali modelli Gemini utilizzare. Il valore predefinito è2.5-pro. Adaptive offre una riduzione significativa dei costi con un potenziale compromesso nella qualità dei report rispetto a2.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à la conferma prima di analizzare codebase più grandi di 1 milione di righe di codice, per evitare costi elevati. Questa opzione funge da conferma non interattiva. Puoi anche abilitare questa opzione per impostazione predefinita eseguendocodmod config set allow_large_codebase true.--improve-fidelity: se impostato,codmodgenera le sezioni in sequenza anziché in parallelo. Ciò migliora la coerenza tra le diverse sezioni del report finale, ma richiede un tempo di esecuzione più lungo.--force-include <strings>,--force-exclude <strings>: per impostazione predefinita,codmodesegue la scansione delle estensioni di 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>: come--context, dove il contesto è fornito nel file specificato.--supporting-documents <path>: specifica una directory di documentazione di supporto sul codebase. È possibile fare riferimento ai file in questa directory dal contesto fornito con i flag--contexto--context-fileda includere 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"
Creare un report incentrato sul livello dati
Se è necessario prestare maggiore attenzione al data layer, è possibile creare un report incentrato su quest'area:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
Creare un report per uno specifico intento di trasformazione
Se vuoi concentrare il report su un particolare intento di modernizzazione, puoi utilizzare uno dei seguenti intent supportati:
- Trasformazione dei carichi di lavoro Microsoft (
MICROSOFT_MODERNIZATION): utilizza con le applicazioni in esecuzione su Microsoft OS. 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 carichi di lavoro da cloud a cloud (
CLOUD_TO_CLOUD): da utilizzare con applicazioni in esecuzione su altre infrastrutture hyperscaler. La valutazione si concentrerà sulle modifiche consigliate per trasformare l'applicazione, ad esempio la mappatura di altri servizi di fornitori di cloud ai serviziGoogle Cloud . - Legacy Java transformation (
JAVA_LEGACY_TO_MODERN): da utilizzare con applicazioni che eseguono Java versione Java 8 o simili. La valutazione si concentrerà sulla ricerca delle dipendenze di upgrade e delle aree del codice interessate dal passaggio a Java 21 (la versione LTS attuale). - Legacy Java WILDFLY transformation (
WILDFLY_LEGACY_TO_MODERN): utilizza con codebase Java EE/Jakarta EE in esecuzione su versioni del server delle applicazioni WildFly precedenti all'ultima. La valutazione si concentrerà sull'identificazione delle dipendenze di upgrade e delle aree del codice interessate dall'upgrade della versione del server delle applicazioni WildFly, incluse le modifiche necessarie per le differenze e la compatibilità delle API. - Migrazione di applicazioni C/C++ all'architettura Arm (
ARM_MIGRATION): utilizza questa opzione con le applicazioni C/C++ per valutare la loro idoneità e l'impegno necessario per la migrazione dalle architetture basate su x86 a quelle 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 riuscita 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"
Creare un report con sezioni aggiuntive
Lo strumento supporta l'inclusione di sezioni aggiuntive non 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 per ogni contenuto della cartella per aiutarti a orientarti nei file del progetto.classes: un catalogo di classi di codice con informazioni su ogni classe e le relative dipendenze da altre classi. Le lingue supportate 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 virgola.
Crea un report personalizzato
Se vuoi esplorare 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 modello LLM per espandere il contesto fornito e
adattarlo per 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 di file di testo o PDF.codmodrileva la struttura e chiede l'approvazione per continuare a generare il report.--skip-template-approval: ignora la richiesta di approvazione quando si utilizza il flag--from-template.
Modificare un report esistente
Puoi creare una nuova sezione in un report o modificarne una esistente in base a una sezione specifica. Ad esempio, potresti voler concentrarti su un aspetto particolare dell'architettura del sistema o su un particolare tipo 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"
Modificare 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"
Creare 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, un LLM viene utilizzato per espandere il contesto fornito e
adattarlo per 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 del reporthtml.create section,revise section,list-sectionsprevedono che il flag--from-reportrimandi a un report in formato HTML.
Stima dei 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.
Impostare il livello di verbosità
Il livello di dettaglio di codmod viene configurato utilizzando il flag --verbosity LEVEL.
Il livello di verbosità dei log è uno dei seguenti: debug, info,
warn, error o none. Il valore predefinito è warn.
Controllare e aggiornare la versione della CLI codmod
La CLI codmod può verificare automaticamente se è disponibile una versione più recente.
Controlli automatici
Ogni 24 ore, la CLI 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 sul terminale.
Il messaggio include il nuovo numero di versione e un link per scaricare l'aggiornamento.
Questo processo ti aiuta a rimanere al passo con le ultime funzionalità,
miglioramenti e correzioni di bug.
Disattiva i controlli delle versioni
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 di nuovo 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 aiuta a digitare rapidamente comandi, flag e
argomenti premendo il tasto Tab per visualizzare e selezionare le opzioni disponibili.
Il completamento automatico offre i seguenti vantaggi:
- Comandi e flag di completamento automatico: 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 set di modelli disponibili (ad esempio,2.0-flash,2.5-pro).codmod create --format [TAB]suggerisce formati di output (ad esempiohtml,json,markdown).codmod create --intent [TAB]suggerisce intenti 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 del file viene offerto solo per i flag o gli argomenti che
si aspettano un percorso di file o directory (ad esempio,
--codebase,--output-path). Altri flag, come--project, non suggeriscono più i nomi dei 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 ottenere
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, potresti aggiungere quanto segue a ~/.bashrc:
source <(codmod completion bash)
Assicurati di riavviare la shell o di caricare il profilo (ad esempio, source
~/.bashrc) affinché le modifiche abbiano effetto.
Risoluzione dei problemi
- Autorizzazione negata: se visualizzi un errore "Autorizzazione negata",
assicurati di aver concesso l'autorizzazione di esecuzione al binario
codmodeseguendo il comandochmod +x codmod. - L'interfaccia a riga di comando sembra bloccarsi:l'analisi può richiedere molto tempo, ma in genere puoi
vedere l'avanzamento nella barra di avanzamento dell'interfaccia a riga di comando. 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-2.5-pro. Tuttavia, questo è soggetto a modifiche in quanto diversi modelset 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 fondamentali 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"
Ricevere assistenza e fornire un feedback
Per contribuire a migliorare la qualità di questo prodotto, raccogliamo dati di utilizzo pseudonimizzati. Questi dati vengono trattati in conformità alle nostre norme sulla privacy Google Cloud Informativa sulla privacy. Puoi modificare la tua preferenza in qualsiasi momento eseguendo il seguente 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.