Megosztás:


Azure Command Launcher for Java (nyilvános előzetes verzió)

Az Azure Command Launcher for Java (jaz) egy egyszerűsített segédprogram, amely leegyszerűsíti, hogy a Java-fejlesztők hogyan futtatják az alkalmazásaikat az Azure-ban. A felhőkörnyezetekre szabott Java Virtuális gép (JVM) lehetőségek intelligens alkalmazásával az eszköz csökkenti a konfigurációs többletterhelést, és javítja az erőforrások kihasználtságát, és nagyobb potenciállal rendelkezik a jobb teljesítmény érdekében.

Ez az eszköz ideális azoknak a fejlesztőknek, akik:

  • Jobb JVM-alapértelmezett beállításokat szeretne, anélkül, hogy mélyen belemerül a hangolási útmutatókba.
  • Natív felhőbeli mikroszolgáltatások fejlesztése és üzembe helyezése olyan keretrendszerekkel, mint a Spring Boot, a Quarkus vagy a Micronaut.
  • A tárolóalapú munkafolyamatok, például a Kubernetes és az OpenShift előnyben részesítése.
  • Java-számítási feladatok üzembe helyezése az Azure Container Appsben, az Azure Kubernetes Service-ben, az Azure Red Hat OpenShiftben vagy az Azure-beli virtuális gépeken.

Legfontosabb funkciók

  • 🛠 Automatikusan hangolja a JVM-jelzőket a felhőnatív telepítésekhez.
  • 🚀 Csatlakoztasd és használd élmény. Egyszerűen helyezze be a Dockerfile-ba vagy indító szkriptbe, és cserélje ki a java parancsot a jaz parancsra.
  • ☁️ Azure-környezetekhez optimalizálva.
  • 🔧 Környezeti változókkal testreszabható. A konfigurációs módosítások biztonságos bevezetésének számos módja van.

Támogatott környezetek

Az Azure Command Launcher for Java bárhol használható, ahol a Java-indító elérhető Linux-alapú környezetekben. Az alábbi Azure- és CI/CD-platformokon lett érvényesítve és tesztelve:

  • 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

Nyilvános előzetes verzió

Az Azure Command Launcher for Java nyilvános előzetes verzióban érhető el! Olvassa el a nyilvános előzetes verzióra vonatkozó közleményt , amely bemutatja az eszközt és annak előnyeit.

Hogyan működik?

Az Azure Command Launcher for Java a tároló vagy a virtuális gép indítási parancsa és a JVM között helyezkedik el. Az eszköz indításakor a következő történik:

  1. Észleli a felhőkörnyezetet (például tárolókorlátokat és rendelkezésre álló memóriát).
  2. ** Elemzi a terhelés típusát, és kiválasztja azokat a JVM-hangolási jelzőket, amelyek a legjobban illeszkednek, például:
    • Halomméretezés.
    • Szemétgyűjtő kiválasztása és finomhangolása.
    • Szükség szerint naplózási és diagnosztikai beállítások.
  3. Elindít egy Java-folyamatot, átadva neki a hangolási jelzőket és a felhasználó által megadott argumentumokat.
  4. Láthatatlanul továbbítja az stdout, stderr, stdin és os jeleket a Java-folyamatba és onnan.
  5. Figyeli a Java-folyamatot, és továbbítja a kilépési kódot, amikor leáll.

Példa használatra

Az Azure Command Launcher for Java a java parancs helyettesítője, amely nem igényel kódmódosítást. Egyszerűen cserélje le a java-t jaz-re az indítási szkriptekben – például cserélje le a java -jar foo.jar-t jaz -jar foo.jar-ra.

A JVM-beállítások manuális finomhangolása helyett:

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

jazhasználata:

jaz -jar myapp.jar

Az alkalmazás automatikusan kihasználhatja a következő előnyöket:

  • Felhő-natív és konténer munkaterhelésekhez bevált alapértelmezések.
  • Csökkent memóriapazarlás a felhőben.
  • Jobb indítási és bemelegítési teljesítmény.

Telepítés

Az Azure Command Launcher for Java x64 és arm64 Linux rendszeren is elérhető. A támogatott telepítési módszerek a következők:

Konténerképek

Az eszköz szerepel az OpenJDK Microsoft Buildjének tárolórendszerképeiben. Nincs szükség további beállításra.

Például a következő Dockerfile egy Java alkalmazás futtatására használható egy jar fájlból jaz segítségével:

# 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"]

Telepítés Az Azure Linuxon

Virtuális gépekhez és más Azure Linux-környezetekhez a csomagkezelővel telepítheti az tdnf eszközt. Telepítse a jaz csomagot a következő paranccsal:

sudo tdnf install jaz

Egyéb Linux-disztribúciók

Ha már beállította a Microsoft Products linuxos szoftveradattárát, futtassa a megfelelő csomagkezelő parancsot a disztribúcióhoz a jaz csomag telepítéséhez.

Például Ubuntu- vagy Debian-alapú disztribúciókon futtassa a következőt:

sudo apt-get install jaz

Ha nincs beállítva a Microsoft-termékek linuxos szoftvertárháza, kövesse a Linux-disztribúcióra vonatkozó utasításokat.

Az Ubuntu-ra való telepítéshez nyisson meg egy terminált, és futtassa a következő parancsokat:

