Сравнение решений

Завершено

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

Приложения контейнеров Azure

Приложения контейнеров Azure позволяют сосредоточиться на создании контейнерных приложений Java, будь то монолитные или микрослужбы, без необходимости управлять инфраструктурой. Вы можете развертывать JAR, WAR или даже исходный код, а платформа автоматически оптимизирует память и масштабирует приложения по требованию. Он также интегрирует расширенные диагностические функции для устранения неполадок JVM, обеспечивая эффективную производительность для приложений Java.

Кроме того, приложения контейнеров Azure поддерживают управляемые компоненты Spring, такие как Реестр служб Spring Cloud и сервер конфигурации Spring Cloud, обеспечивая простую интеграцию Spring. В рамках экосистемы Azure она может обрабатывать корпоративные рабочие нагрузки с помощью эффективного масштабирования и сложного управления памятью, что делает его идеальным для традиционных и современных архитектур приложений.

Служба приложений Azure

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

Служба приложений может запускать любой исполняемый JAR-файл, что делает его альтернативой приложениям контейнеров Azure для выполнения простых монолитных приложений Java.

Он также может развернуть любое приложение WAR на популярных серверах приложений, таких как Apache Tomcat или Red Hat JBoss. Эта возможность делает его лучшим решением для запуска приложений Jakarta EE в Azure.

Функции Azure

Функции Azure — это бессерверная платформа, предоставляемая Azure, и она поддерживает выполнение рабочих нагрузок Java.

Для запуска Java-приложения в Функциях Azure обычно требуется некоторая дополнительная настройка. По своей природе бессерверные функции имеют короткую жизнь (обычно несколько минут), поэтому некоторые службы, которые вы традиционно используете, могут быть не столь эффективными или практическими, как служба приложений Azure.

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

Служба Azure Kubernetes

Служба Azure Kubernetes (AKS) — это управляемое и защищенное решение Kubernetes, предоставляемое Azure. Он может запускать любой образ Docker, и он получает преимущества от принадлежности ко всей экосистеме Kubernetes. AKS хорошо работает, если вы хотите доставлять облачные приложения на любом языке, включая Java.

Служба Azure Kubernetes — это отличное решение, если у вас есть разнородные рабочие нагрузки или требуется точное управление средой. AKS хорошо работает с рабочими нагрузками Java, но вам нужно создавать и поддерживать образы Docker.

Виртуальные машины Azure

Запуск виртуальных машин в Azure обеспечивает максимальную гибкость и разнообразие вариантов. Вы можете выбрать между несколькими операционными системами, как правило, Windows и основными дистрибутивами Linux. Вы можете принести собственное программное обеспечение или использовать некоторые предоставленные образы.

В частности, для Java используются в основном виртуальные машины:

  • Установите и запустите веб-приложение Java вручную поверх Windows или Linux.
  • Установите и запустите Docker или даже AKS для запуска образа, содержащего веб-приложение Java.
  • Используйте одно из поддерживаемых предложений, таких как Oracle WebLogic, для запуска веб-приложений Java на виртуальных машинах.

При использовании виртуальных машин Azure нет ограничений на то, что можно установить и запустить, так как у вас есть полный контроль над ними. Основной недостаток виртуальных машин, однако, заключается в том, что вам нужно поддерживать и защищать их. Для виртуальных машин эта работа по обслуживанию является вашей ответственностью.