Bagikan melalui


Azure Command Launcher untuk Java (pratinjau publik)

Peluncur Perintah Azure untuk Java (jaz) adalah utilitas ringan yang menyederhanakan cara pengembang Java menjalankan aplikasi mereka di Azure. Dengan menerapkan opsi Java Virtual Machine (JVM) secara cerdas yang disesuaikan untuk lingkungan cloud, alat ini mengurangi overhead konfigurasi dan meningkatkan pemanfaatan sumber daya di luar kotak, dengan potensi performa yang lebih tinggi.

Alat ini sangat ideal untuk pengembang yang:

  • Ingin default JVM yang lebih baik tanpa menyelam jauh ke dalam panduan penyetelan.
  • Mengembangkan dan menyebarkan layanan mikro asli cloud dengan kerangka kerja seperti Spring Boot, Quarkus, atau Micronaut.
  • Lebih suka alur kerja berbasis kontainer seperti Kubernetes dan OpenShift.
  • Sebarkan beban kerja Java di Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift, atau Azure Virtual Machines.

Fitur utama

  • ๐Ÿ›  Secara otomatis mengatur parameter JVM untuk penyebaran cloud-native.
  • ๐Ÿš€ Pengalaman penggunaan yang langsung siap pakai. Masukkan saja ke Dockerfile Anda atau jalankan skrip, ganti perintah java dengan jaz.
  • โ˜๏ธ Dioptimalkan untuk lingkungan Azure.
  • ๐Ÿ”ง Dapat disesuaikan melalui variabel lingkungan. Ada beberapa cara untuk meluncurkan perubahan konfigurasi dengan aman.

Lingkungan yang didukung

Peluncur Perintah Azure untuk Java dapat digunakan di mana pun peluncur Java tersedia di lingkungan berbasis Linux. Ini telah divalidasi dan diuji di seluruh platform Azure dan CI/CD berikut:

  • Azure Kubernetes Service (AKS)
  • Azure Container Apps
  • Azure App Service
  • Azure Functions
  • Azure Red Hat OpenShift (ARO)
  • Azure Virtual Machines
  • Azure DevOps
  • GitHub Codespaces
  • Tindakan GitHub

Pratinjau umum

Azure Command Launcher untuk Java kini tersedia dalam versi pratinjau publik! Baca pengumuman pratinjau publik untuk pengenalan alat ini dan manfaatnya.

Cara kerjanya

Peluncur Perintah Azure untuk Java berada di antara perintah startup kontainer atau komputer virtual Anda dan JVM. Saat Anda meluncurkan alat ini, alat tersebut:

  1. Mendeteksi lingkungan cloud (misalnya, batas kontainer dan memori yang tersedia).
  2. Menganalisis jenis beban kerja dan memilih bendera penyetelan JVM yang paling sesuai, seperti:
    • Ukuran timbunan.
    • Pemilihan dan penyetelan pengumpul sampah.
    • Pengaturan pengelogan dan diagnostik sesuai kebutuhan.
  3. Memulai proses Java dengan meneruskannya parameter penyetelan dan argumen yang disediakan oleh pengguna.
  4. Secara tak terlihat menyampaikan sinyal stdout, stderr, stdin, dan OS ke dan dari proses Java.
  5. Memantau proses Java dan menyampaikan kode keluarnya saat dihentikan.

Contoh penggunaan

Peluncur Perintah Azure untuk Java adalah pengganti drop-in untuk java perintah, tidak memerlukan perubahan kode. Cukup ganti java dengan jaz dalam skrip peluncuran Andaโ€”misalnya, ganti java -jar foo.jar dengan jaz -jar foo.jar.

Alih-alih menyetel opsi JVM Anda secara manual:

JAVA_OPTS="-XX:... several JVM tuning flags"
java $JAVA_OPTS -jar myapp.jar

Gunakan jaz:

jaz -jar myapp.jar

Aplikasi Anda mungkin secara otomatis mendapat manfaat dari:

  • Default yang teruji untuk beban kerja natif cloud dan container.
  • Mengurangi pemborosan memori di cloud.
  • Performa startup dan pemanasan yang lebih baik.

Instalasi

Peluncur Perintah Azure untuk Java tersedia untuk Linux x64 dan arm64. Metode penginstalan yang didukung adalah:

Gambar kontainer

Alat ini disertakan dalam gambar kontainer untuk Microsoft Build of OpenJDK. Tidak ada lagi penyiapan yang diperlukan.

Misalnya, Dockerfile ini menggunakan jaz untuk menjalankan aplikasi Java dari jar file:

# Use any Microsoft Build of OpenJDK base image
FROM mcr.microsoft.com/openjdk/jdk:25-ubuntu

# Add your application.jar
COPY application.jar /application.jar

# Use jaz to launch your Java application
CMD ["jaz", "-jar", "application.jar"]

Menginstal di Azure Linux

jaz Instal paket dengan perintah berikut:

sudo tdnf install jaz

Instal dari Repositori Perangkat Lunak Linux untuk Produk Microsoft

Jika Anda telah menyiapkan Repositori Perangkat Lunak Linux untuk Produk Microsoft, jalankan perintah manajer paket yang sesuai untuk distribusi Anda untuk menginstal jaz paket.

