Bagikan melalui


Aplikasi Azure Migrate dan penilaian kode untuk Java versi 7 (Pratinjau)

Catatan

Artikel ini untuk generasi berikutnya dari aplikasi Azure Migrate dan penilaian kode untuk Java, versi 7.x. Versi ini dalam pratinjau. Untuk versi stabil sebelumnya, versi 6.x, lihat Aplikasi Azure Migrate dan penilaian kode untuk Java.

Artikel ini memperlihatkan kepada Anda cara menggunakan aplikasi Azure Migrate dan alat penilaian kode untuk Java untuk menilai dan mereplatformasi semua jenis aplikasi Java. Alat ini memungkinkan Anda mengevaluasi kesiapan aplikasi untuk mereplatformasi dan migrasi ke Azure. Alat ini ditawarkan sebagai antarmuka baris perintah (CLI), dan menilai biner aplikasi Java dan kode sumber untuk mengidentifikasi peluang replatforming dan migrasi untuk Azure. Ini membantu Anda memodernisasi dan mereplatformasi aplikasi Java skala besar dengan mengidentifikasi kasus penggunaan umum dan pola kode dan mengusulkan perubahan yang direkomendasikan.

Alat ini menemukan penggunaan teknologi aplikasi melalui analisis kode statis, memberikan estimasi upaya, dan mempercepat replatforming kode. Penilaian ini membantu Anda memprioritaskan dan memindahkan aplikasi Java ke Azure. Dengan seperangkat mesin dan aturan, alat ini dapat menemukan dan menilai berbagai teknologi seperti Java 11, Java 17, Jakarta EE, Spring, Hibernate, Java Message Service (JMS), dan banyak lagi. Alat ini kemudian membantu Anda mereplatformasi aplikasi Java ke target Azure yang berbeda - Azure App Service, Azure Kubernetes Service, dan Azure Container Apps - dengan aturan replatformasi Azure tertentu.

Alat ini didasarkan pada serangkaian komponen dalam proyek Cloud Native Computing Foundation Konveyor, yang dibuat dan dipimpin oleh Red Hat.

Gambaran Umum

Alat ini dirancang untuk membantu organisasi memodernisasi aplikasi Java mereka dengan cara yang mengurangi biaya dan memungkinkan inovasi yang lebih cepat. Alat ini menggunakan teknik analisis tingkat lanjut untuk memahami struktur dan dependensi aplikasi Java apa pun, dan memberikan panduan tentang cara merefaktor dan memigrasikan aplikasi ke Azure.

Dengan itu, Anda dapat melakukan tugas-tugas berikut:

  • Temukan penggunaan teknologi: Lihat teknologi mana yang digunakan aplikasi dengan cepat. Penemuan berguna jika Anda memiliki aplikasi warisan dengan dokumentasi yang tidak banyak dan ingin mengetahui teknologi mana yang mereka gunakan.
  • Menilai kode ke target tertentu: Menilai aplikasi untuk target Azure tertentu. Periksa upaya dan modifikasi yang harus Anda lakukan untuk mereplatformasi aplikasi Anda ke Azure.

Target yang didukung

Alat ini berisi aturan untuk membantu Anda mereplatformasi aplikasi sehingga Anda dapat menyebarkan, dan menggunakan layanan Azure yang berbeda.

Aturan yang digunakan oleh aplikasi Azure Migrate dan penilaian kode dikelompokkan berdasarkan target. Target adalah tempat atau bagaimana aplikasi berjalan, dan kebutuhan dan harapan umum. Saat menilai aplikasi, Anda dapat memilih beberapa target. Tabel berikut ini menjelaskan target yang tersedia:

Nama target Deskripsi Target
Azure App Service Praktik terbaik untuk menyebarkan aplikasi ke Azure App Service. azure-appservice
Azure Kubernetes Service Praktik terbaik untuk menyebarkan aplikasi ke Azure Kubernetes Service. azure-aks
Azure Container Apps Praktik terbaik untuk menyebarkan aplikasi ke Azure Container Apps. azure-container-apps
Kesiapan Cloud Praktik terbaik umum untuk membuat aplikasi Cloud (Azure) siap. cloud-readiness
Linux Praktik terbaik umum untuk membuat aplikasi linux siap. linux
OpenJDK 11 Praktik terbaik umum untuk menjalankan aplikasi Java 8 dengan Java 11. openjdk11
OpenJDK 17 Praktik terbaik umum untuk menjalankan aplikasi Java 11 dengan Java 17. openjdk17
OpenJDK 21 Praktik terbaik umum untuk menjalankan aplikasi Java 17 dengan Java 21. openjdk21

