Aracılığıyla paylaş


Java için Azure Komut Başlatıcısı (Özel Önizleme)

Java için Azure Komut Başlatıcısı (jaz), Java geliştiricilerinin uygulamalarını Azure'da çalıştırma şeklini basitleştiren basit bir yardımcı programdır. Bulut ortamları için uyarlanmış Java Sanal Makinesi (JVM) seçeneklerini akıllı bir şekilde uygulayarak yapılandırma jaz ek yükünü azaltır ve daha iyi performans potansiyeliyle kaynak kullanımını kullanıma hazır hale getirir.

Bu araç, şu işlemleri yapan geliştiriciler için idealdir:

  • Ayarlama kılavuzlarına derinlemesine girmeden daha iyi JVM varsayılanları isteme
  • Spring Boot, Quarkus veya Micronaut gibi çerçevelerle bulutta yerel mikro hizmetler geliştirme ve dağıtma
  • Kubernetes ve OpenShift gibi kapsayıcı tabanlı iş akışlarını tercih etme
  • Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift veya Azure Sanal Makineler'de Java iş yüklerini dağıtma

Önemli Özellikler

  • 🛠 Bulut tabanlı dağıtımlar için JVM flamalarını otomatik olarak ayarlayan
  • 🚀 Tak çalıştır deneyimi. Dockerfile'ınıza veya başlatma betiğinize yalnızca bırakmanız ve java komutunu jaz ile değiştirmeniz yeterli.
  • ☁️ Azure ortamları için iyileştirilmiş. JVM yapılandırma önerilerini tercih jaz ediyorsanız, mevcut komut başlatıcınızdan tüm JVM ayarlama bayraklarını kaldırın
  • 🔧 Ortam değişkenleri aracılığıyla özelleştirilebilir

Özel Önizleme

Araç, Özel Önizlememize başvuran müşteriler tarafından indirilebilir. Özel Önizleme'ye katılma isteğinizi gönderebilirsiniz .

Nasıl çalışır?

jaz kapsayıcınız veya sanal makine başlatma komutunuz ile JVM arasında yer alır. jaz'yi başlattığınızda:

  1. Bulut ortamını algılar (örneğin, kapsayıcı sınırları ve kullanılabilir bellek)
  2. İş yükü türünü analiz eder ve en uygun JVM seçeneklerini seçer
  3. Aşağıdakiler gibi iyileştirilmiş bayraklarla Java işlemini başlatır:
    • Yığın boyutlandırma
    • Çöp toplayıcı seçimi ve ayarlama
    • İhtiyaç duyulduğunda günlüğe kaydetme ve tanılama ayarları

Örnek Kullanım

JVM seçeneklerinizi el ile ayarlamak yerine:

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

jaz kullanın:

jaz -jar myapp.jar

Uygulamanız aşağıdakilerden otomatik olarak yararlanabilir:

  • Bulut tabanlı ve kapsayıcı iş yükleri için savaşta denenmiş varsayılanlar
  • Bulutta daha az bellek israfı
  • Daha iyi başlatma ve ısınma performansı

Kurulum

Özel önizleme sürümü aşamasındayken yazılım, x64 ve arm64 ikili dosyaları içeren bir tar.gz dosyası olarak dağıtılır ve kapsayıcı imajlarına kolayca yüklenebilir.

FROM mcr.microsoft.com/openjdk/jdk:21-ubuntu

# Install jaz
COPY jaz-versionstring.tar.gz /tmp/
RUN tar -xzf /tmp/jaz-versionstring.tar.gz -C / && mv /jaz*/jaz /usr/bin

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

CMD ["jaz", "-jar", "application.jar"]

Desteklenen JVM sürümleri

jaz OpenJDK HotSpot JVM sürüm 8, 11, 17 ve 21'i destekler.

jaz, Microsoft'un OpenJDK Derlemesi ve Eclipse Temurin ile test edilmiştir.

Konfigürasyon

jaz komutu yalnızca ortam değişkenleri kullanılarak yapılandırılabilir, bunun için jaz herhangi bir bağımsız değişkenin java başlatıcıyla uyumlu olması gerekir.

Ortam Değişkeni Açıklama
JAZ_HELP Yardım iletisini yazdırmak için 1 olarak ayarlayın.
JAZ_PRINT_VERSION 1 jaz sürümünü stdout olarak yazdırmak ve 0 koduyla çıkmak için olarak ayarlayın.
JAZ_DRY_RUN 1 yazdırılacak Java komutunu göster ve 1 koduyla çıkın.
JAZ_BYPASS 1 değerine ayarlayarak jaz iyileştirme ayarlamalarını atlayın. Örneğin, konteynerleştirilmiş ortamlarda java dönüş yapmak kesintiye yol açabilir. Telemetri üzerinde hiçbir etkisi yoktur.
JAZ_IGNORE_USER_TUNING 1 Kullanıcı tarafından sağlanan ayarlama args'lerini kırpmak için olarak ayarlayın. Jaz'ın daha fazla durumda JVM'yi ayarlamasına izin verir.
JAZ_EXIT_WITHOUT_FLUSH 1 Çıkışta temizleme telemetrisini atlamak için olarak ayarlayın. Verilerin aktarımı sırasında ortaya çıkabilecek gecikmeleri (30 saniyeye kadar) önler. Yine de telemetri gönderebilir.
JAZ_SKIP_PRINT_FLAGS_FINAL 1'ı, -XX:+PrintFlagsFinal'i atlamak için ayarlayın. Stdout taraması/arabelleğe alma işleminden kaçınır, bu da Jaz'ın son JVM bayraklarını belirlemesi için yaptığı bir işlemdir.
JAZ_ALWAYS_FILTER_PRINT_FLAGS_FINAL_STDOUT 1 olarak ayarlayın ki PrintFlagsFinal her zaman stdout'tan filtrelensin. Normalde jaz yalnızca bayrağın geçirildiğini algılarsa filtrelenir. Eğer JAZ_SKIP_PRINT_FLAGS_FINAL ayarlandıysa yoksayılır.

Yol Haritası

  • 📦 Linux paketleri (DEB/RPM) ve kapsayıcı görüntüleri
  • ⚙️ JVM Yapılandırma Profilleri
  • 📦 AppCDS Desteği
  • 📦 Leyden Desteği
  • 🔄 Sürekli Ayarlama
  • 📊 Prometheus aracılığıyla paylaşılan telemetri

Telemetri

Java için Azure Komut Başlatıcısı, ürünlerimizin ve hizmetlerimizin geliştirilmesine yardımcı olmak için kullanım verilerini toplar ve Microsoft'a gönderir. Daha fazla bilgi edinmek için gizlilik bildirimimizi okuyun.