wget "https://packages.microsoft.com/config/ubuntu/$(. /etc/os-release; echo $VERSION_ID)/packages-microsoft-prod.deb" -O packages-microsoft-prod.deb && \
  sudo dpkg -i packages-microsoft-prod.deb

Az adattár hozzáadása után telepítse jaz, futtassa a következő parancsokat:

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install jaz

Támogatott JVM-verziók

A Java-hoz készült Azure Command Launcher használatához OpenJDK-alapú JDK-telepítésre (8-es vagy újabb verzió) van szükség a rendszeren. Tesztelték a következőkkel:

Fontos

A Java-hoz készült Azure Command Launcher teljes JDK-telepítést igényel. Nincs teljesen tesztelve JRE-telepítésekkel vagy egyéni jlink-futtatókörnyezetekkel. További információ: "Miért nem működik JRE- vagy jlink-futtatókörnyezetekkel?".

Konfiguráció

A jaz parancs nem használ parancssori argumentumokat a saját konfigurációja számára. Ehelyett alapértelmezés szerint az összes argumentumot közvetlenül a java parancsnak továbbítja. Annak érdekében, hogy a jaz konfiguráció ne zavarja az alkalmazás argumentumait, jaz csak a környezeti változókon keresztül fogadja el a konfigurációt.

A jaz parancs az alábbi környezeti változók használatával konfigurálható:

Környezeti változó Leírás
JAZ_HELP Beállíthatja, hogy 1 kinyomtatjon egy súgóüzenetet, és kóddal 0lépjen ki.
JAZ_PRINT_VERSION Állítsa be 1 értékét úgy, hogy a verziót jaz az stdout-ra nyomtassa, és lépjen ki a 0 kóddal.
JAZ_DRY_RUN Állítsa be a 1 értéket a java parancs végrehajtása nyomtatásához, majd lépjen ki a 1 kóddal.
JAZ_BYPASS Állítsa 1 értékét az jaz optimalizációs módosítások megkerülésére. Nincs hatása a telemetriára.
JAZ_IGNORE_USER_TUNING Állítsa be úgy, hogy 1 figyelmen kívül hagyja az összes felhasználó által megadott hangolási jelzőt, és alkalmazza a jaz hangolást helyette. Ellenkező esetben a JVM-et csak akkor hangolja, ha nem észlel felhasználó által megadott jaz zászlókat. További információkért arról, hogy a miként működik a jaz beállítás engedélyezésével és anélkül, lásd.
JAZ_EXIT_WITHOUT_FLUSH Állítsa be, hogy 1 hagyja ki a kiürítési telemetriát a kilépéskor. A jaz elkerülhetők azok az esetleges késések (akár 30 másodpercesek is), amelyek az adatok kiürítésekor jelentkezhetnek, de a jaz továbbra is küldhet telemetriát.

A környezeti változók parancssori argumentumok helyett való használata bizonyos esetekben megkönnyíti a konfigurálást jaz is. Tárolóalapú alkalmazások üzembe helyezésekor néha egyszerűbb a környezeti változók beállítása, mint az indítási szkriptek módosítása, és a JAZ_IGNORE_USER_TUNING illetve JAZ_BYPASS elemekkel való kísérletezés hasznos lehet a jaz értékelésekor.

Ütemterv

  • ⚙️ JVM-konfigurációs profilok
  • 📦 AppCDS-támogatás
  • 🔄 Folyamatos hangolás
  • 📊 Telemetria
  • 📦 Leyden-támogatás

Változásnapló

1. nyilvános előzetes verzió: 0.0.0-preview+20251118.1

  • RPM- és DEB-csomagok implementálása.
  • A szemétgyűjtő feloldóbeállításainak javítása.
  • Ne bocsátson ki nem egyértelmű diagnosztikai kimenetet, ha a Java-program nemzero kóddal lép ki.
  • Az operációs rendszer jeltovábbításának javítása Java-folyamatba, például SIGTERM és SIGINT.
    • Egy Java-alkalmazást futtató tároló leállítása időt ad az alkalmazásnak a kecses leállításra.
  • Távolítsa el a használatát PrintFlagsFinal, és javítsa az egyes Java-alkalmazásokkal való kompatibilitást.
    • A kivételeket okozó System.console() hívások javítása.
    • Az stdout stream pufferelésének javítása: jaz a továbbiakban nem késlelteti a kimenet továbbítását, amíg nem észlel egy új sor karaktert.
  • Egyéb hibajavítások és a belső rugalmasság javítása.

Privát előzetes verzió 2

  • Hibajavítások.
  • Bővített Linux disztribúciós kompatibilitás a glibc-követelmények csökkentésével.
  • jaz Most észleli, hogy van-e manuális JVM-hangolás, és ebben az esetben nem alkalmazza a saját módosításait.
  • JAZ_IGNORE_USER_TUNING=1 figyelmen kívül hagyja a manuális JVM-finomhangolást, ha van ilyen, és ehelyett alkalmazza a Jaz saját finomhangolási módosításait.
  • Az PrintFlagsFinal OpenJDK HotSpot JVM 8 használatakor jaz rögzített kimenet jelenik meg (ha nincs szükség rá).

Privát előzetes verzió 1

  • Az Azure Command Launcher for Java kezdeti kiadása.

Telemetria

A Java-hoz készült Azure Command Launcher összegyűjti a használati adatokat, és elküldi a Microsoftnak a termékeink és szolgáltatásaink javítása érdekében. További információért olvassa el adatvédelmi nyilatkozatunkat.