Saat alat menilai kesiapan Cloud dan layanan Azure terkait, alat ini juga dapat melaporkan informasi yang berguna untuk potensi penggunaan layanan Azure yang berbeda. Daftar berikut ini memperlihatkan beberapa layanan yang tercakup:

  • Azure Databases
  • Azure Service Bus
  • Azure Storage
  • Jaringan Pengiriman Konten Azure
  • Azure Event Hubs
  • Azure Key Vault
  • Azure Front Door

Unduh dan Instal

Untuk menggunakan appcat CLI, Anda harus mengunduh paket khusus untuk lingkungan Anda, dan memiliki dependensi yang diperlukan di lingkungan Anda. appcat CLI berjalan di lingkungan apa pun seperti Windows, Linux, atau Mac, menggunakan perangkat keras Intel, Arm, atau Apple Silicon. Untuk persyaratan JDK, kami sarankan Anda menggunakan Microsoft Build of OpenJDK.

OS Sistem Tautan unduhan File lain
x64
Windows x64 Unduh sha256 / sig
macOS x64 Unduh sha256 / sig
Linux x64 Unduh sha256 / sig
AArch64
Windows AArch64 / ARM64 Unduh sha256 / sig
macOS Apple Silicon Unduh sha256 / sig
Linux AArch64 / ARM64 Unduh sha256 / sig

Prasyarat

Penginstalan

Untuk menginstal appcat, unduh file zip yang sesuai untuk platform Anda. Setelah mengunduh file, tergantung pada sistem operasi Anda, Anda harus menemukan file .tar.gz (Linux/macOS) atau .zip (Windows).

Ekstrak biner dari file yang diunduh. Anda akan melihat struktur folder berikut:

/azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>-preview/
├── appcat.exe (Windows) / appcat (Linux/macOS)
├── samples/
├── fernflower.jar
├── LICENSE
├── NOTICE.txt
├── maven.default.index
├── jdtls/
├── static-report/
├── rulesets/   
├── readme.md
└── readme.html

Menjalankan alat

Opsi 1: Jalankan appcat dari folder yang diunduh

Ubah direktori ke folder yang diekstrak:

cd /azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>-preview/
./appcat --help

Catatan

Biner appcat pertama-tama mencari dependensinya di direktori saat ini, tempatnya berjalan, dan kembali ke skenario berikut jika tidak ditemukan.

Opsi 2: Tambahkan jalur biner appcat ke $PATH Anda

Pindahkan konten folder ke folder .appcat di direktori beranda pengguna - $HOME/.appcat di Linux/Mac dan %USERPROFILE%/.appcat di Windows.

Tambahkan folder .appcat ke variabel lingkungan Anda PATH sehingga Anda dapat menjalankan alat dari folder apa pun di terminal.

mv <path-to-extracted>/azure-migrate-appcat-for-java-cli-<OS>-<architecture>-<release-version>-preview/ $HOME/.appcat

Catatan

Dalam konteks ini, ketika appcat biner dipanggil dari folder yang berbeda dari tempatnya diinstal, biner mencari dependensinya di folder .appcat di direktori beranda pengguna.

Penggunaan

Subperintah

AppCAT menyediakan dua sub-perintah untuk penggunaan:

  • analyze: Jalankan analisis kode sumber pada kode sumber input atau biner.
  • transform: Konversi aturan XML dari versi sebelumnya (6 dan yang lebih lama) ke format YAML yang digunakan oleh versi ini.

Catatan

Untuk pengguna macOS: Jika Anda mengalami kesalahan yang menyatakan "Apple tidak dapat memverifikasi" saat mencoba menjalankan app, Anda dapat mengatasi kesalahan ini dengan menggunakan perintah berikut:

xattr -d -r com.apple.quarantine /path/to/appcat_binary

Contohnya:

xattr -d -r com.apple.quarantine $HOME/.appcat/appcat

Menganalisis sub-perintah

analyze Subperindesa memungkinkan Anda menjalankan kode sumber dan analisis biner.

Untuk menganalisis kode sumber aplikasi, jalankan perintah berikut:

./appcat analyze --input=<path-to-source-code> --output=<path-to-output-directory> --target=azure-appservice --overwrite

