средство запуска команд Azure для Java (общедоступная предварительная версия)

Средство запуска команд Azure для Java (jaz) — это упрощенная программа, которая упрощает запуск приложений Java разработчиками Azure. Благодаря интеллектуальному применению параметров Java виртуальных машин (JVM), адаптированных для облачных сред, средство уменьшает затраты на конфигурацию и улучшает использование ресурсов из коробки с более высоким потенциалом для повышения производительности.

Это средство идеально подходит для разработчиков, которые:

  • Хотите улучшить настройки JVM по умолчанию без необходимости глубокого изучения руководств по настройке.
  • Разработка и развертывание облачных собственных микрослужб с помощью платформ, таких как Spring Boot, Quarkus или Micronaut.
  • Предпочитайте рабочие процессы на основе контейнеров, такие как Kubernetes и OpenShift.
  • Развертывание рабочих нагрузок Java на Контейнеры приложений Azure, Служба Azure Kubernetes, Azure Red Hat OpenShift или Виртуальные машины Azure.

Ключевые особенности

  • 🛠 Автоматически настраивает флаги JVM для облачных развертываний.
  • 🚀 Интерфейс plug-and-play. Просто добавьте внутрь вашего Dockerfile или скрипта запуска, заменив команду java на jaz.
  • ☁️ Оптимизировано для сред Azure.
  • 🔧 Настраиваемая с помощью переменных среды. Существует несколько способов безопасного развертывания изменений конфигурации.

Поддерживаемые среды

Средство запуска команд Azure для Java можно использовать везде, где доступен средство запуска Java в средах Linux. Она была проверена и протестирована на следующих платформах Azure и CI/CD:

  • Служба Azure Kubernetes (AKS)
  • Контейнеры приложений Azure
  • Служба приложений Azure
  • Функции Azure
  • Azure Red Hat OpenShift (ARO)
  • Виртуальные машины Azure
  • Azure DevOps
  • GitHub Codespaces
  • GitHub Actions

Это важно

Средство запуска команд Azure для Java считывает сведения cgroup версии 1 и версии 2, чтобы определить доступные ресурсы и настроить JVM соответствующим образом. Он проверяет файлы в пределах /sys/fs/cgroup , чтобы обнаружить ограничения памяти и другие ограничения ресурсов.

Если система cgroup не смонтирована в /sys/fs/cgroup, средство запуска команд Azure для Java может неправильно обнаруживать ограничения контейнеризации, что приводит к плохой производительности или даже к ошибкам, связанным с недостатком памяти. Мы не выявили сценариев ни в одной из поддерживаемых сред, где это является проблемой, но возможно, что это ограничение может возникнуть в настраиваемых средах.

Дополнительные сведения см. в статье "Почему важна точка монтирования cgroup?".

Общедоступная предварительная версия

Средство запуска команд Azure для Java теперь доступно в общедоступной предварительной версии. Ознакомьтесь с объявлением общедоступной предварительной версии , чтобы ознакомиться с этим инструментом и его преимуществами.

Принцип работы

Средство запуска команд Azure для Java находится между командой запуска контейнера или виртуальной машины и JVM. При запуске средства он:

  1. Обнаруживает облачную среду (например, ограничения контейнеров и доступную память).
  2. Анализирует тип рабочей нагрузки и выбирает флаги настройки JVM, например:
    • Размер кучи.
    • Выбор и настройка сборщика мусора.
    • Параметры ведения журнала и диагностики по мере необходимости.
  3. Запускает процесс Java, передавая флаги настройки и любые предоставленные пользователем аргументы.
  4. Незаметно передает stdout, stderr, stdin и сигналы операционной системы в и из процесса Java.
  5. Отслеживает процесс Java и передает код выхода при завершении.

Пример использования

Средство запуска команд Azure для Java является заменой команды java, не требующей изменений кода. Просто замените java на jaz в скриптах запуска — например, замените java -jar foo.jar на jaz -jar foo.jar.

Вместо настройки параметров JVM вручную:

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

Используйте jaz в следующих случаях:

jaz -jar myapp.jar

По умолчанию jaz применяет свои параметры настройки, если не обнаруживает флаги настройки, заданные пользователем. Если аргументы командной строки Java или переменные среды параметра Java уже включают флаги настройки, предоставляемые пользователем (например-X*, или-XX*), jaz сохраняет эти параметры и не добавляет собственные. Чтобы принудительно применить jaz свои параметры настройки (без удаления пользовательских флагов настройки), задайте JAZ_IGNORE_USER_TUNING=1.

Ваше приложение может автоматически воспользоваться следующими преимуществами:

  • Боевые, проверенные временем настройки по умолчанию для облачно-нативных рабочих нагрузок и контейнеров.
  • Сокращение объемов памяти в облаке.
  • Улучшена производительность запуска и прогрева.

Установка

Инструкции по установке средства запуска команд Azure для Java в Linux или установке образов контейнеров см. на странице установки.

Дорожная карта

  • ⚙️ Профили конфигурации JVM
  • 📦 Поддержка AppCDS
  • 🔄 Непрерывная настройка
  • 📊 Телеметрия
  • 📦 Поддержка Leyden

Журнал изменений

Примечания к выпуску и журнал изменений для Azure Command Launcher for Java можно найти на странице выпусков Azure Command Launcher for Java.

Телеметрия

средство запуска команд Azure для Java собирает данные об использовании и отправляет его в Microsoft, чтобы улучшить наши продукты и службы. Дополнительные сведения см. в нашем заявлении о конфиденциальности.