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
  • 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 .

  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 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 a 2.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 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.

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 comando create 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 e revise section supportano solo il formato del report html.
  • 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 modello gemini-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.