Bendera --input harus menunjuk ke direktori kode sumber atau file biner, dan --output harus menunjuk ke direktori untuk menyimpan hasil analisis.

Untuk informasi selengkapnya tentang bendera analisis, jalankan perintah berikut:

./appcat analyze --help

Untuk memeriksa target yang tersedia untuk AppCAT, jalankan perintah berikut:

./appcat analyze --list-targets

Perintah ini menghasilkan output berikut:

available target technologies:
azure-aks
azure-appservice
azure-container-apps
azure-spring-apps
cloud-readiness
linux
openjdk11
openjdk17
openjdk21

Menganalisis Beberapa Aplikasi

AppCAT dirancang untuk menganalisis satu aplikasi per eksekusi perintah, tetapi jika Anda menggunakan opsi , --bulk Anda dapat menganalisis beberapa aplikasi dalam satu eksekusi. Opsi ini menghasilkan satu laporan statis dalam direktori output yang menyertakan hasil untuk semua aplikasi.

Untuk menganalisis beberapa aplikasi, jalankan perintah berikut:

./appcat analyze --bulk --input=<path-to-source-A> --output=<path-to-output-ABC> --target=<targetname>
./appcat analyze --bulk --input=<path-to-source-B> --output=<path-to-output-ABC> --target=<targetname>
./appcat analyze --bulk --input=<path-to-source-C> --output=<path-to-output-ABC> --target=<targetname>

Mengubah Sub-perintah

transform Sub-perintah memungkinkan Anda mengonversi aturan XML sebelumnya appcat yang digunakan dalam versi 6.x ke dalam format YAML baru yang digunakan oleh versi 7.x ini.

Untuk mengubah aturan, jalankan perintah berikut:

./appcat transform rules --input=<path-to-xml-rules> --output=<path-to-output-directory>

Bendera --input harus menunjuk ke file atau direktori yang berisi aturan XML, dan --output bendera harus menunjuk ke direktori output untuk aturan YAML yang dikonversi.

Sampel

Catatan

Pastikan bahwa izin file untuk skrip di folder yang diekstrak diatur untuk memungkinkan eksekusi.

Di folder sampel, Anda dapat menemukan sampel aplikasi web yang disebut airsonic.war. Airsonic adalah streamer media berbasis web, menyediakan akses ke musik Anda dan memungkinkan Anda untuk membagikannya dengan teman-teman. Untuk mempelajari selengkapnya tentang Airsonic, lihat Airsonic.

Dalam direktori sampel, Anda dapat menemukan skrip berikut untuk menjalankan berbagai jenis analisis:

  • run-assessment: Menyediakan laporan dengan penilaian kode dan langkah-langkah untuk memigrasikan Airsonic ke Azure App Service di Tomcat.
  • run-assessment-transform-rules: Mengonversi aturan XML Windup ke aturan YAML yang kompatibel dengan analyzer-lsp.
  • run-assessment-custom-rules: Menyediakan laporan penilaian kode menggunakan aturan kustom (mengubah XML ke YAML).
  • run-assessment-openjdk21: Menghasilkan laporan dengan penilaian kode dan langkah-langkah untuk memigrasikan Airsonic ke OpenJDK 21.
  • run-assessment-package-only: Menghasilkan laporan dengan menilai paket tertentu.

Bergantung pada sistem operasi Anda, jalankan skrip yang sesuai, seperti yang ditunjukkan dalam contoh berikut:

./samples/run-assessment

Laporan dibuat dan diluncurkan secara otomatis. Anda dapat menemukan laporan di bawah .. /samples/report-* (Linux/macOS) atau .. \samples\report-* (Windows).

Ringkasan analisis

Halaman arahan laporan mencantumkan semua teknologi yang digunakan dalam aplikasi. Dasbor menyediakan ringkasan analisis, termasuk jumlah insiden transformasi, kategori insiden, atau poin cerita.

Cuplikan layar laporan ringkasan appcat.

Saat Anda memperbesar pada bagan pai Insiden menurut Kategori , Anda dapat melihat jumlah insiden menurut kategori: Wajib, Opsional, dan Potensi.

