Modernizza l'applicazione mainframe

In questa guida imparerai a utilizzare l'estensione Cloud Code per VS Code per modernizzare la tua applicazione mainframe legacy.

La riscrittura del codice per la modernizzazione del mainframe consente un approccio iterativo alla riscrittura del codice per clienti e partner. Viene in genere utilizzato dopo aver completato una valutazione con il Mainframe Assessment Tool (MAT). Questa estensione integra le funzionalità di Mainframe GenAI per l'analisi del codice, la specifica, la generazione di codice e la generazione di test, offrendo un'esperienza di sviluppo interattiva.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Se non l'hai ancora fatto, installa l'estensione Cloud Code.
  9. Installa Google Cloud CLI se non l'hai ancora fatto.
  10. Configura la riscrittura del codice di modernizzazione dei mainframe

    Le sezioni seguenti descrivono come configurare la riscrittura del codice di modernizzazione del mainframe. Devi prima abilitare la riscrittura del codice di modernizzazione del mainframe nel tuo IDE e poi connetterlo a Vertex AI.

    Attivare la riscrittura del codice per la modernizzazione del mainframe

    Per attivare la riscrittura del codice di modernizzazione del mainframe:

    1. Apri il riquadro dei comandi con Ctrl/Cmd+Shift+P.

    2. Seleziona il comando Preferenze: apri impostazioni utente (JSON).

      Per attivare la riscrittura del codice di modernizzazione del mainframe, aggiungi l'impostazione "cloudcode.beta.enableMainframeModernization": true al file settings.json:

      {
          "cloudcode.updateChannel": "Insiders",
          "cloudcode.beta.enableMainframeModernization": true
      }
      
    3. Apri di nuovo la tavolozza dei comandi (premi Ctrl/Cmd+Shift+P) e seleziona il comando Sviluppatore: ricarica finestra.

    Connetti la riscrittura del codice di modernizzazione del mainframe a Vertex AI

    Per connettere la riscrittura del codice di modernizzazione del mainframe a Vertex AI:

    1. In una finestra del terminale, esegui questo comando:

      gcloud auth application-default login
      
    2. Segui le istruzioni sullo schermo nella finestra del browser web appena aperta.

    3. Segui le istruzioni per accedere a Google Cloud.

    4. Seleziona il progetto che vuoi utilizzare.

    5. Esegui il comando Sviluppatore: ricarica finestra.

    Dopo la configurazione, puoi aprire qualsiasi spazio di lavoro o cartella che includa codice mainframe ed eseguire i comandi Genera riepilogo specifiche e Genera codice modernizzato su COBOL, JCL, Easytrieve e HLASM.

    Genera il riepilogo delle specifiche

    Il comando Cloud Code: Generate Specification Summary for Active File ti consente di creare una specifica in linguaggio neutro per il codice mainframe legacy. Sono supportati COBOL, JCL, Easytrieve e HLASM.

    Puoi accedere a un riepilogo delle specifiche dalla tavolozza dei comandi o dalla visualizzazione Explorer:

    Tavolozza comandi

    1. Nell'editor, seleziona il file di origine che vuoi utilizzare per renderlo attivo.

    2. Per aprire il riquadro dei comandi, premi Ctrl/Cmd+Shift+P.

    3. Cerca e seleziona il comando Cloud Code: Generate Specification Summary for Active File.

    Accanto al codice viene visualizzato un riepilogo delle specifiche.

    Spazio di esplorazione

    1. Nella barra delle attività, fai clic su Esplora o premi Ctrl/Cmd+Shift+E.

    2. Fai clic con il tasto destro del mouse sul file di origine che preferisci e seleziona Genera riepilogo delle specifiche.

    Accanto al codice viene visualizzato un riepilogo delle specifiche.

    Annotare il codice legacy del mainframe

    Per guidare il processo di generazione del riepilogo delle specifiche, puoi annotare il codice legacy aggiungendo commenti. Per annotare un job JCL o un programma COBOL, cerca il pulsante Aggiungi Aggiungi accanto alla riga di definizione del job/programma:

    JCL Job

    Annota il job JCL

    Programma COBOL

    Annotare il programma COBOL

    1. Per aprire una visualizzazione CMS in linea che ti consente di annotare il tuo lavoro/programma, fai clic su Aggiungi Aggiungi. Dopo aver aggiunto il commento, fai clic su Crea nota per salvarlo.

    2. Quando l'annotazione viene salvata, utilizza il comando Genera riepilogo specifiche per generare una specifica per il tuo lavoro/programma, guidata dal tuo commento.

      Puoi quindi modificare l'annotazione per perfezionare le indicazioni fornite o eliminarla se non vuoi più che il modello la prenda in considerazione.

    Generare codice modernizzato

    Il comando Cloud Code: Generate Modernized Code for Active File ti consente di creare codice moderno dal codice legacy del mainframe.

    Lingue di origine supportate: COBOL, JCL, Easytrieve e HLASM.

    Lingue di destinazione supportate: Java, C#, Python, SQL.

    Puoi accedere a questo comando dalla tavolozza dei comandi o dalla visualizzazione Esplora:

    Tavolozza comandi

    1. Nell'editor, seleziona il file di origine che vuoi utilizzare per renderlo attivo.

    2. Apri la tavolozza dei comandi premendo Ctrl/Cmd+Shift+P.

    3. Cerca e seleziona il comando Cloud Code: Generate Modernized Code for Active File.

    4. Seleziona la lingua di destinazione in cui vuoi che venga generato il codice modernizzato.

      Il codice modernizzato generato viene visualizzato nell'editor come nuovo file senza titolo.

    Spazio di esplorazione

    1. Nella barra delle attività, fai clic su Esplora o premi Ctrl/Cmd+Shift+E.

    2. Fai clic con il tasto destro del mouse sul file sorgente per cui vuoi generare il codice modernizzato e seleziona Genera codice modernizzato.

    3. Seleziona la lingua di destinazione in cui vuoi che venga generato il codice modernizzato.

      Il codice modernizzato generato viene visualizzato nell'editor come nuovo file senza titolo.

    Modifica le impostazioni

    La riscrittura del codice di modernizzazione del mainframe ha le seguenti impostazioni che puoi configurare nell'ambito dello spazio di lavoro o nell'ambito delle impostazioni utente (globali).

    Per modificare le impostazioni a livello di spazio di lavoro, premi Ctrl/Cmd+Shift+P per aprire il riquadro dei comandi e seleziona il comando Preferenze: apri le impostazioni dello spazio di lavoro (JSON).

    Per modificare le impostazioni a livello di impostazioni utente globali, premi Ctrl/Cmd+Shift+P per aprire il riquadro dei comandi e seleziona il comando Preferenze: apri impostazioni utente (JSON).

    Ecco un esempio di file settings.json che include tutte le proprietà di configurazione dell'estensione:

    {
        "cloudcode.beta.enableMainframeModernization": true,
        "cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
        "cloudcode.beta.mainframeModernization.enableCloudLogging": false,
        "cloudcode.beta.mainframeModernization.model": "gemini-2.5-pro",
        "cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage": "csharp",
        "cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints": [
            "Do not print messages directly to the console; use a logging framework instead."
        ],
    }
    

    Attivare e disattivare Google Analytics

    Questa proprietà di configurazione attiva o disattiva la raccolta di analisi dell'utilizzo per l'estensione.

    • Nome della proprietà di configurazione: cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

    • Valore di configurazione di esempio: false.

    • Valore predefinito: true (Analytics è abilitato).

    Abilitare e disabilitare Cloud Logging

    Questa proprietà di configurazione controlla se la registrazione è abilitata o meno.

    • Nome della proprietà di configurazione: cloudcode.beta.mainframeModernization.enableCloudLogging.

    • Valore di configurazione di esempio: true.

    • Valore predefinito: false (Cloud Logging è disabilitato).

    Modello

    Quando questa proprietà di configurazione è impostata, Mainframe Modernization Code Rewrite utilizza il modello Gemini specificato nella configurazione.

    • Nome della proprietà di configurazione: cloudcode.beta.mainframeModernization.model

    • Valori di configurazione di esempio: "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "gemini-2.0-flash-lite" o "gemini-2.5-pro".

    • Valore predefinito: "(default)" (Chiedi ogni volta).

    Lingua di destinazione

    Quando questa proprietà di configurazione è impostata, il comando Genera codice modernizzato non ti chiede più di selezionare la lingua di destinazione durante la generazione del codice e utilizza invece la lingua impostata nella proprietà.

    • Nome della proprietà di configurazione: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

    • Valori di configurazione di esempio: "java", "csharp", "python" o "pgsql".

    • Valore predefinito: null (Chiedi ogni volta).

    Suggerimenti per lo stack tecnologico di generazione del codice

    Quando questa proprietà di configurazione è impostata, il comando Genera codice modernizzato trasmette l'elenco specificato di suggerimenti per lo stack tecnologico come istruzioni aggiuntive al modello LLM durante la generazione del codice. Questa configurazione può essere utilizzata come guida per modificare l'architettura di destinazione, i framework e lo stile del codice.

    • Nome della proprietà di configurazione: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

    • Valore di configurazione di esempio:

      [
        "Do not print messages directly to the console; use a logging framework instead.",
        "when generating java code - use Spring Boot version 3 as the framework"
      ]
      
    • Valore predefinito: [] (un elenco vuoto; nessun suggerimento sullo stack tecnologico).

    Elimina i dati di riscrittura del codice di modernizzazione del mainframe

    Per rimuovere tutti i dati archiviati localmente da Mainframe Modernization Code Rewrite per lo spazio di lavoro corrente:

    1. Apri il terminale selezionando Visualizza > Terminale dalla barra dei menu o premendo la scorciatoia da tastiera .

    2. Inserisci i seguenti comandi nel terminale:

    Linux (Bash o Zsh)

    workspace_id=$(printf %s "$PWD$(stat -c '%i' .)" | md5sum | head -c 32)
    workspace_storage_dir="$HOME/.config/Code/User/workspaceStorage/$workspace_id"
    rm -r "$workspace_storage_dir/googlecloudtools.cloudcode/mainframe/"
    

    Windows (PowerShell)

    $workspacePath = (Get-Location).ToString()
    
    $tempFile = (New-TemporaryFile).FullName
    ($workspacePath.Substring(0, 1).ToLower() + $workspacePath.Substring(1) +
        (([decimal](Get-Date (Get-ItemProperty . |
            Select-Object -ExpandProperty CreationTimeUtc) -UFormat %s) * 1000) -split '\.')[0]
    ) | Out-File -FilePath $tempFile -Encoding ascii -NoNewline
    $workspaceId = (Get-FileHash -Algorithm MD5 -Path $tempFile).Hash.ToLower()
    Remove-Item $tempFile
    
    $workspaceStorageDir = "$env:APPDATA\Code\User\workspaceStorage\$workspaceId"
    Remove-Item -Recurse "$workspaceStorageDir\googlecloudtools.cloudcode\mainframe"
    

    Risoluzione dei problemi

    Questa sezione descrive i problemi noti di Mainframe Modernization Code Rewrite e fornisce i passaggi per la risoluzione dei problemi:

    Vertex AI non disponibile nel progetto Google Cloud

    Se i comandi Genera riepilogo delle specifiche o Genera codice modernizzato vengono eseguiti a lungo e poi non riescono, l'API Vertex AI potrebbe non essere abilitata o aver superato la quota nel progetto selezionato. Per confermare che si tratta del problema, fai clic sul pulsante Vai all'output.

    Se il pulsante Vai all'output non è disponibile, segui i passaggi descritti in Ispezionare il canale di output. Nel canale di output, cerca un messaggio di errore contenente "Vertex.GenerateContent failed". Ad esempio, ecco un messaggio di errore causato dalla mancata abilitazione dell'API Vertex AI nel progetto Google Cloud selezionato:

    "generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent failed: 403 Forbidden (403)"

    Per risolvere il problema:

    • Verifica che l'API Vertex AI sia abilitata nel progetto Google Cloud.

    • Passa a un altro progetto Google Cloud con l'API Vertex AI abilitata.

    I comandi di riscrittura del codice di modernizzazione del mainframe non sono disponibili

    Se comandi come Genera riepilogo specifiche o Genera codice modernizzato non sono disponibili nella tavolozza dei comandi, è possibile che lo strumento CLI Mainframe Modernization non sia stato installato. Per verificare che sia così, controlla se il seguente file eseguibile è mancante:

    • Su Linux: ~/.cache/cloud-code/mainframe/bin/codegen
    • Su Windows: %LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
    • Su macOS: $HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos

    In questo caso, prova a risolvere il problema svolgendo le seguenti attività:

    1. Apri il riquadro dei comandi con Ctrl/Cmd+Shift+P.
    2. Seleziona il comando Cloud Code: installa o aggiorna gli strumenti di modernizzazione del mainframe.
    3. Verifica che il file eseguibile non sia più mancante.
    4. Apri di nuovo il riquadro dei comandi con Ctrl/Cmd+Shift+P.
    5. Seleziona il comando Sviluppatore: ricarica finestra.

    Ispeziona il canale di output

    Per risolvere i problemi relativi ad altri errori non elencati in questa guida, prova a ispezionare il canale di output dell'estensione. Per aprire il canale di output, esegui le seguenti attività:

    1. Apri il riquadro dei comandi con Ctrl/Cmd+Shift+P.
    2. Seleziona il comando Output: Show Output Channels (Output: mostra i canali di output).
    3. Seleziona il canale di output Cloud Code Mainframe Modernization.