Memodernisasi aplikasi mainframe

Dalam panduan ini, Anda akan mempelajari cara menggunakan ekstensi Cloud Code untuk VS Code guna memodernisasi aplikasi mainframe lama.

Penulisan Ulang Kode Modernisasi Mainframe memungkinkan pendekatan iteratif untuk penulisan ulang kode bagi pelanggan dan partner. Alat ini biasanya digunakan setelah menyelesaikan penilaian dengan Mainframe Assessment Tool (MAT). Ekstensi ini mengintegrasikan kemampuan Mainframe GenAI untuk analisis kode, spesifikasi, pembuatan kode, dan pembuatan pengujian, yang memberikan pengalaman pengembangan interaktif.

Sebelum memulai

  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. Make sure 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. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Instal ekstensi Cloud Code jika Anda belum melakukannya.
  9. Instal Google Cloud CLI jika Anda belum melakukannya.

Menyiapkan Penulisan Ulang Kode Modernisasi Mainframe

Bagian berikut menjelaskan cara menyiapkan Penulisan Ulang Kode Modernisasi Mainframe. Pertama-tama, Anda harus mengaktifkan Penulisan Ulang Kode Modernisasi Mainframe di IDE, lalu menghubungkannya ke Vertex AI.

Mengaktifkan Penulisan Ulang Kode Modernisasi Mainframe

Untuk mengaktifkan Penulisan Ulang Kode Modernisasi Mainframe, ikuti langkah-langkah berikut:

  1. Buka Palet Perintah dengan Ctrl/Cmd+Shift+P.

  2. Pilih perintah Preferences: Open User Settings (JSON).

    Untuk mengaktifkan Penulisan Ulang Kode Modernisasi Mainframe, tambahkan setelan "cloudcode.beta.enableMainframeModernization": true ke file settings.json Anda:

    {
        "cloudcode.updateChannel": "Insiders",
        "cloudcode.beta.enableMainframeModernization": true
    }
    
  3. Buka kembali Palet Perintah (tekan Ctrl/Cmd+Shift+P) dan pilih perintah Developer: Reload Window.

Menghubungkan Penulisan Ulang Kode Modernisasi Mainframe ke Vertex AI

Untuk menghubungkan Mainframe Modernization Code Rewrite ke Vertex AI, ikuti langkah-langkah berikut:

  1. Di jendela terminal, jalankan perintah berikut:

    gcloud auth application-default login
    
  2. Ikuti petunjuk di layar di jendela browser web yang baru dibuka.

  3. Ikuti petunjuk untuk login ke Google Cloud.

  4. Pilih project yang ingin Anda gunakan.

  5. Jalankan perintah Developer: Reload Window.

Setelah menyiapkan, Anda dapat membuka ruang kerja atau folder yang menyertakan kode mainframe, dan menjalankan perintah Generate Specification Summary dan Generate Modernized Code di COBOL, JCL, Easytrieve, dan HLASM.

Membuat ringkasan spesifikasi

Perintah Cloud Code: Generate Specification Summary for Active File memungkinkan Anda membuat spesifikasi bahasa netral untuk kode mainframe lama. COBOL, JCL, Easytrieve, dan HLASM didukung.

Anda dapat mengakses ringkasan spesifikasi dari Command Palette atau dari tampilan Penjelajah:

Palet Perintah

  1. Di editor, pilih file sumber yang ingin Anda gunakan untuk menjadikannya file aktif.

  2. Untuk membuka Palet Perintah, tekan Ctrl/Cmd+Shift+P.

  3. Telusuri dan pilih perintah Cloud Code: Generate Specification Summary for Active File.

Ringkasan spesifikasi akan muncul di samping kode.

Penjelajah

  1. Di panel aktivitas, klik Explorer atau tekan Ctrl/Cmd+Shift+E.

  2. Klik kanan file sumber pilihan Anda, lalu pilih Buat Ringkasan Spesifikasi.

Ringkasan spesifikasi akan muncul di samping kode.

Menganotasi kode lama mainframe