Dasbor juga menunjukkan titik cerita. Poin cerita adalah metrik abstrak yang umum digunakan dalam pengembangan perangkat lunak Agile untuk memperkirakan tingkat upaya yang diperlukan untuk mengimplementasikan fitur atau perubahan. appcat menggunakan titik cerita untuk mengekspresikan tingkat upaya yang diperlukan untuk memigrasikan aplikasi tertentu. Poin cerita tidak selalu diterjemahkan ke jam kerja, tetapi nilainya harus konsisten di seluruh tugas.

Cuplikan layar laporan insiden ringkasan AppCAT.

Laporan penilaian

Laporan penilaian memberikan gambaran umum tentang masalah transformasi yang perlu diselesaikan untuk memigrasikan aplikasi ke Azure.

Masalah-masalah ini, juga disebut Insiden, memiliki tingkat keparahan (Wajib, Opsional, atau Potensi), tingkat upaya, dan angka yang menunjukkan titik cerita. Poin cerita ditentukan dengan menghitung jumlah insiden kali upaya yang diperlukan untuk mengatasi masalah.

Cuplikan layar laporan penilaian AppCAT.

Informasi terperinci untuk masalah tertentu

Untuk setiap insiden, Anda bisa mendapatkan informasi lebih lanjut (detail masalah, konten aturan, dan sebagainya) hanya dengan memilihnya. Anda juga mendapatkan daftar semua file yang terpengaruh oleh insiden ini.

Cuplikan layar laporan detail masalah AppCAT.

Kemudian, untuk setiap file atau kelas yang terpengaruh oleh insiden, Anda dapat melompat ke kode sumber untuk menyoroti baris kode yang membuat masalah.

Cuplikan layar laporan kode masalah AppCAT.

Catatan rilis

7.6.0.1

Rilis ini berisi perbaikan dan penyempurnaan berikut.

  • --analyze-known-libraries bendera: Sekarang berfungsi di Windows.
  • Pembersihan direktori: Direktori tambahan yang dibuat selama analisis pada Windows sekarang dibersihkan secara otomatis.
  • --json-output flag: Sekarang beroperasi.
  • Kesalahan penguraian aturan: Kesalahan unable to parse all the rules for ruleset telah diatasi.
  • Deskripsi tab Insight: Deskripsi aturan yang hilang telah ditambahkan.
  • Dependensi koneksi internet: Analisis tidak lagi gagal tanpa koneksi internet.
  • --context-lines bendera: Sekarang berperilaku seperti yang diharapkan ketika diatur ke 0.
  • Menghapus persyaratan Python untuk menjalankan alat.

7.6.0.0

Rilis ini didasarkan pada serangkaian komponen proyek Konveyor yang berbeda.

Pembaruan Umum

6.3.9.0

Rilis ini berisi perbaikan berikut dan menyertakan sekumpulan aturan baru.

Pembaruan Umum

  • Perubahan terintegrasi dari repositori upstream Windup (6.3.9.Rilis Akhir).
  • Mengatasi tautan rusak dalam deskripsi aturan dan teks bantuan.

Aturan

  • Antrean Pesan Azure: memperbarui dan menambahkan aturan baru untuk azure-message-queue-rabbitmq dan azure-message-queue-amqp.
  • Azure Bus Layanan: memperkenalkan aturan deteksi untuk Azure Bus Layanan.
  • MySQL dan PostgreSQL: aturan deteksi dependensi yang disempurnakan.
  • Aturan Azure-AWS: aturan yang ditingkatkan dan ditingkatkan yang ada.
  • S3 Spring Starter: menambahkan aturan deteksi untuk S3 Spring Starter.
  • RabbitMQ Spring JMS: menambahkan aturan deteksi untuk RabbitMQ Spring JMS.
  • Aturan Pengelogan: aturan terkait pengelogan yang diperbarui dan disempurnakan.
  • Aturan Penyimpanan Lokal: memperbarui dan menyempurnakan aturan penyimpanan lokal.
  • Aturan Sistem File Azure: memperbarui dan menyempurnakan aturan Azure File System.

Perpustakaan

  • Pustaka yang diperbarui untuk mengatasi kerentanan keamanan.

6.3.0.9

Rilis ini berisi perbaikan berikut dan menyertakan sekumpulan aturan baru.

  • Mengatasi masalah dengan localhost-java-00001 aturan.
  • Memperkenalkan aturan baru untuk mengidentifikasi teknologi seperti AWS S3, AWS SQS, Alibaba Cloud OSS, Alibaba Cloud SMS, Alibaba Scheduler X, Alibaba Cloud Seata, dan Alibaba Rocket MQ.
  • azure-file-system-02000 Memperbarui untuk sekarang mendukung ekstensi file XML.
  • Meningkatkan berbagai pustaka untuk mengatasi kerentanan keamanan.

