Moderniser votre application mainframe

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

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

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Installez l'extension Cloud Code si ce n'est pas déjà fait.
  9. Installez Google Cloud CLI si ce n'est déjà fait.

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

Les sections suivantes décrivent comment configurer la réécriture du code de modernisation du mainframe. Vous devez d'abord activer la réécriture du code de modernisation du mainframe dans votre IDE, puis la connecter à Vertex AI.

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

Pour activer la réécriture du code de modernisation du mainframe, procédez comme suit :

  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 de modernisation du mainframe, ajoutez le "cloudcode.beta.enableMainframeModernization": true paramètre à votre settings.json fichier :

    {
        "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 : Actualiser la fenêtre.

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

Pour connecter la réécriture du code de modernisation du mainframe à 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 fenêtre de navigateur Web qui s'ouvre.

  3. Suivez les instructions pour vous connecter à Google Cloud.

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

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

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

Générer le résumé des spécifications

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

Vous pouvez accéder à un résumé des spécifications depuis la palette de commandes ou depuis la vue 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 le résumé des spécifications pour le fichier actif.

Un résumé 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. Cliquez avec le bouton droit sur le fichier source de votre choix, puis sélectionnez Générer le résumé des spécifications.

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

Annoter le code existant du mainframe

Pour guider le processus de génération du résumé des spécifications, vous pouvez annoter votre code existant en ajoutant des commentaires. Pour annoter une tâche JCL ou un programme COBOL, recherchez le bouton Ajouter à côté de la ligne de définition de la tâche/du programme :

Tâche 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 add 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ésumé des spécifications pour générer une spécification pour votre tâche/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 le code modernisé pour le fichier actif vous permet de créer du code moderne à partir de votre code existant du mainframe.

Langages sources compatibles : 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 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 le code modernisé pour le fichier actif.

  4. Sélectionnez le langage cible dans lequel 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. Cliquez avec le bouton droit sur le fichier source pour lequel vous souhaitez générer du code modernisé, puis sélectionnez Générer le code modernisé.

  3. Sélectionnez le langage cible dans lequel 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 du code de modernisation du mainframe 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, puis 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+Maj+P pour ouvrir la palette de commandes, puis 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 (Analytics est activé).

Activer et désactiver Cloud Logging

Cette propriété de configuration contrôle 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, la réécriture du code de modernisation du mainframe 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 le code modernisé ne vous demande plus de sélectionner le langage cible lors de la génération du code et utilise à la place le langage défini dans la propriété.

  • 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 Générer le code modernisé transmet la liste spécifiée de conseils sur la pile technologique en tant qu'instructions supplémentaires au LLM lors de la génération du code. Cette configuration peut être utilisée comme 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 ; aucun conseil 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 la réécriture du code de modernisation du mainframe 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 de la réécriture du code de modernisation du mainframe et fournit des étapes de dépannage :

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

Si les commandes Générer le résumé 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 vérifier qu'il s'agit bien du 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 causé par le fait que l'API Vertex AI n'est pas activée dans le projet sélectionné Google Cloud :

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

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

  • vérifier que l'API Vertex AI est activée dans le Google Cloud projet ;

  • passer à un autre Google Cloud projet dans 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 Générer le résumé des spécifications ou Générer le code modernisé ne sont pas disponibles dans la palette de commandes, cela peut indiquer que l'outil CLI de modernisation du mainframe n'a pas pu être installé. Pour vérifier que c'est le cas, vérifiez si le fichier exécutable suivant est manquant :

  • Sous Linux : ~/.cache/cloud-code/mainframe/bin/codegen
  • Sous Windows : %LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
  • Sous 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 : 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 : Actualiser la fenêtre.

Inspecter le canal de sortie

Pour résoudre d'autres erreurs qui ne sont pas répertorié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.