Valuta le applicazioni .NET per la modernizzazione

Questa pagina descrive come utilizzare Google Cloud Modernization Hub per valutare le applicazioni ASP.NET e .NET Framework per la containerizzazione Linux e la modernizzazione a una release .NET multipiattaforma.

Molte applicazioni .NET aziendali dipendono da API specifiche di Windows, configurazioni del server IIS o librerie .NET Framework legacy che impediscono il deployment diretto nei container Linux. Una valutazione automatizzata in Modernization Hub analizza il codice sorgente per identificare i blocchi, valutare la compatibilità dei pacchetti NuGet e consigliare i percorsi di refactoring per Cloud Run o Google Kubernetes Engine.

Quando utilizzare una valutazione dell'applicazione .NET

Esegui una valutazione dell'applicazione .NET quando prevedi di eseguire una delle seguenti attività di modernizzazione:

  • Ripiattaformizzazione in container Linux: identifica le dipendenze solo di Windows (come l'accesso al registro di Windows, System.Drawing o le integrazioni di Active Directory) prima di containerizzare le applicazioni per Cloud Run o GKE.
  • Upgrade delle versioni di .NET Framework: valuta l'impegno e le lacune di compatibilità durante la migrazione da .NET Framework 4.x alle versioni moderne e multipiattaforma di .NET (.NET 10 o versioni successive).
  • Disaccoppiamento delle architetture monolitiche: scopri i servizi WCF, i servizi Windows o i moduli web legacy strettamente accoppiati che richiedono il refactoring in microservizi cloud-native.

Prima di iniziare

Prima di iniziare un job di valutazione .NET, 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 e costi 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 6 milioni di LOC, dividi il codice in soluzioni o moduli 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 (come bin/, obj/, node_modules/, .vs/ 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 di origine .NET

Comprimi il codebase .NET 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*" "*/bin/*" "*/obj/*" "*/node_modules/*" "*.vs/*"
      
  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 eseguire un job di valutazione:

  1. Nella console, vai alla pagina Modernization Hub.

    Vai a Modernization Hub

  2. Nella pagina di destinazione, individua la scheda Modernizzazione.NET 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 container di valutazione in background per analizzare il progetto. Lo stato del job viene visualizzato nella tabella Cronologia valutazioni.

Monitorare lo stato dei job e visualizzare i report

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 visualizzare i 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 Windows 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 classifica l'idoneità alla migrazione della tua applicazione nelle seguenti aree:

  • Punteggio di compatibilità complessivo:la percentuale di righe di origine e dipendenze che possono essere migrate a .NET multipiattaforma senza modifiche.
  • Suddivisione dei blocchi:dipendenze specifiche di Windows che richiedono il refactoring, ad esempio:
    • Implementazioni del server Windows Communication Foundation (WCF).
    • Pipeline legacy ASP.NET Web Forms o ASP.NET MVC.
    • Chiamate al Registro di sistema di Windows (Microsoft.Win32).
  • Analisi delle dipendenze NuGet:un inventario dettagliato dei pacchetti NuGet esistenti che indica se ogni pacchetto supporta la versione di .NET di destinazione o richiede la sostituzione.
  • Azioni consigliate:trasformazioni del codice e percorsi di migrazione suggeriti per preparare l'applicazione per la containerizzazione su Google Cloud.

Eseguire il refactoring del codice .NET con Antigravity

Dopo aver generato un report di valutazione, puoi utilizzare Antigravity con competenze agentiche .NET specializzate per automatizzare la conversione del codice da .NET Framework a .NET multipiattaforma.

Prima di eseguire i flussi di lavoro di refactoring con agenti, assicurati di soddisfare i seguenti prerequisiti:

  • Ambiente Antigravity:installa l'IDE Antigravity o Antigravity CLI (agy) e configura l'autenticazione con il tuo progetto Google Cloud .
  • Artefatti di valutazione:scarica il report di valutazione codmod e inseriscilo nello spazio di lavoro del repository locale in modo che l'agente possa fare riferimento ai blocchi e ai percorsi di upgrade delle dipendenze identificati.
  • Skill di modernizzazione.NET:carica la skill di modernizzazione .NET codmod (SKILL.md) nelle impostazioni dello spazio di lavoro Antigravity. Per richiedere l'accesso in anteprima alle ultime skill dell'agente di modernizzazione .NET, contatta modernization-hub-feedback-external@google.com.

Passaggi successivi