Membuat Penilaian Modernisasi Aplikasi

Penilaian Modernisasi Aplikasi Migration Center (codmod) adalah alat yang didukung AI yang mengotomatiskan proses penilaian modernisasi untuk aplikasi Anda. Halaman ini menguraikan langkah-langkah untuk menginstal, menggunakan, dan memecahkan masalah alat codmod.

Tentang Penilaian Modernisasi Aplikasi

Proses penilaian modernisasi biasanya memerlukan waktu beberapa minggu dan memerlukan banyak keahlian. Dengan mengotomatiskan proses ini, alat codmod secara signifikan mengurangi waktu ini menjadi beberapa jam.

Alat ini bertujuan untuk memberikan informasi berbasis bukti tentang arsitektur, fungsi, dan potensi pemblokir aplikasi saat ini yang dapat memperlambat transformasi ke cloud.

Alat ini ditujukan untuk peran berikut:

  • Arsitek IT
  • Pengambil keputusan
  • Pemilik aplikasi

Alat codmod bertujuan untuk mempercepat transformasi aplikasi dengan memberikan visibilitas yang jelas ke dalam perubahan yang diperlukan, dan manfaat yang diperoleh dari transformasi aplikasi ke Google Cloud. codmod adalah alat CLI portabel yang menggunakan Gemini untuk menganalisis kode sumber dan memberikan rekomendasi berdasarkan praktik terbaik Google Cloud .

Sebelum memulai

Alat codmod memerlukan prasyarat berikut:

  • Workstation Linux atau Windows (10 atau yang lebih baru).
  • Akses ke project Google Cloud yang telah mengaktifkan Vertex AI API.
  • Penginstalan gcloud CLI di workstation Anda. Untuk mengetahui informasi selengkapnya, lihat Menginstal gcloud CLI.

Harga

Biaya penggunaan Gemini untuk penilaian kode terutama ditentukan oleh ukuran codebase, dan diukur dalam token. Tabel berikut menunjukkan perkiraan biaya yang dapat Anda lihat berdasarkan baris kode dan model yang Anda pilih:

Codebase Baris Kode (LOC) Estimasi Biaya
adaptif 2.5-flash 2.5-pro 3.5-flash 3.8-flash (default)
Spring Petclinic ~6.500 $20 $3 $20 $3 $9
James Project ~1.000.000 $40 $30 $200 $200 $200
Elasticsearch ~5.000.000 $200 $200 $900 $500 $500

Nilai ini mungkin terlalu tinggi karena tidak memperhitungkan kemungkinan penghematan karena hal berikut:

  • Harga yang lebih rendah untuk kueri singkat.
  • Harga yang lebih rendah untuk penyimpanan ke cache implisit.
  • Diskon abonemen (CUD).

Biaya untuk parameter ini diperkirakan akan menjadi bagian yang dapat diabaikan dari total biaya, terutama untuk codebase yang lebih besar. Untuk informasi tambahan, lihat harga Gemini API.

Informasi tambahan

Alat ini menggunakan kemampuan pemahaman dan analisis kode tingkat lanjut dari Vertex AI API. Untuk mengetahui informasi selengkapnya tentang model yang tersedia dan fiturnya, lihat Model Google dalam dokumentasi API Vertex AI.

Untuk mempertahankan performa dan efisiensi biaya yang optimal, codmod memiliki batas ukuran codebase sekitar 6 juta baris kode. Untuk codebase yang melebihi batas ini, sebaiknya bagi codebase menjadi bagian yang lebih kecil dan mudah dikelola untuk dianalisis. Menganalisis bagian yang lebih kecil juga dapat membantu penilaian yang lebih terfokus dan berpotensi mengurangi waktu pemrosesan secara keseluruhan.

Siapkan codmod

Bagian ini berisi petunjuk penginstalan dan autentikasi untuk menggunakan alat codmod.

Instal codmod

Windows

Jalankan perintah berikut di Windows PowerShell untuk mendownload versi terbaru codmod:

$version=curl.exe -s https://codmod-release.storage.googleapis.com/latest
curl.exe -O "https://codmod-release.storage.googleapis.com/${version}/windows/amd64/codmod.exe"

Linux

Jalankan perintah berikut untuk mendownload codmod versi terbaru:

version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/linux/amd64/codmod"
chmod +x codmod

