Valuta le applicazioni Java per la modernizzazione

Questa pagina mostra come utilizzare Google Cloud Modernization Hub nella consoleGoogle Cloud per valutare le applicazioni Java aziendali per la containerizzazione Linux e la modernizzazione alle release Java Long-Term Support (LTS) multipiattaforma (come Java 17 o Java 21) su Google Cloud.

Molte applicazioni Java aziendali dipendono da API Java EE legacy, configurazioni di server delle applicazioni proprietarie (come WebLogic, WebSphere o JBoss) o librerie di terze parti obsolete che impediscono il deployment diretto nei container Linux. Una valutazione automatizzata in Modernization Hub analizza il codice sorgente, identifica gli ostacoli alla migrazione, valuta la compatibilità delle dipendenze Maven o Gradle e consiglia percorsi di refactoring per Cloud Run o Google Kubernetes Engine.

Quando utilizzare una valutazione dell'applicazione Java

Esegui una valutazione dell'applicazione Java quando prevedi di eseguire una delle seguenti operazioni:

  • Esegui il replatforming nei container Linux:identifica le dipendenze specifiche dell'ambiente (come l'accesso al file system locale, le librerie JNI o le API del server delle applicazioni proprietarie) prima di inserire le applicazioni nei container per Cloud Run o GKE.
  • Esegui l'upgrade delle versioni di runtime Java:valuta l'impegno e le lacune di compatibilità quando esegui la migrazione da Java 8 o Java 11 alle versioni LTS moderne di Java (Java 17 o Java 21) o la transizione da Java EE (javax.*) a Jakarta EE (jakarta.*).
  • Disaccoppiamento delle architetture monolitiche:scopri i componenti EJB strettamente accoppiati, i broker di messaggi JMS o i deployment WAR ed EAR monolitici che richiedono il refactoring in microservizi cloud-native o applicazioni Spring Boot.

Prima di iniziare

Prima di avviare un job di valutazione Java nella console, abilita le API richieste, verifica le autorizzazioni Identity and Access Management (IAM) del progetto, registra un bucket delle impostazioni dello spazio di lavoro e carica l'archivio del codice sorgente in Cloud Storage.

Abilita le API richieste

Per utilizzare Modernization Hub, abilita le API di servizio Google Cloud richieste nel tuo progetto:

gcloud services enable \
    aiplatform.googleapis.com \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    cloudresourcemanager.googleapis.com \
    compute.googleapis.com \
    logging.googleapis.com \
    storage.googleapis.com \
    --project=PROJECT_ID

Sostituisci PROJECT_ID con l'ID progetto Google Cloud .

Ruoli obbligatori

L'esecuzione di una valutazione richiede autorizzazioni IAM distinte per due identità che utilizzano Cloud Build e Gemini Enterprise Agent Platform:

  • Utente della console autenticato (che avvia il job e accede ai bucket):
    • Storage Admin (roles/storage.admin)
    • Utente Service Account (roles/iam.serviceAccountUser)
    • Editor Cloud Build (roles/cloudbuild.builds.editor)
  • Service account di servizio (che esegue il contenitore di valutazione):
    • Utente di Agent Platform (roles/aiplatform.user)
    • Storage Object User (roles/storage.objectUser) o Storage Admin (roles/storage.admin)