Untuk memandu proses pembuatan ringkasan spesifikasi, Anda dapat menganotasi kode lama dengan menambahkan komentar. Untuk menganotasi tugas JCL atau program COBOL, cari tombol tambahkan Tambahkan di samping baris definisi tugas/program:

Tugas JCL

Menganotasi tugas JCL

Program COBOL

Menganotasi program COBOL

  1. Untuk membuka tampilan CMS inline yang memungkinkan Anda menganotasi tugas/program, klik tambahkan Tambahkan. Setelah menambahkan komentar, klik Buat Catatan untuk menyimpannya.

  2. Saat anotasi disimpan, gunakan perintah Generate Specification Summary untuk membuat spesifikasi tugas/program, yang dipandu oleh komentar Anda.

    Kemudian, Anda dapat mengedit anotasi untuk meningkatkan panduan yang diberikan atau menghapusnya jika tidak ingin lagi model mempertimbangkannya.

Membuat kode yang dimodernisasi

Perintah Cloud Code: Generate Modernized Code for Active File memungkinkan Anda membuat kode modern dari kode lama mainframe.

Bahasa sumber yang didukung: COBOL, JCL, Easytrieve, dan HLASM.

Bahasa target yang didukung: Java, C#, Python, SQL.

Anda dapat mengakses perintah ini dari Command Palette, atau dari tampilan Explorer:

Palet Perintah

  1. Di editor, pilih file sumber yang ingin Anda gunakan untuk menjadikannya file aktif.

  2. Buka Palet Perintah dengan menekan Ctrl/Cmd+Shift+P.

  3. Telusuri dan pilih perintah Cloud Code: Generate Modernized Code for Active File.

  4. Pilih bahasa target tempat Anda ingin kode yang dimodernisasi dibuat.

    Kode modern yang dihasilkan akan muncul di editor sebagai file baru tanpa judul.

Penjelajah

  1. Di panel aktivitas, klik Explorer atau tekan Ctrl/Cmd+Shift+E.

  2. Klik kanan file sumber yang ingin Anda buat kode modernnya, lalu pilih Generate Modernized Code.

  3. Pilih bahasa target tempat Anda ingin kode yang dimodernisasi dibuat.

    Kode modern yang dihasilkan akan muncul di editor sebagai file baru tanpa judul.

Mengubah setelan

Mainframe Modernization Code Rewrite memiliki setelan berikut yang dapat Anda konfigurasikan di cakupan ruang kerja, atau di cakupan setelan pengguna (global).

Untuk mengubah setelan di tingkat ruang kerja, tekan Ctrl/Cmd+Shift+P untuk membuka Palette Perintah dan pilih perintah Preferences: Open Workspace Settings (JSON).

Untuk mengubah setelan di tingkat setelan pengguna global, tekan Ctrl/Cmd+Shift+P untuk membuka Palette Perintah dan pilih perintah Preferences: Open User Settings (JSON).

Berikut adalah contoh file settings.json yang menyertakan semua properti konfigurasi ekstensi:

{
    "cloudcode.beta.enableMainframeModernization": true,
    "cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
    "cloudcode.beta.mainframeModernization.enableCloudLogging": false,
    "cloudcode.beta.mainframeModernization.model": "gemini-2.0-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."
    ],
}

Mengaktifkan dan menonaktifkan Google Analytics

Properti konfigurasi ini mengaktifkan atau menonaktifkan pengumpulan analisis penggunaan untuk ekstensi.

  • Nama properti konfigurasi: cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

  • Contoh nilai konfigurasi: false.

  • Nilai default: true (Analytics diaktifkan).

Mengaktifkan dan menonaktifkan Cloud Logging

Properti konfigurasi ini mengontrol apakah Logging diaktifkan atau tidak.

  • Nama properti konfigurasi: cloudcode.beta.mainframeModernization.enableCloudLogging.

  • Contoh nilai konfigurasi: true.

  • Nilai default: false (Cloud Logging dinonaktifkan).

Model

Saat properti konfigurasi ini ditetapkan, Penulisan Ulang Kode Modernisasi Mainframe akan menggunakan model Gemini yang ditentukan dalam konfigurasi.

  • Nama properti konfigurasi: cloudcode.beta.mainframeModernization.model

  • Contoh nilai konfigurasi: "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "gemini-2.0-flash-lite", atau "gemini-2.0-pro".

  • Nilai default: "(default)" (Tanyakan setiap kali).