6.3.0.8

Sebelumnya, serangkaian target diaktifkan secara default, sehingga sulit bagi pelanggan tertentu untuk menilai aplikasi besar dengan terlalu banyak insiden yang terkait dengan masalah yang kurang penting. Untuk mengurangi kebisingan dalam laporan, pengguna sekarang harus menentukan beberapa target, dengan parameter --target, saat mengeksekusi appcat, memberi mereka opsi untuk memilih hanya target yang penting.

6.3.0.7

Rilis GA (Umumnya Tersedia) dari aplikasi Azure Migrate dan penilaian kode.

Masalah Umum

7.6.0.1

  • Bendera --overrideProviderSettings tidak didukung.
  • Masalah aturan:
    • azure-system-config-01000, http-session-01000, java-removals-00150 aturan tidak dipicu.
    • FileSystem - Java IO aturan tidak dipicu.
  • Menganalisis file WAR di Windows menghasilkan kesalahan berikut: Failed to Move Decompiled File. Kesalahan terjadi ketika menganalisis file WAR di Windows, yang bertanggung jawab atas beberapa insiden redundan yang dibuat pada OS Windows.
  • Kesalahan di saluran Kesalahan Pengamat di Windows: Windows system assumed buffer larger than it is, events have likely been missed. Pesan kesalahan ini muncul pada baris perintah selama pekerjaan yang berjalan lama di Windows.
  • Ctrl+C gagal menghentikan analisis yang sedang berlangsung. Untuk mengatasinya, hentikan proses secara manual dengan secara eksplisit membunuh proses.
  • Dalam laporan analisis biner, judul cuplikan kode menunjukkan jalur file yang salah atau tidak ada.

7.6.0.0

  • Bendera --analyze-known-libraries tidak berfungsi pada Windows.
  • Di Windows, folder tambahan berikut dihasilkan selama proses analisis tetapi tidak dihapus secara otomatis setelah selesai. Anda mungkin ingin menghapus folder tambahan ini setelah analisis selesai.
    • .metadata
    • org.eclipse.osgi
    • org.eclipse.equinox.app
    • org.eclipse.core.runtime
    • org.eclipse.equinox.launcher
  • Bendera --overrideProviderSettings tidak didukung.
  • Bendera --json-output tidak didukung. Dalam rilis mendatang, ini menghasilkan output JSON untuk file output.yaml dan dependency.yaml .
  • Masalah aturan:
    • azure-system-config-01000, http-session-01000, java-removals-00150 aturan tidak dipicu.
    • FileSystem - Java IO aturan tidak dipicu.
    • Kesalahan unable to parse all the rules for ruleset saat menjalankan analisis. Kesalahan ini terjadi selama analisis ketika alat gagal mengurai semua aturan dalam set aturan.
  • Menganalisis file WAR di Windows menghasilkan kesalahan berikut: Failed to Move Decompiled File. Kesalahan terjadi ketika menganalisis file WAR di Windows, yang bertanggung jawab atas beberapa insiden redundan yang dibuat pada OS Windows.
  • Deskripsi yang hilang untuk beberapa aturan pada tab Insight . Beberapa aturan tag tidak memiliki deskripsi, yang mengarah ke judul kosong yang muncul di tab Insight laporan.
  • Kesalahan di saluran Kesalahan Pengamat di Windows: Windows system assumed buffer larger than it is, events have likely been missed. Pesan kesalahan ini muncul pada baris perintah selama pekerjaan yang berjalan lama di Windows.
  • Rilis ini memerlukan koneksi internet aktif untuk analisis dependensi.
  • Ctrl+C gagal menghentikan analisis yang sedang berlangsung. Untuk mengatasinya, hentikan proses secara manual dengan secara eksplisit membunuh proses.
  • Saat bendera diatur ke angka 0, bendera --context-lines tidak berfungsi seperti yang diharapkan. Bendera ini memungkinkan pengguna untuk membatasi berapa banyak kode sumber yang akan muncul pada laporan. Pengaturan ke nilai 0 mungkin tidak berfungsi seperti yang diharapkan.

Lisensi

Penilaian aplikasi dan kode Azure Migrate untuk Java adalah alat gratis berbasis sumber terbuka.