Per ottenere le autorizzazioni necessarie per avviare una valutazione ed eseguire il contenitore di analisi, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

  • Utente: gestisci gli archivi di origine e le configurazioni dei bucket: Amministratore spazio di archiviazione (roles/storage.admin)
  • Utente: collega il account di servizio dedicato al job: Service Account User (roles/iam.serviceAccountUser)
  • Utente: invia job di valutazione (cloudbuild.builds.create) e visualizza i log: Editor Cloud Build (roles/cloudbuild.builds.editor)
  • Service account: esegui il container codmod: Utente Agent Platform (roles/aiplatform.user)
  • Service account: leggi gli archivi di origine e scrivi i report di valutazione: Storage Object User (roles/storage.objectUser) o Storage Admin (roles/storage.admin)

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per avviare una valutazione ed eseguire il contenitore di analisi. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per avviare una valutazione ed eseguire il container di analisi sono necessarie le seguenti autorizzazioni:

  • Utente (Cloud Storage, Cloud Build e IAM):
    • storage.objects.get (per scaricare o leggere i file)
    • storage.objects.list (per elencare i file all'interno del bucket)
    • storage.objects.create (per caricare o creare nuovi file)
    • storage.objects.update (per modificare i metadati dei file esistenti)
    • storage.objects.delete (per eliminare o sovrascrivere i file)
    • storage.buckets.get (Visualizza configurazioni a livello di bucket)
    • cloudbuild.builds.create (per inviare job di valutazione)
    • iam.serviceAccounts.actAs (per collegare il account di servizio al job)
  • Service account (Agent Platform e Cloud Storage):
    • aiplatform.endpoints.predict (per eseguire l'analisi del codice assistita dall'AI)
    • storage.objects.get (per leggere o scaricare gli archivi delle fonti)
    • storage.objects.list (per elencare i file nella cartella di input)
    • storage.objects.create (per scrivere report di valutazione)
    • storage.objects.delete (per eliminare i file temporanei)

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Configurare un bucket delle impostazioni del workspace

Registra un bucket Cloud Storage designato nella pagina Modernization Hub > Impostazioni (ad esempio, gs://PROJECT_ID-modernization-hub) per archiviare i file di stato binario dello spazio di lavoro (dotnet_jobs.pb, java_jobs.pb e mainframe_jobs.pb).

Rivedere i limiti di dimensioni del codebase

Per mantenere prestazioni ottimali, il motore di valutazione codmod applica le seguenti linee guida per la scalabilità e l'archiviazione:

  • Dimensioni massime del codebase:circa 6 milioni di righe di codice (LOC) per job di valutazione. Se il repository supera i sei milioni di LOC, dividi il codice in moduli o servizi più piccoli e indipendenti prima di caricarlo.
  • Struttura dell'archivio pulita:escludi i binari compilati, le cache dei pacchetti e i metadati del controllo della versione (ad esempio target/, build/, bin/, node_modules/ e .git/) dal file zip in modo che vengano analizzati solo i file di origine e le configurazioni di build.

Prepara e carica l'archivio delle origini Java

Crea un pacchetto del codebase Java come file ZIP che esclude gli output di build e carica il file in un bucket Cloud Storage nel tuo progetto.

  1. Sulla tua macchina locale, crea un file zip del repository utilizzando uno dei seguenti metodi:

    • Utilizzo di Git (consigliato):

      git archive --format=zip -o repository.zip HEAD
      
    • Utilizzo di zip CLI:

      zip -r repository.zip . \
          -x "*.git*" "*/target/*" "*/build/*" "*/bin/*" "*/node_modules/*"
      
  2. Carica il file zip nel bucket Cloud Storage di destinazione utilizzando Google Cloud CLI:

    gcloud storage cp repository.zip \
        gs://INPUT_BUCKET/codebase/repository.zip
    

    Sostituisci INPUT_BUCKET con il nome del bucket Cloud Storage di destinazione.

Esegui un test

Per avviare un job di valutazione in Modernization Hub:

  1. Nella console, vai alla pagina Modernization Hub.

    Vai a Modernization Hub

  2. Nella pagina di destinazione, individua la scheda Carichi di lavoro Java e fai clic su Avvia valutazione.

  3. Nel campo Nome job, inserisci un nome univoco per il job di valutazione.

  4. Nel campo Posizione del codice sorgente, seleziona un bucket Cloud Storage contenente il codice sorgente come file zip.

  5. Nel campo Posizione report, seleziona un bucket Cloud Storage in cui salvare i report di valutazione generati.

  6. Dall'elenco Modernization recipe (Ricetta di modernizzazione), seleziona una ricetta di modernizzazione.

  7. Dall'elenco Posizione, seleziona una regione per il job di valutazione.

  8. Nel campo Service account, seleziona un account di servizio dedicato con i ruoli IAM richiesti elencati nella sezione Ruoli richiesti. Cloud Build esegue il job di valutazione con questo account di servizio, che richiede le autorizzazioni Agent Platform User e Cloud Storage.

  9. Fai clic su Genera report.

    La console avvia un contenitore di valutazione in background che esegue il motore codmod per analizzare il progetto. Lo stato del job viene visualizzato nella tabella Cronologia valutazioni.

Esaminare il report del test

A seconda delle dimensioni del codebase, i job di valutazione vengono in genere completati in pochi minuti. Il contenitore in background termina automaticamente dopo il completamento dell'elaborazione.

Per accedere ai risultati del test:

  1. Nella tabella Cronologia valutazioni della pagina Modernization Hub, individua il job di valutazione.
  2. Quando la colonna Stato cambia in Completato, fai clic su Scarica report.
  3. Seleziona il formato di output che preferisci:
    • Report HTML: un riepilogo interattivo che ti consente di filtrare le API incompatibili, esaminare gli elenchi di blocchi file per file e visualizzare suggerimenti per la correzione.
    • Report Markdown: un riepilogo formattato adatto alla condivisione con gli stakeholder e i comitati di revisione dell'architettura.

Esaminare il report del test

Il report di valutazione generato classifica la preparazione alla migrazione della tua applicazione in diverse aree chiave:

  • Punteggio di compatibilità complessivo:la percentuale di righe di codice sorgente e dipendenze di cui è possibile eseguire la migrazione nel runtime Java di destinazione senza modifiche.
  • Suddivisione dei blocchi:dipendenze Java legacy specifiche o vincoli dell'ambiente che richiedono il refactoring, ad esempio:
    • Modifiche dello spazio dei nomi da Java EE (javax.*) a Jakarta EE (jakarta.*).
    • API interne JDK rimosse o ritirate (ad esempio pacchetti sun.misc.* o moduli CORBA).
    • Configurazioni o API del server delle applicazioni proprietarie (ad esempio descrittori di deployment WebLogic, WebSphere o JBoss).
  • Analisi delle dipendenze: un inventario dettagliato delle dipendenze Maven o Gradle esistenti che indica se ogni libreria supporta la versione di runtime Java di destinazione o richiede un upgrade.
  • Azioni consigliate: trasformazioni del codice suggerite, ricette di refactoring assistito dall'AI e percorsi di migrazione generati da codmod per preparare l'applicazione per la containerizzazione su Google Cloud.

Passaggi successivi