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
- Decision maker
- 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 tua workstation. Per ulteriori informazioni, 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 la sezione 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, ti 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
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.user
o 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 scoprire di più, consulta la sezione
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 Google Cloud regione. 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 il test predefinito e come personalizzarlo 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
.--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.--format <html|markdown|odt|json>
: il formato utilizzato per il report generato. Il valore predefinito è HTML.--allow-large-codebase
: per impostazione predefinita,codmod
chiederà 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,codmod
genera 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,codmod
esegue 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_images
per supportare PDF e immagini incodmod
.
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:
- Microsoft Workload Transformation (
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. - Cloud to Cloud Workload Transformation (
CLOUD_TO_CLOUD
): da utilizzare con applicazioni eseguite su altre infrastrutture hyperscaler. La valutazione si concentrerà sulle modifiche consigliate per trasformare l'applicazione, ad esempio la mappatura di altri servizi del fornitore di cloud ai serviziGoogle Cloud . - Legacy Java Transformation (
JAVA_LEGACY_TO_MODERN
): da utilizzare con applicazioni che eseguono Java versione 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). - 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.
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 di progetto e della descrizione per ogni contenuto della cartella per aiutarti a orientarti nei file di progetto.classes
: un catalogo di classi di codice con informazioni su ciascuna 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 virgole.
Creare 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.codmod
rileva 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
--context
e--context-file
: specifica la richiesta di modifica. --from-report
: specifica il percorso del file del report esistente.--from-section
: il nome della sezione da utilizzare come base per una nuova sezione (ad es. Panoramica, Architettura).
Per visualizzare tutte le sezioni disponibili in un report specifico, esegui questo comando:
codmod list-sections --from-report "REPORT"
Modificare una sezione di un 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-section
nel comandocreate section
è facoltativo. - Per impostazione predefinita, viene utilizzato un LLM 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 section
erevise section
supportano solo il formato del reporthtml
.create section
,revise section
,list-sections
prevedono che il flag--from-report
faccia riferimento a un report in formato HTML.
Stima i costi della 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
.
Risoluzione dei problemi
- Autorizzazione negata:se visualizzi un errore "Autorizzazione negata",
assicurati di aver concesso l'autorizzazione di esecuzione al binario
codmod
eseguendo 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,
codmod
utilizza il modellogemini-2.5-pro
. Tuttavia, questo è soggetto a modifiche poiché 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à con le 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.