Creare una valutazione della modernizzazione delle app

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 .

  1. 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>
    
  2. Assicurati di disporre del ruolo roles/aiplatform.user o di un ruolo simile nel progetto.

  3. 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 a 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, 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 eseguendo codmod 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 in codmod.
  • --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 --context o --context-file da 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. 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 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-section nel comando create 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 section e revise section supportano solo il formato del report html.
  • create section, revise section, list-sections prevedono che il flag --from-report rimandi 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 codmod e premi Tab per 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 esempio html, 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 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 modello gemini-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.