Launcher di comandi Azure per Java (anteprima pubblica)

L'utilità di avvio dei comandi Azure per Java (jaz) è un'utilità leggera che semplifica il modo in cui gli sviluppatori di Java eseguono le applicazioni in Azure. Applicando in modo intelligente Java opzioni di macchina virtuale (JVM) personalizzate per gli ambienti cloud, lo strumento riduce il sovraccarico di configurazione e migliora l'utilizzo delle risorse predefinito, con un potenziale maggiore per migliorare le prestazioni.

Questo strumento è ideale per gli sviluppatori che:

  • Si vogliono impostazioni predefinite JVM migliori senza approfondire le guide di ottimizzazione.
  • Sviluppare e distribuire microservizi nativi del cloud con framework come Spring Boot, Quarkus o Micronaut.
  • Preferisce flussi di lavoro basati su contenitori, ad esempio Kubernetes e OpenShift.
  • Distribuire carichi di lavoro di Java in App contenitore di Azure, servizio Azure Kubernetes, Azure Red Hat OpenShift o Macchine virtuali di Azure.

Funzionalità principali

  • 🛠 Ottimizza automaticamente i flag JVM per le distribuzioni native del cloud.
  • 🚀 Esperienza plug-and-play. È sufficiente inserire nel Dockerfile o nello script di avvio, sostituendo il comando java con jaz.
  • ☁️ Ottimizzato per gli ambienti Azure.
  • 🔧 Personalizzabile tramite variabili di ambiente. Esistono diversi modi per implementare in modo sicuro le modifiche alla configurazione.

Ambienti supportati

L'utilità di avvio dei comandi Azure per Java può essere usata ovunque sia disponibile l'utilità di avvio Java in ambienti basati su Linux. È stata convalidata e testata nelle piattaforme CI/CD e Azure seguenti:

  • Il servizio Azure Kubernetes (AKS)
  • App contenitore di Azure
  • Servizio app di Azure
  • Funzioni di Azure
  • Azure Red Hat OpenShift (ARO)
  • Macchine virtuali di Azure
  • Azure DevOps
  • GitHub Codespaces
  • GitHub Actions

Importante

L'utilità di avvio dei comandi Azure per Java legge le informazioni cgroup v1 e v2 per determinare le risorse disponibili e ottimizzare di conseguenza la JVM. Analizza i file all'interno di /sys/fs/cgroup per individuare i limiti di memoria e altri vincoli di risorse.

Se il file system cgroup non è montato in /sys/fs/cgroup, l'utilità di avvio dei comandi Azure per Java potrebbe non rilevare correttamente i limiti di containerizzazione, causando prestazioni scarse o persino errori di memoria insufficiente. Non è stato identificato uno scenario in uno degli ambienti supportati in cui si tratta di un problema, ma potrebbe essere possibile riscontrare questa limitazione negli ambienti personalizzati.

Per altre informazioni, vedere "Perché il punto di montaggio cgroup è importante?".

Anteprima pubblica

L'utilità di avvio comandi di Azure per Java è ora disponibile in anteprima pubblica. Leggere l'annuncio dell'anteprima pubblica per un'introduzione a questo strumento e i relativi vantaggi.

Come funziona

L'utilità di avvio dei comandi Azure per Java si trova tra il comando di avvio del contenitore o della macchina virtuale e la JVM. Quando si avvia lo strumento, è possibile:

  1. Rileva l'ambiente cloud, ad esempio i limiti dei contenitori e la memoria disponibile.
  2. Analizza il tipo di carico di lavoro e seleziona i flag di ottimizzazione JVM più adatti, ad esempio:
    • Ridimensionamento dell'heap.
    • Selezione e ottimizzazione del Garbage Collector.
    • Impostazioni di registrazione e diagnostica in base alle esigenze.
  3. Avvia un processo Java, passando i flag di ottimizzazione e tutti gli argomenti forniti dall'utente.
  4. Inoltra invisibilmente stdout, stderr, stdin e i segnali OS da e verso il processo Java.
  5. Monitora il processo di Java e inoltra il codice di uscita quando termina.

Esempio di utilizzo

L'utilità di avvio comandi Azure per Java è intercambiabile con il comando java, senza richiedere alcuna modifica del codice. Sostituire semplicemente java con jaz nei tuoi script di avvio, ad esempio sostituire java -jar foo.jar con jaz -jar foo.jar.

Anziché ottimizzare manualmente le opzioni di JVM:

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

Usare jaz:

jaz -jar myapp.jar

Per impostazione predefinita, jaz applica l'ottimizzazione quando non rileva alcun flag di ottimizzazione fornito dall'utente. Se gli argomenti della riga di comando Java o le variabili di ambiente dell'opzione Java includono già flag di ottimizzazione forniti dall'utente (ad esempio -X* o -XX*), jaz mantiene tali impostazioni e non aggiunge le proprie impostazioni. Per forzare jaz ad applicare la propria ottimizzazione (senza rimuovere i flag di ottimizzazione specificati dall'utente), impostare JAZ_IGNORE_USER_TUNING=1.

L'applicazione può trarre vantaggio automaticamente da:

  • Impostazioni predefinite collaudate per carichi di lavoro cloud-native e containerizzati.
  • Riduzione degli sprechi di memoria nel cloud.
  • Migliori prestazioni di avvio e riscaldamento.

Installazione

Per istruzioni su come installare l'utilità di avvio dei comandi Azure per Java in Linux o su come installare immagini del contenitore, vedere la pagina Installazione.

Cartina stradale

  • ⚙️ Profili di configurazione JVM
  • 📦 Supporto di AppCDS
  • 🔄 Regolazione continua
  • 📊 Telemetria
  • 📦 Supporto di Leyden

Registro modifiche

È possibile trovare le note di rilascio e il registro delle modifiche di Azure Command Launcher per Java nella pagina Versioni di Azure Command Launcher per Java.

Telemetria

Azure Command Launcher per Java raccoglie i dati di utilizzo e li invia a Microsoft per migliorare i prodotti e i servizi. Per altre informazioni, leggere l'informativa sulla privacy.