Bahasa target

Jika properti konfigurasi ini ditetapkan, perintah Generate Modernized Code tidak lagi meminta Anda untuk memilih bahasa target saat membuat kode, dan menggunakan bahasa yang ditetapkan dalam properti.

  • Nama properti konfigurasi: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

  • Contoh nilai konfigurasi: "java", "csharp", "python", atau "pgsql".

  • Nilai default: null (Tanyakan setiap kali).

Petunjuk tech stack pembuatan kode

Jika properti konfigurasi ini ditetapkan, perintah Generate Modernized Code akan meneruskan daftar petunjuk stack teknologi yang ditentukan sebagai petunjuk tambahan ke LLM saat membuat kode. Konfigurasi ini dapat digunakan sebagai panduan untuk menyesuaikan arsitektur target, framework, dan gaya visual kode.

  • Nama properti konfigurasi: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

  • Contoh nilai konfigurasi:

    [
      "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"
    ]
    
  • Nilai default: [] (Daftar kosong; tidak ada petunjuk stack teknologi).

Menghapus Data Penulisan Ulang Kode Modernisasi Mainframe

Untuk menghapus semua data yang disimpan secara lokal oleh Mainframe Modernization Code Rewrite untuk ruang kerja saat ini, ikuti langkah-langkah berikut:

  1. Buka terminal dengan memilih View > Terminal dari panel menu, atau dengan menekan pintasan keyboard .

  2. Masukkan perintah berikut ke dalam terminal:

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

Memecahkan masalah

Bagian ini menguraikan masalah umum Mainframe Modernization Code Rewrite dan menyediakan langkah-langkah pemecahan masalah:

Vertex AI tidak tersedia di Google Cloud project

Jika perintah Generate Specification Summary atau Generate Modernized Code dijalankan dalam waktu lama, lalu gagal, Vertex AI API mungkin tidak diaktifkan, atau telah melampaui kuotanya di project yang dipilih. Untuk mengonfirmasi bahwa ini adalah masalahnya, klik tombol Buka output.

Jika tombol Buka output tidak tersedia, ikuti langkah-langkah di Memeriksa saluran output. Di saluran output, cari pesan error yang berisi "Vertex.GenerateContent gagal". Misalnya, berikut adalah pesan error yang disebabkan oleh Vertex AI API yang tidak diaktifkan dalam project Google Cloud yang dipilih:

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

Untuk mengatasi masalah ini, lakukan salah satu tindakan berikut:

  • Pastikan Vertex AI API Anda diaktifkan di project Google Cloud.

  • Beralihlah ke project Google Cloud lain dengan Vertex AI API yang diaktifkan.

Perintah Penulisan Ulang Kode Modernisasi Mainframe tidak tersedia

Jika perintah seperti Generate Specification Summary atau Generate Modernized Code tidak tersedia di Command Palette, hal ini mungkin menunjukkan bahwa alat CLI Modernisasi Mainframe gagal diinstal. Untuk mengonfirmasi bahwa hal ini terjadi, periksa apakah file yang dapat dieksekusi berikut tidak ada:

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

Jika demikian, coba selesaikan masalah dengan melakukan tugas berikut:

  1. Buka Palet Perintah dengan Ctrl/Cmd+Shift+P.
  2. Pilih perintah Cloud Code: Install or Update Mainframe Modernization Tools.
  3. Pastikan file yang dapat dieksekusi tidak lagi hilang.
  4. Buka kembali Palet Perintah dengan Ctrl/Cmd+Shift+P.
  5. Pilih perintah Developer: Reload Window.

Memeriksa saluran output

Untuk memecahkan masalah error lain yang tidak tercantum di bagian lain dalam panduan ini, coba periksa saluran output ekstensi. Untuk membuka saluran output, lakukan tugas berikut:

  1. Buka Palet Perintah dengan Ctrl/Cmd+Shift+P.
  2. Pilih perintah Output: Show Output Channels.
  3. Pilih saluran output Modernisasi Mainframe Cloud Code.