Untuk menggunakan perintah codmod, tambahkan file yang dapat dieksekusi ke jalur, atau buat alias.

Melakukan autentikasi ke Google Cloud

Untuk menggunakan alat codmod, Anda memerlukan project Google Cloud .

  1. Pastikan Vertex AI API diaktifkan pada project di konsol atau menggunakan CLI:

    gcloud services enable aiplatform.googleapis.com --project <project-id>
    
  2. Pastikan Anda memiliki peran roles/aiplatform.user atau yang serupa di project.

  3. Untuk melakukan autentikasi, jalankan perintah berikut:

    gcloud auth application-default login
    

Atau, Anda dapat menggunakan akun layanan dan menetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS. Untuk mempelajari lebih lanjut, lihat Cara kerja Kredensial Default Aplikasi.

Mengelola konfigurasi codmod

Bagian berikut menjelaskan cara mengonfigurasi codmod dengan perintah codmod config.

Mencantumkan semua setelan

Untuk melihat semua properti konfigurasi saat ini dan nilainya, jalankan perintah berikut:

codmod config list

Menetapkan nilai default untuk flag

Untuk menetapkan nilai default properti, gunakan perintah set. Misalnya, untuk menetapkan project ID default, jalankan:

codmod config set project "PROJECT_ID"

Ganti PROJECT_ID dengan project ID Google Cloud .

Untuk menetapkan region default, jalankan:

codmod config set region "REGION"

Ganti REGION dengan region Google Cloud . Lihat daftar region yang tersedia. Jika Anda tidak yakin region mana yang akan digunakan, gunakan us-central1.

Mendapatkan nilai tertentu

Untuk melihat nilai satu properti, gunakan perintah get. Misalnya, untuk mendapatkan project ID yang dikonfigurasi, jalankan perintah berikut:

codmod config get project

Membatalkan penetapan nilai default

Untuk menghapus default yang dikonfigurasi dan kembali ke setelan default asli alat, gunakan perintah unset. Misalnya, untuk menghapus project ID default, jalankan perintah berikut:

codmod config unset project

Membuat laporan penilaian codmod

Bagian berikut menjelaskan cara membuat penilaian default dan cara menyesuaikannya sesuai kebutuhan Anda.

Membuat laporan default

Untuk membuat laporan penilaian, jalankan alat codmod dengan flag berikut:

codmod create -c "CODEBASE" -o "OUTPUT"

Ganti kode berikut:

  • CODEBASE: menentukan direktori yang berisi kode sumber yang akan dianalisis, dan dapat ditentukan beberapa kali.
  • OUTPUT: menentukan jalur tempat laporan yang dihasilkan disimpan. Laporan dalam format HTML.

Anda dapat mengganti project dan region default dengan flag -p "PROJECT_ID" dan -r "REGION".

Anda juga dapat menentukan flag opsional berikut:

  • --modelset [2.5-flash|2.5-pro|3.5-flash|3.8-flash|adaptive]: menentukan model Gemini yang akan digunakan. Nilai defaultnya adalah 3.8-flash. Adaptif memberikan pengurangan biaya yang signifikan dengan potensi kompromi dalam kualitas laporan dibandingkan dengan 2.5-pro.
  • --format <html|markdown|odt|json>: format yang digunakan untuk laporan yang dibuat. Default-nya adalah HTML.
  • --allow-large-codebase: secara default, codmod akan meminta konfirmasi sebelum menganalisis codebase yang lebih besar dari 1 juta baris kode - untuk menghindari biaya tinggi. Opsi ini berfungsi sebagai konfirmasi non-interaktif. Anda juga dapat mengaktifkannya secara default dengan menjalankan codmod config set allow_large_codebase true.
  • --improve-fidelity: jika ditetapkan, codmod akan membuat bagian secara serial, bukan secara paralel. Tindakan ini meningkatkan konsistensi antara berbagai bagian laporan akhir, tetapi memerlukan waktu proses yang lebih lama.
  • --force-include <strings>, --force-exclude <strings>: secara default, codmod memindai ekstensi file populer termasuk Java, .NET, dan Python. Gunakan flag ini untuk menyertakan atau mengecualikan ekstensi file. Argumen harus berupa ekspresi reguler dengan sintaksis RE2.
  • --experiments: tentukan --experiments=enable_pdf,enable_images untuk mendukung PDF dan gambar di codmod.
  • --context <string>: konteks tambahan apa pun yang ingin Anda berikan tentang project. Alat ini akan mempertimbangkan konteks ini saat membuat laporan.
  • --context-file <path>: sama seperti --context dengan konteks yang diberikan dalam file yang ditentukan.
  • --supporting-documents <path>: menentukan direktori dokumentasi pendukung tentang codebase. File dalam direktori ini dapat dirujuk dari konteks yang disediakan dengan flag --context atau --context-file untuk disertakan dalam analisis. Format yang didukung mencakup teks, PDF, dan gambar (PNG, JPG, JPEG).

