Azure предлагает множество вариантов для команд для создания и развертывания приложений Java. В этой статье рассматриваются основные сценарии java в Azure и предоставляются общие рекомендации по планированию и рекомендации.
Apache®, Apache Kafka, Apache Struts, Apache Tomcat и логотип пламени являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и /или других странах. Использование этих меток не подразумевает подтверждения от Apache Software Foundation.
Платформа
Прежде чем выбрать облачный сценарий для приложения Java, определите ее платформу. Большинство приложений Java используют одну из следующих платформ:
Приложения SPRING Boot JAR
Приложения SPRING Boot JAR обычно вызываются непосредственно из командной строки. Они обрабатывают веб-запросы. Вместо того, чтобы полагаться на сервер приложений для обработки HTTP-запросов, эти приложения включают http-связь и другие зависимости непосредственно в пакет приложения. Такие приложения часто создаются с помощью таких платформ, как Spring Boot, Dropwizard, Micronaut, MicroProfile и Vert.x.
Эти приложения упаковываются в архивы с расширением .jar , известным как JAR-файлы.
Приложения Spring Cloud
Стиль архитектуры микрослужб — это подход к разработке одного приложения в виде набора небольших служб. Каждая служба выполняется в собственном процессе и взаимодействует с помощью упрощенных механизмов, часто API ресурсов HTTP. Эти службы основаны на бизнес-возможностях.
Автоматизированное оборудование развертывания независимо развертывает эти микрослужбы. Существует минимум централизованного управления, который может быть написан на разных языках программирования и использовать различные технологии хранения данных. Такие службы часто создаются с помощью таких платформ, как Spring Cloud.
Эти службы упаковываются в несколько приложений в виде JAR-файлов.
Веб-приложения
Веб-приложения выполняются внутри контейнера сервлета. Некоторые используют API-интерфейсы сервлета напрямую, а другие используют другие платформы, которые инкапсулируют API-интерфейсы сервлета, такие как Apache Struts, Spring MVC и JavaServer Face.
Веб-приложения упаковываются в архивы с расширением WAR, известным как WAR-файлы.
Приложения Jakarta EE
Приложения Jakarta выпуск Enterprise (Jakarta EE) могут содержать некоторые, все или ни один из элементов веб-приложений. Они также могут содержать и использовать много дополнительных компонентов, как определено спецификацией Jakarta EE. Приложения Jakarta EE ранее были известны как приложения Java EE или приложения J2EE.
Приложения Jakarta EE можно упаковыть как WAR-файлы или архивы с расширением EAR, известные как ФАЙЛЫ EAR.
Приложения Jakarta EE должны быть развернуты на серверах приложений, совместимых с Jakarta EE. Примеры: WebLogic, WebSphere, WildFly, GlassFish и Payara.
Приложения, использующие только функции, предоставляемые спецификацией Jakarta EE, можно перенести с одного соответствующего сервера приложений на другой. Если приложение зависит от определенного сервера приложений, может потребоваться выбрать назначение службы Azure, которое позволяет размещать этот сервер приложений.
Параметры платформы
Используйте следующую таблицу, чтобы определить потенциальные платформы для типа приложения.
Azure Spring Apps | Служба приложений Java SE | Служба приложений Томкат | Служба приложений JBoss EAP | Приложения-контейнеры Azure | AKS | Виртуальные машины | |
---|---|---|---|---|---|---|---|
приложения Spring Boot (JAR); | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Приложения Spring Cloud | ✔ | ✔ | ✔ | ✔ | |||
Веб-приложения | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
Приложения Jakarta EE | ✔ | ✔ | ✔ | ||||
Доступность региона Azure | Сведения | Сведения | Сведения | Сведения | Сведения | Сведения | Сведения |
Служба Azure Kubernetes (AKS) и Виртуальные машины поддерживать все типы приложений, но им требуется, чтобы ваша команда выполняла дополнительные обязанности, как описано в следующем разделе.
Возможность поддержки
Помимо выбора платформы современные приложения Java могут иметь другие потребности в поддержке, например:
- Пакетные или запланированные задания
- Интеграция с виртуальной сетью
- Бессерверные решения
- Контейнеризация
Пакетные или запланированные задания
Вместо ожидания запросов или ввода пользователем некоторые приложения выполняются кратко, запускают определенную рабочую нагрузку, а затем выходят. Иногда такие задания должны выполняться один раз или через регулярные запланированные интервалы. Локальные задания часто вызываются из таблицы cron сервера.
Эти приложения упаковываются в виде JAR-файлов.
Примечание.
Если приложение использует планировщик, например Spring Batch или Qualcom, для выполнения запланированных задач, настоятельно рекомендуется выполнять эти задачи за пределами приложения. Если приложение масштабируется до нескольких экземпляров в облаке, то одно задание может выполняться несколько раз. Если механизм планирования использует локальный часовой пояс узла, при масштабировании приложения в разных регионах может возникнуть ошибка.
Интеграция виртуальной сети
При развертывании приложения Java в виртуальной сети он имеет исходящие зависимости от служб за пределами виртуальной сети. Для управления и операций проект должен иметь доступ к определенным портам и полным доменным именам. С помощью виртуальная сеть Azure можно разместить многие ресурсы Azure в сети, отличной от Интернета. Функция интеграции с виртуальной сетью позволяет приложениям получать доступ к ресурсам в виртуальной сети или через нее. Интеграция с виртуальной сетью не позволяет приложениям получать доступ в частном порядке.
Бессерверная модель разработки
Бессерверный — это облачная модель разработки, которая позволяет разработчикам создавать и запускать приложения без необходимости управлять серверами. В модели бессерверных приложений поставщик облачных служб автоматически подготавливает и масштабирует базовую инфраструктуру, необходимую для выполнения кода, а также управляет ею. Серверы по-прежнему существуют в бессерверной модели. Они абстрагируются от разработки приложений.
Контейнеризация
Контейнеризация — это упаковка программного кода со всеми необходимыми компонентами, такими как библиотеки, платформы и другие зависимости. Приложение изолировано в собственном контейнере.
CI/CD
Непрерывная интеграция и непрерывная доставка (CI/CD) — это метод для частой доставки приложений клиентам путем внедрения автоматизации на стадии разработки приложений. Основными понятиями в CI/CD являются непрерывная интеграция, непрерывная доставка и непрерывное развертывание. Все варианты Azure поддерживают большинство инструментов CI/CD. Например, можно использовать такие решения, как Azure Pipelines или Jenkins.
Поисковая система с открытым исходным кодом
Поиски являются неотъемлемой частью любого приложения. Если скорость, производительность и высокий уровень доступности критически важны, поиск по терабайтам и петабайтам данных может быть сложной задачей. При размещении приложений Java в Azure планируйте размещение связанных экземпляров Solr и Elasticsearch. Кроме того, рассмотрите возможность миграции в Когнитивный поиск Azure.
Средства работы с большими данными
Средства больших данных обеспечивают автоматизацию потока данных среди программных систем. Они поддерживают масштабируемые, надежные и оптимизированные графы маршрутизации данных вместе с логикой системного посредника. Они используются для создания конвейеров потоков данных и потоковых приложений. Узнайте, как Nifi и Apache Kafka в Azure могут быть подходящими для ваших потребностей.
Параметры поддержки
Используйте следующую таблицу, чтобы определить потенциальные параметры для типа приложения. AKS и Виртуальные машины поддерживают все типы приложений, но им требуется, чтобы ваша команда взять на себя больше обязанностей.
Azure Spring Apps | Служба приложений Java SE | Служба приложений Томкат | Служба приложений JBoss EAP | Приложения-контейнеры Azure | AKS | Виртуальные машины | |
---|---|---|---|---|---|---|---|
Пакетные или запланированные задания | ✔ | ✔ | ✔ | ✔ | |||
Интеграция с виртуальной сетью | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Бессерверные решения | ✔ | ✔ | ✔ | ✔ | |||
Контейнеризация | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Доступность региона Azure | Сведения | Сведения | Сведения | Сведения | Сведения | Сведения | Сведения |
Кроме того, обратитесь к этому дереву принятия решений.
Скачайте файл Visio этой схемы.
Создание или перенос приложений Java
Чтобы создать или перенести приложения Java, определите платформу Java приложений. Некоторые популярные платформы : Java SE, Jakarta EE и MicroProfile.
Java SE
Платформа Java, выпуск Standard (Java SE) — это вычислительная платформа для разработки и развертывания переносимого кода для настольных и серверных сред. Популярные проекты, построенные на Java SE, включают Spring Boot, Spring Cloud, Spring Framework и Apache Tomcat.
Jakarta EE
Jakarta EE — это открытый код будущее облачной корпоративной Java. Это набор спецификаций, которые расширяют Java SE с корпоративными функциями, такими как распределенные вычисления и веб-службы. Приложения Jakarta EE запускают эталонные среды выполнения. Эти среды выполнения могут быть микрослужбами или серверами приложений. Они обрабатывают транзакции, безопасность, масштабируемость, параллелизм и управление компонентами, развертываемых приложением.
MicroProfile
Проект MicroProfile предоставляет коллекцию спецификаций, предназначенных для создания облачных микрослужб Java для разработчиков. Quarkus и Open Liberty являются популярными реализациями MicroProfile.
Сводка по сборке или миграции
В следующей таблице содержатся сведения о сборке или миграции по типу приложения и службе Azure.
Тип | Java SE | MicroProfile | JarkartaSE | |
---|---|---|---|---|
Виртуальная машина | IaaS | ✔ | ✔ | ✔ |
VMware Tanzu | IaaS | ✔ | ||
Служба Azure Kubernetes | Контейнер | ✔ | ✔ | ✔ |
Red Hat OpenShift | Контейнер | ✔ | ✔ | ✔ |
Приложение контейнера Azure | PaaS | ✔ | ✔ | |
JBoss EAP | PaaS Служба приложений | ✔ | ✔ | |
Apache Tomcat | PaaS Служба приложений | ✔ | ||
Java SE | PaaS Служба приложений | ✔ | ✔ | |
Azure Spring Apps | PaaS | ✔ |
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Основные авторы:
- Asir Vedamuthu Selvasingh | Главный диспетчер программ
- Зависание Ван | Product Manager
- Синьи Чжан | Главный диспетчер PM
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.
Следующие шаги
- Общие сведения о приложениях контейнеров Azure
- Служба Azure Kubernetes
- Документация по Azure Spring Apps
- Интеграция виртуальной сети Azure
- Виртуальные машины в Azure