spouštěč příkazů Azure pro Java (Public Preview)

Spouštěč příkazů Azure pro Java (jaz) je jednoduchý nástroj, který zjednodušuje, jak Java vývojáři spouštějí své aplikace na Azure. Díky inteligentnímu použití možností Java virtuálních počítačů (JVM) přizpůsobených pro cloudová prostředí nástroj snižuje režii na konfiguraci a zlepšuje využití prostředků s vyšším potenciálem pro lepší výkon.

Tento nástroj je ideální pro vývojáře, kteří:

  • Potřebujete lepší výchozí hodnoty JVM, aniž byste se ponořili do průvodců laděním.
  • Vyvíjejte a nasazujte nativní cloudové mikroslužby pomocí architektur, jako jsou Spring Boot, Quarkus nebo Micronaut.
  • Upřednostněte pracovní postupy založené na kontejnerech, jako jsou Kubernetes a OpenShift.
  • Nasaďte Java úlohy na Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift nebo Azure Virtual Machines.

Klíčové funkce

  • 🛠 Automaticky optimalizuje příznaky JVM pro cloudově-nativní nasazení.
  • 🚀 Zážitek plug-and-play Stačí vložit do souboru Dockerfile nebo spustit skript a nahradit java příkaz příkazem jaz.
  • ☁️ Optimalizováno pro Azure prostředí.
  • 🔧 Přizpůsobitelné prostřednictvím proměnných prostředí. Existuje několik způsobů, jak bezpečně zavést změny konfigurace.

Podporovaná prostředí

Spouštěč příkazů Azure pro Java lze použít všude, kde je spouštěč Java dostupný v linuxových prostředích. Ověřil a otestoval se na následujících platformách Azure a CI/CD:

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

Důležité

Spouštěč příkazů Azure pro Java přečte informace cgroup v1 a v2, aby zjistil dostupné prostředky a odpovídajícím způsobem vylaďuje prostředí JVM. Sonduje soubory v rámci /sys/fs/cgroup pro zjišťování limitů paměti a dalších omezení prostředků.

Pokud se systém souborů cgroup nepřipojuje na /sys/fs/cgroup, nemusí spouštěč příkazů Azure pro Java správně zjišťovat limity kontejnerizace, což vede k nízkým výkonu nebo dokonce chybám nedostatku paměti. V žádném z podporovaných prostředí jsme neidentigurovali scénář, ve kterém se jedná o problém, ale toto omezení může být možné zaznamenat v přizpůsobených prostředích.

Další informace najdete v tématu "Proč záleží na mém přípojném bodu cgroup?".

Veřejná ukázka

Spouštěč příkazů Azure pro Java je nyní k dispozici ve verzi Public Preview! Přečtěte si oznámení verze Public Preview , kde najdete úvod k tomuto nástroji a jeho výhodám.

Jak to funguje

Spouštěč příkazů Azure pro Java se nachází mezi příkazem spuštění kontejneru nebo virtuálního počítače a prostředím JVM. Když nástroj spustíte, bude následující:

  1. Zjistí cloudové prostředí (například limity kontejnerů a dostupnou paměť).
  2. Analyzuje typ úlohy a vybere nejvhodnější parametry ladění JVM, například:
    • Velikost haldy.
    • Výběr a ladění garbage kolektoru
    • Nastavení protokolování a diagnostiky podle potřeby
  3. Spustí Java proces, předá mu příznaky ladění i všechny argumenty poskytnuté uživatelem.
  4. Neviditelně přenáší stdout, stderr, stdin a OS signály do a z procesu Java.
  5. Monitoruje proces Java a předává jeho ukončovací kód při ukončení.

Příklad využití

Spouštěč příkazů Azure pro Java je nahrazením příkazu java, který nevyžaduje žádné změny kódu. Jednoduše nahraďte ve svých spouštěcích skriptech java za jaz, například nahraďte java -jar foo.jar za jaz -jar foo.jar.

Místo ručního ladění možností prostředí JVM:

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

jaz použijte:

jaz -jar myapp.jar

Ve výchozím nastavení jaz uplatní své ladění, pokud nezjistí žádné uživatelem zadané příznaky ladění. Pokud Java argumenty příkazového řádku nebo proměnné prostředí Java možnosti už obsahují příznaky ladění poskytnuté uživatelem (například -X* nebo-XX*), jaz zachová tato nastavení a nepřidá vlastní nastavení. Chcete-li vynutit, aby jaz použil své parametry ladění (aniž by se odstranily uživatelem zadané příznaky ladění), nastavte JAZ_IGNORE_USER_TUNING=1.

Vaše aplikace může automaticky těžit z:

  • Výchozí hodnoty testované bitvou pro nativní cloudové úlohy a úlohy kontejnerů
  • Snížení plýtvání paměti v cloudu.
  • Lepší výkon při spuštění a zahřátí.

Instalace

Pokyny k instalaci nástroje Azure Command Launcher pro Java v Linuxu nebo postup instalace imagí kontejneru najdete na stránce Instalace.

Plán cesty

  • ⚙️ Konfigurační profily prostředí JVM
  • 📦 Podpora AppCDS
  • 🔄 Průběžné ladění
  • 📊 Telemetrie
  • 📦 Podpora pro Leyden

Protokol změn

Poznámky k verzi a protokol změn pro Azure Command Launcher pro Javu najdete na stránce verze Azure Command Launcheru pro Javu.

Telemetrie

Azure spouštěč příkazů pro Java shromažďuje data o využití a odesílá je do Microsoft, aby pomohl vylepšit naše produkty a služby. Další informace najdete v našem prohlášení o zásadách ochrany osobních údajů.