Membuat laporan lengkap

Jika Anda memerlukan analisis lengkap, buat laporan menggunakan perintah create full:

codmod create full -c "~/mycodebase/" -o "report.html"

Membuat laporan yang berfokus pada lapisan data

Jika diperlukan perhatian yang lebih mendalam pada lapisan data, laporan dapat dibuat dengan fokus pada area ini:

codmod create data-layer -c "CODEBASE" -o "OUTPUT"

Membuat laporan untuk niat transformasi tertentu

Jika ingin memfokuskan laporan pada intent modernisasi tertentu, Anda dapat menggunakan salah satu intent yang didukung berikut:

  • Transformasi workload Microsoft (MICROSOFT_MODERNIZATION): gunakan dengan aplikasi yang berjalan di OS Microsoft, penilaian akan berfokus pada perjalanan transformasi yang akan memodernisasi framework berbasis .NET untuk menggunakan versi terbaru dan mengurangi dependensi pada lisensi Microsoft.
  • Transformasi workload cloud ke cloud (CLOUD_TO_CLOUD): digunakan dengan aplikasi yang berjalan di infrastruktur hyperscaler lain. Penilaian akan berfokus pada perubahan yang direkomendasikan untuk mentransformasi aplikasi, seperti memetakan layanan vendor cloud lain ke layananGoogle Cloud .
  • Legacy Java transformation (JAVA_LEGACY_TO_MODERN): gunakan dengan aplikasi yang menjalankan Java versi Java 8 atau yang serupa, penilaian akan berfokus pada menemukan dependensi upgrade dan area dalam kode yang terpengaruh oleh perubahan ke Java 21 (LTS saat ini).
  • Legacy Java WILDFLY transformation (WILDFLY_LEGACY_TO_MODERN): gunakan dengan codebase Java EE/Jakarta EE yang berjalan di server aplikasi WildFly versi sebelum versi terbaru. Penilaian akan berfokus pada identifikasi dependensi upgrade dan area dalam kode yang terpengaruh oleh upgrade versi server aplikasi WildFly, termasuk perubahan yang diperlukan untuk perbedaan dan kompatibilitas API.
  • Migrasi aplikasi C/C++ ke arsitektur Arm (ARM_MIGRATION): gunakan dengan aplikasi C/C++ untuk menilai kesiapan dan upaya yang diperlukan untuk bermigrasi dari arsitektur berbasis x86 ke arsitektur berbasis Arm, seperti VM Google Cloud Axion C4A. Penilaian ini berfokus pada identifikasi potensi masalah portabilitas kode, dependensi khusus arsitektur, modifikasi sistem build, dan pertimbangan pengujian yang diperlukan agar transisi ke Arm dariGoogle Cloud atau CSP lain seperti instance Graviton AWS berhasil.

Untuk membuat laporan yang berfokus pada intent, gunakan flag --intent:

codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"

Membuat laporan dengan bagian tambahan

Alat ini mendukung penyertaan bagian tambahan yang tidak disertakan secara default untuk mengurangi biaya. Bagian berikut didukung:

  • files: tampilan hierarkis terstruktur dari folder project dan deskripsi per setiap konten folder untuk membantu Anda memahami file project.
  • classes: katalog class kode dengan informasi tentang setiap class dan dependensinya pada class lain. Bahasa yang didukung adalah Java dan C#.

Untuk membuat bagian tambahan, gunakan flag --optional-sections:

codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"

Ganti SECTIONS dengan daftar nilai yang dipisahkan koma.

Membuat laporan kustom

Jika ingin mempelajari beberapa topik kustom tertentu, Anda dapat membuat laporan kustom berdasarkan konteks yang Anda berikan menggunakan perintah berikut:

codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"

Secara default, LLM digunakan untuk memperluas konteks yang diberikan dan menyesuaikannya untuk memastikan bahwa bagian yang koheren dihasilkan. Anda dapat menonaktifkan perilaku ini dengan menentukan --improve-context=false.

Flag tambahan:

  • --from-template <path>: menentukan file template yang menentukan struktur dokumen dalam format file teks atau PDF. codmod mendeteksi struktur dan meminta persetujuan untuk melanjutkan pembuatan laporan.
  • --skip-template-approval: melewati permintaan persetujuan saat menggunakan flag --from-template.

Mengubah laporan yang ada

Anda dapat membuat bagian baru dalam laporan atau mengubah bagian yang ada berdasarkan bagian tertentu. Misalnya, Anda mungkin ingin berfokus pada aspek tertentu dari arsitektur sistem, atau jenis kerentanan keamanan tertentu.

Perintah yang mengubah laporan akan memerlukan flag berikut:

  • Salah satu dari --context dan --context-file: tentukan permintaan modifikasi.
  • --from-report: menentukan jalur untuk file laporan yang ada.
  • --from-section: nama bagian yang akan digunakan sebagai dasar untuk bagian baru (misalnya "Ringkasan", atau "Arsitektur").

Untuk menampilkan semua bagian yang tersedia dalam laporan tertentu, jalankan perintah berikut:

codmod list-sections --from-report "REPORT"

Merevisi bagian laporan

Ubah bagian yang ada dengan menjalankan perintah berikut:

codmod revise section -c "CODEBASE" --from-report "REPORT" \
  -o "REVISED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"

Membuat bagian laporan baru

Buat bagian baru menggunakan perintah berikut:

codmod create section -c "CODEBASE" --from-report "REPORT" \
  -o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"
  • Flag from-section dalam perintah create section bersifat opsional.
  • Secara default, LLM digunakan untuk memperluas konteks yang diberikan dan menyesuaikannya untuk memastikan bagian yang koheren dihasilkan. Anda dapat menonaktifkan perilaku ini dengan menentukan --improve-context=false.

Perhatikan hal berikut:

  • create section dan revise section hanya mendukung format laporan html.
  • create section, revise section, list-sections mengharapkan flag --from-report untuk mengarah ke laporan dalam format HTML.

Memperkirakan biaya penilaian

Alat codmod membantu Anda memahami biaya penggunaan alat dengan memungkinkan Anda menghitung perkiraan biaya pembuatan laporan. Untuk melihat perkiraan biaya, jalankan perintah berikut:

codmod create --estimate-cost -c "CODEBASE"

Perkiraan biaya tidak didukung untuk perintah create section dan create custom.

Menetapkan tingkat panjang respons

Panjang respons codmod dikonfigurasi menggunakan flag --verbosity LEVEL. Tingkat panjang respons log adalah salah satu dari berikut ini: debug, info, warn, error, atau none. Nilai defaultnya adalah warn.

Memeriksa dan mengupdate versi codmod CLI

codmod CLI dapat otomatis memeriksa apakah versi yang lebih baru tersedia.

Pemeriksaan otomatis

Setiap 24 jam, CLI akan melakukan polling pada bucket Cloud Storage untuk melihat apakah versi codmod yang lebih baru telah dirilis. Jika versi yang lebih baru ditemukan, Anda akan melihat pesan notifikasi di terminal. Pesan tersebut menyertakan nomor versi baru dan link untuk mendownload update. Proses ini membantu memastikan Anda dapat terus mendapatkan fitur, peningkatan, dan perbaikan bug terbaru.

Menonaktifkan pemeriksaan versi

Jika Anda memilih untuk menonaktifkan pemeriksaan versi otomatis, Anda dapat menggunakan perintah config set:

codmod config set disable_version_check true

Untuk mengaktifkan kembali pemeriksaan versi, tetapkan kembali nilainya ke false:

codmod config set disable_version_check false

Anda dapat melihat status setelan ini saat ini dan konfigurasi lainnya dengan menjalankan:

codmod config list

Pelengkapan command line

Alat CLI codmod mendukung pelengkapan command line shell untuk Bash, Zsh, Fish, dan PowerShell. Fitur ini membantu Anda mengetik perintah, flag, dan argumen dengan cepat dengan menekan tombol Tab untuk melihat dan memilih opsi yang tersedia.