Jika tidak, temukan instruksi yang cocok dengan distribusi Linux Anda dalam daftar berikut. Ikuti instruksi, tetapi instal jaz alih-alih msopenjdk-25 paket.

Versi JVM yang didukung

Peluncur Perintah Azure untuk Java mendukung build berbasis OpenJDK, dan telah diuji dengan:

Penting

Peluncur Perintah Azure untuk Java memerlukan penginstalan JDK lengkap. Ini tidak sepenuhnya diuji dengan penginstalan JRE saja atau runtime jlink kustom. Untuk informasi selengkapnya, lihat "Mengapa tidak berfungsi dengan runtime JRE atau jlink?".

Konfigurasi

Perintah jaz tidak menggunakan argumen baris perintah untuk konfigurasinya sendiri. Sebaliknya, secara default, ia meneruskan semua argumen langsung ke java perintah . Untuk memastikan bahwa jaz konfigurasi tidak mengganggu argumen aplikasi Anda, jaz hanya menerima konfigurasi melalui variabel lingkungan.

Perintah jaz dapat dikonfigurasi menggunakan variabel lingkungan ini:

Variabel lingkungan Deskripsi
JAZ_HELP Atur ke 1 untuk mencetak pesan bantuan dan keluar dengan kode 0.
JAZ_PRINT_VERSION Atur ke 1 untuk mencetak versi jaz di stdout dan keluar dengan kode 0.
JAZ_DRY_RUN Atur ke 1 untuk mencetak java perintah yang akan dijalankan dan keluar dengan kode 1.
JAZ_BYPASS Atur ke 1 untuk melewati penyesuaian jaz pengoptimalan. Tidak ada efek pada telemetri.
JAZ_IGNORE_USER_TUNING Atur ke 1 untuk mengabaikan semua parameter penyetelan yang diberikan pengguna dan terapkan jaz penyetelan sebagai penggantinya. Jika tidak, jaz hanya akan menyetel JVM jika tidak mendeteksi bendera penyetelan yang disediakan pengguna. Lihat "Apa yang terjadi jika saya sudah mengatur beberapa opsi JVM di lingkungan saya?" untuk informasi selengkapnya tentang bagaimana jaz berperilaku dengan dan tanpa mengaktifkan pengaturan ini.
JAZ_EXIT_WITHOUT_FLUSH Atur ke 1 untuk melewati penghapusan data telemetri saat keluar. Ini menghindari potensi penundaan (hingga 30 detik) jaz mungkin muncul saat membersihkan data, namun jaz mungkin masih mengirim telemetri.

Menggunakan variabel lingkungan daripada argumen baris perintah juga memudahkan untuk dikonfigurasi jaz dalam beberapa kasus. Saat menyebarkan aplikasi dalam kontainer, terkadang lebih mudah untuk mengatur variabel lingkungan daripada memodifikasi skrip peluncuran, dan bereksperimen dengan JAZ_IGNORE_USER_TUNING dan JAZ_BYPASS mungkin berguna saat mengevaluasi jaz.

Peta strategi

  • โš™๏ธ Profil konfigurasi JVM
  • ๐Ÿ“ฆ Dukungan AppCDS
  • ๐Ÿ”„ Penyetelan berkelanjutan
  • ๐Ÿ“Š Telemetri
  • ๐Ÿ“ฆ Dukungan Leyden

Changelog

Pratinjau publik 1: 0.0.0-preview+20251118.1

  • Menerapkan paket RPM dan DEB.
  • Meningkatkan penyesuaian pengelolaan pelepasan komitmen pengumpul sampah.
  • Berhenti memancarkan output diagnostik yang tidak jelas ketika program Java keluar dengan kode bukan nol.
  • Meningkatkan penerusan sinyal OS ke proses Java, misalnya, SIGTERM dan SIGINT.
    • Menghentikan kontainer yang menjalankan aplikasi Java sekarang memberi waktu aplikasi untuk dimatikan dengan lancar.
  • Hapus penggunaan PrintFlagsFinal, meningkatkan kompatibilitas dengan aplikasi Java tertentu.
    • Perbaiki pemanggilan System.console() yang melempar pengecualian.
    • Memperbaiki buffering aliran stdout: jaz tidak lagi menunda penyampaian output hingga melihat karakter baris baru.
  • Perbaikan bug lainnya dan peningkatan ketahanan internal.

Pratinjau Pribadi 2

  • Perbaikan bug.
  • Kompatibilitas distro Linux yang diperluas dengan mengurangi persyaratan glibc.
  • jaz sekarang mendeteksi apakah ada penyetelan JVM manual dan dalam kasus seperti itu, itu tidak menerapkan penyesuaiannya sendiri.
  • JAZ_IGNORE_USER_TUNING=1 mengabaikan penyetelan JVM manual jika ada, dan menerapkan penyesuaian penyetelan Jaz sendiri sebagai gantinya.
  • Output PrintFlagsFinal muncul secara tetap ketika tidak diminta telah diperbaiki jika menggunakan jaz dengan OpenJDK HotSpot JVM 8.

Pratinjau pribadi 1

  • Rilis awal Peluncur Perintah Azure untuk Java.

Telemetri

Peluncur Perintah Azure untuk Java mengumpulkan data penggunaan dan mengirimkannya ke Microsoft untuk membantu meningkatkan produk dan layanan kami. Untuk mempelajari lebih lanjut, baca pernyataan privasi kami.