Развертывание приложений Java с уверенностью и простотой

Экосистема Java включает различные технологии, такие как Java SE, Jakarta EE (преемник Java EE и J2EE), Spring, многочисленные серверы приложений и другие платформы. Независимо от того, что вы делаете с Помощью Java — создание приложения, использование платформы и запуск сервера приложений — поддержка Azure рабочую нагрузку с большим выбором. Аналогичным образом поддержка Azure любую архитектуру приложений — от монолитных приложений, работающих на виртуальных машинах или в контейнерах до облачных приложений на основе микрослужб, работающих в полностью управляемых службах.

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

Tomcat, JBoss EAP, WildFly, WebLogic и WebSphere являются популярными серверами приложений. Аналогичным образом Spring Boot, Quarkus и Open Liberty являются популярными платформами для создания автономных приложений с внедренными серверами приложений. поддержка Azure их все, что позволяет использовать любой сервер приложений Java и развертывать приложение Java с уверенностью и легкостью.

Развертывание приложения Spring Boot или Java на любом сервере приложений — Tomcat и Jakarta EE

С помощью Azure вы можете запускать любую версию и любой дистрибутив Java и любой сервер приложений без ограничений и без необходимости управлять собственной физической инфраструктурой. Вы решите, сколько элементов управления требуется или сколько требуется для повседневного управления Azure с такими параметрами, как виртуальные машины, контейнеры и полностью управляемые службы. Если вы используете коммерчески поддерживаемые серверы приложений Java или платформы , такие как VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server или IBM WebSphere, Liberty или OpenLiberty — Azure предлагает совместно разработанные и поддерживаемые предложения для всех этих приложений.

Параметры развертывания

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

Виртуальные машины и контейнеры

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

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

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

  • Служба Azure Kubernetes (AKS), что упрощает развертывание управляемого кластера Kubernetes, обрабатывая все операционные издержки, включая критически важные задачи, такие как обслуживание и мониторинг работоспособности. AKS поддерживает эластичную подготовку емкости, включая автомасштабирование на основе событий и триггеры KEDA.

  • Azure Red Hat OpenShift, который предоставляет высокодоступные полностью управляемые кластеры OpenShift по запросу. OpenShift предоставляет функции с дополнительными значениями для дополнения Kubernetes, что делает его готовой платформой контейнеров, которая обеспечивает улучшенный интерфейс разработчика и оператора.

Хотя вы можете развернуть любую среду выполнения Java во всех этих службах IaaS и CaaS, рекомендуется использовать одну из следующих сред выполнения:

  • Microsoft Build of OpenJDK для Java 11 или 17 — базовые образы контейнеров, для которых корпорация Майкрософт предоставляет и обслуживает.

  • Eclipse Adoptium Temurin для Java 8 — среда выполнения Java, для которой предоставляется проект Eclipse Adoptium (ранее проект OpenJDK).

Обе эти сборки доступны бесплатно для локального разработки и тестирования, а также для создания готовых к работе двоичных файлов с помощью любой платформы или средств DevOps без необходимости платить за лицензирование. Мы рекомендуем их в качестве удобства. Если вы используете одну из этих сборок, у вас возникли проблемы и у вас есть подходящий план поддержки для Azure, вы можете открыть билет поддержка Azure без дополнительных затрат. Тем не более того, стоит отметить, что эти рекомендации являются только тем, что - варианты, которые мы рекомендуем среди различных других свободно доступных сборок OpenJDK для упрощения поддержки. Дополнительные сведения см. в статье Поддержка Java в Azure и Azure Stack.

Схема с заголовком

Все эти варианты развертывания IaaS и CaaS позволяют легко развернуть сервер приложений Apache Tomcat. Если вы используете коммерческое предложение , например Spring Runtime из VMware, JBoss EAP из Red Hat, WebLogic Server из Oracle или WebSphere из IBM — Azure предлагает совместно разработанные и поддерживаемые варианты размещения от этих поставщиков. Они рассматриваются позже в рамках совместно созданных и поддерживаемых решений с партнерами экосистемы Java.

Полностью управляемые службы (PaaS)

Полностью управляемые службы PaaS для запуска приложений Java в Azure включают следующие параметры:

  • Azure Spring Apps, что упрощает развертывание приложений Spring Boot в Azure без каких-либо изменений кода. Служба управляет всей инфраструктурой для приложений Spring Boot. Эта инфраструктура включает комплексный мониторинг и диагностика, управление конфигурацией, обнаружение служб, безопасность, жизненный цикл приложений, журналы публикации и метрики, интеграцию CI/CD, развертывание сине-зеленого цвета и многое другое. Разработка в партнерстве с Pivotal (в настоящее время входит в состав VMware), Azure Spring Apps совместно работает и поддерживается корпорацией Майкрософт и VMware.
  • приложение Azure служба, служба на основе HTTP для размещения веб-приложений, REST API и мобильных серверных серверов — с встроенной безопасностью, балансировкой нагрузки, автомасштабированием и автоматизированным управлением. Служба приложений также поддерживает комплексные возможности DevOps, такие как непрерывное развертывание, управление пакетами, промежуточные среды, пользовательские домены и SSL-сертификаты.
  • Приложения контейнеров Azure, которые позволяют запускать микрослужбы и контейнерные приложения на бессерверной платформе. Распространенные способы использования: развертывание конечных точек API, размещение приложений фоновой обработки, обработка обработки на основе событий и выполнение микрослужб. Приложения, созданные на основе приложений контейнеров Azure, могут динамически масштабироваться на основе ТРАФИКА HTTP, обработки на основе событий, загрузки ЦП или памяти или любого поддерживаемого масштабировщика KEDA.