Pelengkapan otomatis menawarkan manfaat berikut:

  • Perintah dan flag pelengkapan otomatis: mulai ketik perintah atau flag codmod, lalu tekan Tab untuk melihat kemungkinan pelengkapan.
  • Menemukan opsi: melihat nilai yang valid untuk flag tertentu. Contoh:
    • codmod create --modelset [TAB] menyarankan set model yang tersedia (misalnya, 2.0-flash, 2.5-pro).
    • codmod create --format [TAB] menyarankan format output (misalnya, html, json, markdown).
    • codmod create --intent [TAB] menyarankan intent yang telah ditetapkan.
  • Saran berbasis konteks: penyelesaian disesuaikan dengan perintah. Misalnya:
    • codmod config set [TAB] menyarankan kunci konfigurasi yang tersedia yang dapat Anda tetapkan.
    • codmod config get [TAB] menyarankan kunci konfigurasi yang tersedia yang bisa Anda dapatkan.
    • Pelengkapan jalur file hanya ditawarkan untuk flag atau argumen yang memerlukan jalur file atau direktori (misalnya, --codebase, --output-path). Flag lain, seperti --project, tidak lagi menyarankan nama file.

Mengaktifkan penyelesaian shell

Sebelum mengaktifkan penyelesaian shell, pastikan perintah codmod berfungsi dengan menambahkan file yang dapat dieksekusi ke jalur, atau dengan membuat alias.

Untuk memuat penyelesaian untuk shell Anda, jalankan perintah yang sesuai. Petunjuknya bervariasi, bergantung pada shell Anda. Gunakan perintah help untuk mendapatkan petunjuk spesifik:

# For Bash
codmod completion bash --help

# For Zsh
codmod completion zsh --help

# For Fish
codmod completion fish --help

# For PowerShell
codmod completion powershell --help

Misalnya, untuk memuat penyelesaian Bash di Linux, Anda dapat menambahkan kode berikut ke ~/.bashrc:

source <(codmod completion bash)

Pastikan untuk memulai ulang shell atau mengambil sumber profil Anda (misalnya, source ~/.bashrc) agar perubahan diterapkan.

Pemecahan masalah

  • Izin ditolak: jika Anda mengalami error "izin ditolak", pastikan Anda memberikan izin eksekusi ke biner codmod dengan menjalankan perintah chmod +x codmod.
  • CLI tampak hang: analisis dapat memerlukan waktu lama, tetapi Anda biasanya dapat melihat progresnya di status progres di CLI. Jika status progres tetap 0% setelah 15 menit, pastikan Anda memiliki kuota yang cukup untuk model yang relevan. Secara default, codmod menggunakan model gemini-3.8-flash. Namun, hal ini dapat berubah karena set model yang berbeda menggunakan model yang berbeda untuk tujuan yang berbeda.
  • Melaporkan error: jika terjadi error yang memerlukan penyelidikan, kumpulkan informasi proses debug untuk membantu tim pengembangan kami. Log memberikan detail penting untuk pemecahan masalah. Jalankan perintah berikut untuk mengumpulkan log, lalu zip dan bagikan arsip yang dihasilkan kepada tim di codmod-feedback-external@google.com.

    codmod collect-logs -o "codmod_logs.zip"
    

Lisensi open source

Anda dapat mendownload pemberitahuan open source untuk dependensi versi terbaru codmod dengan menjalankan:

version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"

Mendapatkan dukungan dan memberikan masukan

Untuk membantu meningkatkan kualitas produk ini, kami mengumpulkan data penggunaan yang dianonimkan secara semu. Data ini ditangani sesuai dengan kebijakan privasi kami Google Cloud Pemberitahuan Privasi. Anda dapat mengubah preferensi kapan saja dengan menjalankan perintah berikut:

codmod config set disable_usage_reporting true

Anda bisa mendapatkan dukungan dan memberikan masukan dengan cara berikut:

  • Untuk mendapatkan dukungan terkait codmod, klik tombol Dukungan di laporan HTML yang dihasilkan, atau kirim email ke codmod-feedback-external@google.com.
  • Untuk memberikan masukan tentang codmod, klik tombol Masukan di laporan HTML yang dihasilkan.