Azure Befehlsstartprogramm für Java (öffentliche Vorschau)

Das Azure-Befehlsstartprogramm für Java (jaz) ist ein einfaches Hilfsprogramm, das vereinfacht, wie Java Entwickler ihre Anwendungen auf Azure ausführen. Durch intelligentes Anwenden von Java Virtual Machine (JVM)-Optionen, die auf Cloudumgebungen zugeschnitten sind, reduziert das Tool den Konfigurationsaufwand und verbessert die Ressourcenauslastung sofort und bietet ein höheres Potenzial für eine bessere Leistung.

Dieses Tool eignet sich ideal für Entwickler, die:

  • Wollen Sie bessere JVM-Standardwerte, ohne tief in Tuning-Leitfäden einzusteigen.
  • Entwickeln und Bereitstellen von cloudeigenen Microservices mit Frameworks wie Spring Boot, Quarkus oder Micronaut.
  • Bevorzugen Sie containerbasierte Workflows wie Kubernetes und OpenShift.
  • Stellen Sie Java Workloads auf Azure Container Apps, Azure Kubernetes Service, Azure Red Hat OpenShift oder Azure Virtual Machines bereit.

Wichtigste Funktionen

  • 🛠 Optimiert JVM-Flags für cloud-native Bereitstellungen automatisch.
  • 🚀 Plug-and-Play-Erfahrung. Fügen Sie es einfach in Ihr Dockerfile oder Startskript ein, und ersetzen Sie den java Befehl durch jaz.
  • ☁️ Für Azure Umgebungen optimiert.
  • 🔧 Anpassbar über Umgebungsvariablen. Es gibt verschiedene Möglichkeiten zum sicheren Rollout von Konfigurationsänderungen.

Unterstützte Umgebungen

Das Azure-Befehlsstartprogramm für Java kann überall verwendet werden, wo das Java Launcher in Linux-basierten Umgebungen verfügbar ist. Sie wurde auf den folgenden Azure- und CI/CD-Plattformen überprüft und getestet:

  • 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

Von Bedeutung

Das Azure-Befehlsstartprogramm für Java liest cgroup v1- und v2-Informationen vor, um die verfügbaren Ressourcen zu ermitteln und den JVM entsprechend zu optimieren. Das Programm durchsucht die Dateien innerhalb /sys/fs/cgroup, um Speicherbeschränkungen und andere Ressourceneinschränkungen zu ermitteln.

Wenn das Cgroup-Dateisystem bei /sys/fs/cgroup nicht eingehängt ist, erkennt das Azure-Befehlsstartprogramm für Java möglicherweise keine Containerisierungsgrenzen, was zu schlechter Leistung oder sogar zu Speicherfehlern führen kann. Wir haben in keiner der unterstützten Umgebungen ein Szenario identifiziert, in dem dies ein Problem ist, aber es kann möglich sein, diese Einschränkung in angepassten Umgebungen zu finden.

Weitere Informationen finden Sie unter "Warum spielt mein Cgroup-Mount-Punkt eine Rolle?".

Öffentliche Vorschau

Das Azure-Befehlsstartprogramm für Java ist jetzt in der öffentlichen Vorschau verfügbar! Lesen Sie die Ankündigung der öffentlichen Vorschau für eine Einführung in dieses Tool und deren Vorteile.

Funktionsweise

Das Azure Befehlsstartprogramm für Java befindet sich zwischen Ihrem Container- oder virtuellen Computerstartbefehl und dem JVM. Wenn Sie das Tool starten, wird folgendes angezeigt:

  1. Erkennt die Cloudumgebung (z. B. Containergrenzwerte und verfügbaren Arbeitsspeicher).
  2. Analysiert den Workloadtyp und wählt optimale JVM-Optimierungsflags aus, z. B.:
    • Heap-Dimensionierung
    • Auswahl und Einstellung des Garbage Collectors
    • Protokollierung und Diagnoseeinstellungen nach Bedarf.
  3. Startet einen Java Prozess, übergibt ihn die Optimierungskennzeichnungen und alle vom Benutzer bereitgestellten Argumente.
  4. Leitet stdout, stderr, stdin und Betriebssystemsignale unsichtbar an und vom Java-Prozess weiter.
  5. Überwacht den Java Prozess und leitet den Ausgangscode weiter, wenn er beendet wird.

Anwendungsbeispiel

Das Azure-Befehlsstartprogramm für Java ist ein Drop-In-Ersatz für den Befehl java, der keine Codeänderungen erfordert. Ersetzen Sie einfach java durch jaz in Ihren Startskripten—zum Beispiel, ersetzen Sie java -jar foo.jar durch jaz -jar foo.jar.

Anstatt Ihre JVM-Optionen manuell zu optimieren:

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

Verwenden Sie jaz:

jaz -jar myapp.jar

jaz wendet standardmäßig seine Optimierung an, wenn keine vom Nutzer angegebenen Tuning-Flags erkannt werden. Wenn die Java-Befehlszeilenargumente oder Java-Options-Umgebungsvariablen bereits benutzerdefinierte Tuning-Flags (z. B. -X* oder -XX*) enthalten, behält jaz diese Einstellungen bei und fügt keine eigenen hinzu. Um jaz dazu zu zwingen, seine Optimierungseinstellungen anzuwenden (ohne vom Benutzer angegebene Tuning-Flags zu entfernen), setzen Sie JAZ_IGNORE_USER_TUNING=1.

Ihre Anwendung kann automatisch von folgendem Vorteil profitieren:

  • Geprüfte Standardeinstellungen für cloudnative und Container-Workloads
  • Verringerte Speicherverschwendung in der Cloud.
  • Bessere Start- und Aufwärmeleistung.

Installation

Anweisungen zum Installieren des Azure-Befehlsstartfelds für Java unter Linux oder zum Installieren von Containerimages finden Sie auf der Installationsseite.

Fahrplan

  • ⚙️ JVM-Konfigurationsprofile
  • 📦 AppCDS-Unterstützung
  • 🔄 Kontinuierliche Optimierung
  • 📊 Telemetrie
  • 📦 Leyden-Support

Änderungsprotokoll

Die Versionshinweise und das Änderungsprotokoll für den Azure Command Launcher für Java-Releases finden Sie auf der Seite Azure Command Launcher für Java-Releases.

Telemetrie

Azure Befehlsstartprogramm für Java sammelt Nutzungsdaten und sendet sie an Microsoft, um unsere Produkte und Dienste zu verbessern. Weitere Informationen finden Sie in unseren Datenschutzbestimmungen.