Moderniser votre application mainframe

Dans ce guide, vous allez apprendre à utiliser l'extension Cloud Code pour VS Code afin de moderniser votre ancienne application mainframe.

La réécriture du code de la modernisation du mainframe permet aux clients et aux partenaires d'adopter une approche itérative pour la réécriture du code. Elle est généralement utilisée après avoir effectué une évaluation avec le Mainframe Assessment Tool (MAT). Cette extension intègre les fonctionnalités d'IA générative pour mainframe pour l'analyse, la spécification, la génération de code et la génération de tests, offrant ainsi une expérience de développement interactive.

Avant de commencer

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Vertex AI API.

    Enable the API

  4. Installez l'extension Cloud Code si ce n'est pas déjà fait.
  5. Installez la Google Cloud CLI si ce n'est pas déjà fait.
  6. Configurer la réécriture du code de modernisation du mainframe

    Les sections suivantes expliquent comment configurer la réécriture de code Mainframe Modernization. Vous devez d'abord activer la réécriture de code Mainframe Modernization dans votre IDE, puis la connecter à Vertex AI.

    Activer la réécriture du code de la modernisation du mainframe

    Pour activer la réécriture de code Mainframe Modernization :

    1. Ouvrez la palette de commandes avec Ctrl/Cmd+Maj+P.

    2. Sélectionnez la commande Préférences : Ouvrir les paramètres utilisateur (JSON).

      Pour activer la réécriture du code Mainframe Modernization, ajoutez le paramètre "cloudcode.beta.enableMainframeModernization": true à votre fichier settings.json :

      {
          "cloudcode.updateChannel": "Insiders",
          "cloudcode.beta.enableMainframeModernization": true
      }
      
    3. Ouvrez à nouveau la palette de commandes (appuyez sur Ctrl/Cmd+Maj+P) et sélectionnez la commande Développeur : Recharger la fenêtre.

    Connecter la réécriture du code de modernisation du mainframe à Vertex AI

    Pour connecter la réécriture de code Mainframe Modernization à Vertex AI, procédez comme suit :

    1. Dans une fenêtre de terminal, exécutez la commande suivante :

      gcloud auth application-default login
      
    2. Suivez les instructions à l'écran dans la nouvelle fenêtre du navigateur Web qui s'est ouverte.

    3. Suivez les instructions pour vous connecter à Trusted Cloud by S3NS.

    4. Sélectionnez le projet que vous souhaitez utiliser.

    5. Exécutez la commande Développeur : Recharger la fenêtre.

    Une fois la configuration terminée, vous pouvez ouvrir n'importe quel espace de travail ou dossier contenant du code mainframe, puis exécuter les commandes Generate Specification Summary (Générer le récapitulatif des spécifications) et Generate Modernized Code (Générer le code modernisé) sur COBOL, JCL, Easytrieve et HLASM.

    Générer un récapitulatif des spécifications

    La commande Cloud Code : Générer un récapitulatif des spécifications pour le fichier actif vous permet de créer une spécification en langage neutre pour votre ancien code de mainframe. COBOL, JCL, Easytrieve et HLASM sont acceptés.

    Vous pouvez accéder à un récapitulatif des spécifications depuis la palette de commandes ou depuis la vue de l'explorateur :

    Palette de commandes

    1. Dans l'éditeur, sélectionnez le fichier source que vous souhaitez utiliser pour en faire le fichier actif.

    2. Pour ouvrir la palette de commandes, appuyez sur Ctrl/Cmd+Maj+P.

    3. Recherchez et sélectionnez la commande Cloud Code : Générer un récapitulatif des spécifications pour le fichier actif.

    Un récapitulatif des spécifications s'affiche à côté du code.

    Explorateur

    1. Dans la barre d'activité, cliquez sur Explorateur ou appuyez sur Ctrl/Cmd+Maj+E.

    2. Effectuez un clic droit sur le fichier source de votre choix, puis sélectionnez Générer le récapitulatif des spécifications.

    Un récapitulatif des spécifications s'affiche à côté du code.

    Annoter l'ancien code du mainframe

    Pour guider le processus de génération du récapitulatif des spécifications, vous pouvez annoter votre ancien code en ajoutant des commentaires. Pour annoter un job JCL ou un programme COBOL, recherchez le bouton add Add (Ajouter) à côté de la ligne de définition du job/programme :

    Job JCL

    Annoter un job JCL

    Programme COBOL

    Annoter un programme COBOL

    1. Pour ouvrir une vue CMS intégrée qui vous permet d'annoter votre tâche/programme, cliquez sur Ajouter Ajouter. Après avoir ajouté votre commentaire, cliquez sur Créer une note pour l'enregistrer.

    2. Une fois l'annotation enregistrée, utilisez la commande Générer le récapitulatif des spécifications pour générer une spécification pour votre job/programme, en vous basant sur votre commentaire.

      Vous pouvez ensuite modifier votre annotation pour affiner les conseils fournis ou la supprimer si vous ne souhaitez plus que le modèle en tienne compte.

    Générer du code modernisé

    La commande Cloud Code : Générer du code modernisé pour le fichier actif vous permet de créer du code moderne à partir de votre ancien code mainframe.

    Langages sources acceptés : COBOL, JCL, Easytrieve et HLASM.

    Langages cibles compatibles : Java, C#, Python, SQL.

    Vous pouvez accéder à cette commande depuis la palette de commandes ou depuis la vue de l'explorateur :

    Palette de commandes

    1. Dans l'éditeur, sélectionnez le fichier source que vous souhaitez utiliser pour en faire le fichier actif.

    2. Ouvrez la palette de commandes en appuyant sur Ctrl/Cmd+Maj+P.

    3. Recherchez et sélectionnez la commande Cloud Code : Générer du code modernisé pour le fichier actif.

    4. Sélectionnez la langue cible dans laquelle vous souhaitez générer le code modernisé.

      Le code modernisé généré s'affiche dans l'éditeur sous la forme d'un nouveau fichier sans titre.

    Explorateur

    1. Dans la barre d'activité, cliquez sur Explorateur ou appuyez sur Ctrl/Cmd+Maj+E.

    2. Effectuez un clic droit sur le fichier source pour lequel vous souhaitez générer du code modernisé, puis sélectionnez Generate Modernized Code (Générer du code modernisé).

    3. Sélectionnez la langue cible dans laquelle vous souhaitez générer le code modernisé.

      Le code modernisé généré s'affiche dans l'éditeur sous la forme d'un nouveau fichier sans titre.

    Modifier les paramètres

    La réécriture de code Mainframe Modernization comporte les paramètres suivants que vous pouvez configurer au niveau de l'espace de travail ou au niveau des paramètres utilisateur (globaux).

    Pour modifier les paramètres au niveau de l'espace de travail, appuyez sur Ctrl/Cmd+Maj+P pour ouvrir la palette de commandes et sélectionnez la commande Préférences : Ouvrir les paramètres de l'espace de travail (JSON).

    Pour modifier les paramètres au niveau des paramètres utilisateur globaux, appuyez sur Ctrl/Cmd+Shift+P pour ouvrir la palette de commandes et sélectionnez la commande Préférences : Ouvrir les paramètres utilisateur (JSON).

    Voici un exemple de fichier settings.json qui inclut toutes les propriétés de configuration de l'extension :

    {
        "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."
        ],
    }
    

    Activer et désactiver Google Analytics

    Cette propriété de configuration active ou désactive la collecte d'analyses d'utilisation pour l'extension.

    • Nom de la propriété de configuration : cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

    • Exemple de valeur de configuration : false.

    • Valeur par défaut : true (les données Analytics sont activées).

    Activer et désactiver Cloud Logging

    Cette propriété de configuration permet de contrôler si la journalisation est activée ou non.

    • Nom de la propriété de configuration : cloudcode.beta.mainframeModernization.enableCloudLogging.

    • Exemple de valeur de configuration : true.

    • Valeur par défaut : false (Cloud Logging est désactivé).

    Modèle

    Lorsque cette propriété de configuration est définie, Mainframe Modernization Code Rewrite utilise le modèle Gemini spécifié dans la configuration.

    • Nom de la propriété de configuration : cloudcode.beta.mainframeModernization.model

    • Exemples de valeurs de configuration : "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "gemini-2.0-flash-lite" ou "gemini-2.5-pro".

    • Valeur par défaut : "(default)" (Demander à chaque fois).

    Langue cible

    Lorsque cette propriété de configuration est définie, la commande Générer du code modernisé ne vous demande plus de sélectionner la langue cible lors de la génération du code et utilise la langue définie dans la propriété à la place.

    • Nom de la propriété de configuration : cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

    • Exemples de valeurs de configuration : "java", "csharp", "python" ou "pgsql".

    • Valeur par défaut : null (Demander à chaque fois).

    Conseils sur la pile technologique pour la génération de code

    Lorsque cette propriété de configuration est définie, la commande Generate Modernized Code (Générer du code modernisé) transmet la liste spécifiée d'indices de pile technologique en tant qu'instructions supplémentaires au LLM lors de la génération de code. Cette configuration peut servir de guide pour ajuster l'architecture cible, les frameworks et le style de code.

    • Nom de la propriété de configuration : cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

    • Exemple de valeur de configuration :

      [
        "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"
      ]
      
    • Valeur par défaut : [] (liste vide, aucune indication sur la pile technologique).

    Supprimer les données de réécriture du code de modernisation du mainframe

    Pour supprimer toutes les données stockées localement par Mainframe Modernization Code Rewrite pour l'espace de travail actuel, procédez comme suit :

    1. Ouvrez le terminal en sélectionnant Afficher > Terminal dans la barre de menu ou en appuyant sur le raccourci clavier .

    2. Saisissez les commandes suivantes dans le terminal :

    Linux (Bash ou 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"
    

    Résoudre les problèmes

    Cette section décrit les problèmes connus liés à la réécriture de code Mainframe Modernization et fournit des étapes de dépannage :

    Vertex AI n'est pas disponible dans le projet Trusted Cloud

    Si les commandes Générer le récapitulatif des spécifications ou Générer le code modernisé s'exécutent pendant une longue période, puis échouent, il est possible que l'API Vertex AI ne soit pas activée ou qu'elle ait dépassé son quota dans le projet sélectionné. Pour confirmer qu'il s'agit bien de ce problème, cliquez sur le bouton Accéder à la sortie.

    Si le bouton Accéder à la sortie n'est pas disponible, suivez les étapes décrites dans Inspecter le canal de sortie. Dans le canal de sortie, recherchez un message d'erreur contenant "Vertex.GenerateContent failed". Voici par exemple un message d'erreur indiquant que l'API Vertex AI n'est pas activée dans le projet Trusted Cloud sélectionné :

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

    Pour résoudre ce problème, vous pouvez soit :

    • Vérifiez que l'API Vertex AI est activée dans le projet Trusted Cloud.

    • Passez à un autre projet Trusted Cloud pour lequel l'API Vertex AI est activée.

    Les commandes de réécriture du code de modernisation du mainframe ne sont pas disponibles

    Si des commandes telles que Generate Specification Summary (Générer un récapitulatif des spécifications) ou Generate Modernized Code (Générer un code modernisé) ne sont pas disponibles dans la palette de commandes, cela peut indiquer que l'outil CLI Mainframe Modernization n'a pas pu être installé. Pour vous en assurer, vérifiez si le fichier exécutable suivant est manquant :

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

    Si c'est le cas, essayez de résoudre le problème en effectuant les tâches suivantes :

    1. Ouvrez la palette de commandes avec Ctrl/Cmd+Maj+P.
    2. Sélectionnez la commande Cloud Code : Install or Update Mainframe Modernization Tools (Cloud Code : Installer ou mettre à jour les outils de modernisation du mainframe).
    3. Vérifiez que le fichier exécutable n'est plus manquant.
    4. Ouvrez à nouveau la palette de commandes avec Ctrl/Cmd+Maj+P.
    5. Sélectionnez la commande Développeur : recharger la fenêtre.

    Inspecter le canal de sortie

    Pour résoudre les autres erreurs qui ne sont pas listées ailleurs dans ce guide, essayez d'inspecter le canal de sortie de l'extension. Pour ouvrir le canal de sortie, procédez comme suit :

    1. Ouvrez la palette de commandes avec Ctrl/Cmd+Maj+P.
    2. Sélectionnez la commande Sortie : Afficher les canaux de sortie.
    3. Sélectionnez le canal de sortie Cloud Code Mainframe Modernization.