Penilaian Modernisasi Aplikasi Pusat Migrasi (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 yang umum 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 penghambat 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 mentransformasi 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 yang telah mengaktifkan Vertex AI API. Google Cloud
- Penginstalan gcloud CLI di workstation Anda. Untuk mengetahui informasi selengkapnya, lihat Menginstal gcloud CLI CLI.
Harga
Biaya penggunaan Gemini untuk penilaian kode terutama didasarkan pada ukuran codebase, dan diukur dalam token. Tabel berikut menunjukkan perkiraan biaya yang dapat Anda lihat berdasarkan baris kode dan model yang Anda pilih:
| Codebase | Lines of Code (LOC) | Estimasi Biaya | |||
|---|---|---|---|---|---|
| adaptif | 2.0-flash | 2.5-pro (default) | 2.5-flash | ||
| Spring Petclinic | ~6.500 | $20 | $2 | $30 | $4 |
| James Project | ~1.000.000 | $60 | $30 | $500 | $40 |
| Elasticsearch | ~5.000.000 | $200 | $200 | $3.000 | $200 |
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 cache implisit.
- Diskon abonemen (CUD).
Biaya untuk parameter ini diperkirakan akan menjadi bagian yang tidak signifikan dari total biaya, terutama untuk codebase yang lebih besar. Untuk mengetahui informasi tambahan, lihat Harga Gemini API.
Informasi tambahan
Alat ini menggunakan kemampuan analisis dan pemahaman kode tingkat lanjut dari Vertex AI API. Untuk mengetahui informasi selengkapnya tentang model yang tersedia dan fiturnya, lihat Model Google dalam dokumentasi Vertex AI API.
Untuk mempertahankan performa yang optimal dan efisiensi biaya, codmod memiliki batas ukuran codebase
sekitar 6 juta baris kode.
Untuk codebase yang melebihi batas ini, sebaiknya bagi codebase tersebut menjadi bagian-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 memberikan 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 versi terbaru codmod:
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 .
Pastikan Vertex AI API diaktifkan di project di konsol atau menggunakan CLI:
gcloud services enable aiplatform.googleapis.com --project <project-id>Pastikan Anda memiliki peran
roles/aiplatform.useratau yang serupa di project.Untuk mengautentikasi, 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 tanda
Untuk menetapkan nilai default untuk properti, gunakan perintah set. Misalnya,
untuk menetapkan project ID default, jalankan:
codmod config set project "PROJECT_ID"
Ganti PROJECT_ID dengan ID project 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 setelan nilai default
Untuk menghapus default yang dikonfigurasi dan mengembalikan ke setelan default
alat, gunakan perintah unset. Misalnya, untuk menghapus ID project 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 tanda
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 ini 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.0-flash|2.5-flash|2.5-pro|adaptive]: menentukan model Gemini yang akan digunakan. Nilai defaultnya adalah2.5-pro. Adaptif memberikan pengurangan biaya yang signifikan dengan potensi penurunan kualitas laporan dibandingkan dengan2.5-pro.--format <html|markdown|odt|json>: format yang digunakan untuk laporan yang dibuat. Defaultnya adalah HTML.--allow-large-codebase: secara default,codmodakan meminta konfirmasi sebelum menganalisis codebase yang lebih besar dari 1 juta baris kode - untuk menghindari biaya yang tinggi. Opsi ini berfungsi sebagai konfirmasi non-interaktif. Anda juga dapat mengaktifkannya secara default dengan menjalankancodmod config set allow_large_codebase true.--improve-fidelity: jika disetel,codmodakan membuat bagian secara berurutan dan 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,codmodmemindai ekstensi file populer termasuk Java, .NET, dan Python. Gunakan tanda ini untuk menyertakan atau mengecualikan ekstensi file. Argumen harus berupa ekspresi reguler dengan sintaksis RE2.--experiments: tentukan--experiments=enable_pdf,enable_imagesuntuk mendukung PDF dan gambar dicodmod.--context <string>: konteks tambahan yang ingin Anda berikan tentang project. Alat ini mempertimbangkan konteks ini saat membuat laporan.--context-file <path>: sama dengan--contextjika konteksnya disediakan dalam file tertentu.--supporting-documents <path>: menentukan direktori dokumentasi pendukung tentang codebase. File dalam direktori ini dapat dirujuk dari konteks yang diberikan dengan tanda--contextatau--context-fileuntuk disertakan dalam analisis. Format yang didukung meliputi 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 maksud transformasi tertentu
Jika ingin memfokuskan laporan pada maksud modernisasi tertentu, Anda dapat menggunakan salah satu maksud yang didukung berikut:
- Transformasi beban kerja 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 beban kerja cloud ke cloud (
CLOUD_TO_CLOUD): gunakan dengan aplikasi yang berjalan di infrastruktur hyperscaler lain. Penilaian akan berfokus pada perubahan yang direkomendasikan untuk mengubah aplikasi, seperti memetakan layanan vendor cloud lain ke layananGoogle Cloud . - Transformasi Java lama (
JAVA_LEGACY_TO_MODERN): gunakan dengan aplikasi yang menjalankan Java versi Java 8 atau yang serupa, penilaian akan berfokus pada pencarian dependensi upgrade dan area dalam kode yang terpengaruh dari perubahan ke Java 21 (LTS saat ini). - Transformasi WILDFLY Java lama (
WILDFLY_LEGACY_TO_MODERN): gunakan dengan codebase Java EE/Jakarta EE yang berjalan di server aplikasi WildFly versi sebelum yang terbaru. Penilaian akan berfokus pada mengidentifikasi 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 untuk transisi yang berhasil ke Arm dariGoogle Cloud atau CSP lain seperti instance Graviton AWS.
Untuk membuat laporan yang berfokus pada niat, gunakan tanda --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 konten setiap 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 menjelajahi 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 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 PDF atau teks.codmodmendeteksi 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
--contextdan--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-sectiondalam perintahcreate sectionbersifat 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 sectiondanrevise sectionhanya mendukung format laporanhtml.create section,revise section,list-sectionsmengharapkan flag--from-reportmenunjuk ke laporan dalam format HTML.
Estimasi 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"
Estimasi biaya tidak didukung untuk perintah create section dan create custom.
Menetapkan tingkat verbositas
Keterangan codmod dikonfigurasi menggunakan
flag --verbosity LEVEL.
Level kejelasan log adalah salah satu dari berikut ini: debug, info,
warn, error, atau none. Nilai defaultnya adalah warn.
Memeriksa dan mengupdate versi codmod CLI
CLI codmod dapat otomatis memeriksa apakah versi yang lebih baru tersedia.
Pemeriksaan otomatis
Setiap 24 jam, CLI 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 nilai kembali ke false:
codmod config set disable_version_check false
Anda dapat melihat status setelan ini dan konfigurasi lainnya saat ini dengan menjalankan:
codmod config list
Penyelesaian command line
Alat CLI codmod mendukung penyelesaian command line shell untuk Bash, Zsh, Fish, dan PowerShell. Fitur ini membantu Anda mengetik perintah, tanda, 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 tekanTabuntuk melihat kemungkinan penyelesaian. - Opsi penemuan: 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 ditentukan.
- Saran yang sesuai konteks: penyelesaian disesuaikan dengan perintah.
Misalnya:
codmod config set [TAB]menyarankan kunci konfigurasi yang tersedia yang dapat Anda tetapkan.codmod config get [TAB]menunjukkan kunci konfigurasi yang tersedia yang dapat Anda peroleh.- Penyelesaian jalur file hanya ditawarkan untuk flag atau argumen yang
mengharapkan jalur file atau direktori (misalnya,
--codebase,--output-path). Flag lainnya, seperti--project, tidak lagi menyarankan nama file.
Mengaktifkan penyelesaian shell
Sebelum mengaktifkan penyelesaian shell, pastikan perintah codmod berfungsi
dengan menambahkan executable ke jalur, atau dengan membuat alias.
Untuk memuat penyelesaian untuk shell Anda, jalankan perintah yang sesuai. Petunjuknya
berbeda-beda, bergantung pada shell Anda. Gunakan perintah help untuk mendapatkan
petunjuk khusus:
# 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 memanggil 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
codmoddengan menjalankan perintahchmod +x codmod. - CLI tampak berhenti: analisis dapat memerlukan waktu yang lama, tetapi Anda biasanya dapat melihat progres di status progres di CLI. Jika status progres tetap 0% setelah 15 menit, verifikasi bahwa Anda memiliki kuota yang cukup untuk model yang relevan. Secara default,
codmodmenggunakan modelgemini-2.5-pro. Namun, hal ini dapat berubah karena set model yang berbeda menggunakan model yang berbeda untuk tujuan yang berbeda. Melaporkan error: jika terjadi error yang perlu diselidiki, kumpulkan informasi debug untuk membantu tim pengembangan kami. Log memberikan detail penting untuk pemecahan masalah. Jalankan perintah berikut untuk mengumpulkan log, lalu kompresi 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 dipseudoanonimkan. Data ini ditangani sesuai dengan kebijakan privasi kami Google Cloud Pemberitahuan Privasi. Anda dapat mengubah preferensi Anda 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 dalam 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.