Среды выполнения Java для Azure Spring Apps и службы приложение Azure предоставляются и поддерживаются корпорацией Майкрософт. Они поддерживают только дистрибутивы LTS OpenJDK, используя Eclipse Adoptium Temurin для Java 8 и Microsoft Build OpenJDK для Java 11 и 17. Тем не более того, существуют некоторые предостережения, например, наши совместно разработанные и поддерживаемые предложения партнеров (рассмотренные далее) используют свои собственные среды выполнения.

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

Бессерверные функции

Иногда не требуется целое приложение Java. Например, для обработки данных в режиме реального времени может потребоваться лишь небольшой фрагмент кода, который может быть активирован в масштабе - возможно, миллионами и миллионами событий. Такие события можно получать с помощью Центры событий Azure, обрабатываться бессерверным кодом Java на основе событий, выполняющимся в масштабе Функции Azure, и сохраняться в хранилище данных, например Azure Cosmos DB.

Совместно созданные и поддерживаемые решения с партнерами экосистемы Java

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

Схема с заголовком

Azure Spring Apps (Pivotal/VMware)

Совместно разработанная корпорацией Майкрософт и Pivotal Azure Spring Apps — это полностью управляемая служба, которая решает многие распространенные проблемы, связанные с разработчиками, ИТ-операторами и командами DevOps при выполнении приложений Spring Boot в масштабе. Она абстрагирует сложность управления инфраструктурой для запуска приложений Spring и компонентов промежуточного слоя Spring Cloud, что позволяет разработчикам Java сосредоточиться на коде, позволяя Azure заботиться о динамическом масштабировании, исправлениях безопасности, стандартах соответствия требованиям, высокой доступности и т. д.

JBoss EAP (Red Hat)

Red Hat предоставляет решения с открытым кодом для предприятия. Одним из таких решений является платформа JBoss Enterprise Application Platform (EAP), популярная платформа сервера приложений, сертифицированная java EE, и Jakarta EE, совместимая как с веб-профилем, так и с полной платформой. Red Hat также является участник для стандартов Java, OpenJDK, MicroProfile, Jakarta EE и Quarkus.

Мы сотрудничаем с Red Hat для доставки Red Hat JBoss Enterprise Application Platform (EAP) в службе приложение Azure — что позволяет разработчикам Java развертывать свои приложения Jakarta EE в Служба приложений без необходимости отдельной подписки Red Hat или лицензии с интегрированной поддержкой обеих компаний. Мы также запустили аналогичные совместные предложения для JBoss EAP на виртуальных машинах Azure, в масштабируемых наборах виртуальных машин Azure и в Azure RedHat OpenShift (ARO) — последний также совместно работает корпорацией Майкрософт и Red Hat.

WebLogic Server (Oracle)

Мы сотрудничаем с Oracle для доставки Oracle WebLogic Server (WLS) на виртуальных машинах Azure и Oracle WebLogic Server на Служба Azure Kubernetes. Эти решения упрощают миграцию в Azure путем автоматизации стандартных операций, таких как подготовка виртуальных сетей и хранилища, установка ресурсов Linux и Java, настройка webLogic Server и настройка безопасности с помощью группы безопасности сети.

WebSphere/Liberty/Open Liberty (IBM)

Мы сотрудничали с IBM, совместно разрабатывая решения для сервера приложений WebSphere (WAS) на виртуальных машинах Azure, WebSphere Liberty и Open Liberty на Служба Azure Kubernetes, а также WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift. Дополнительные сведения см. в статье о решениях для запуска семейства продуктов IBM WebSphere в Azure? Эти решения позволяют легко перенести рабочие нагрузки WebSphere в Azure, автоматив большинство задач подготовки ресурсов, необходимых для настройки кластера WebSphere с высоким уровнем доступности. Партнерство охватывает ряд вариантов использования— от существующих критически важных рабочих нагрузок до облачных приложений.

Apache Kafka в Confluent Cloud (Confluent)

В прошлом клиенты Azure, которые хотели использовать службу Kafka Confluent, должны были создавать ресурсы и пользователи отдельно в Azure и Confluent Cloud. Чтобы облегчить эту боль, Confluent и Корпорация Майкрософт совместно предоставляют Apache Kafka для Confluent Cloud, предложение Azure Marketplace, которое предоставляет Apache Kafka в качестве полностью управляемой службы, включая возможность создавать облачные ресурсы Confluent и управлять ими с помощью портал Azure, Azure CLI или пакетов SDK для управления Azure.

Сегодня взаимодействие с клиентами проще, безопаснее и удобнее. Клиенты могут подготавливать ресурсы Confluent Cloud и управлять ими вместе с ресурсами Azure в рамках единого рабочего процесса и использовать полностью управляемые соединители, созданные для Функции Azure, Хранилище BLOB-объектов Azure, Центры событий Azure, Azure Data Lake Storage 2-го поколения и Microsoft SQL Server. Разработчики могут продолжать код с помощью клиентских библиотек Apache Kafka.

Итоги

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

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

Схема с заголовком

Следующий шаг

Масштабирование с помощью комплексной системы безопасности, мониторинга и автоматизации