Перенос приложений JBoss EAP в JBoss EAP на виртуальных машинах Azure

В этом руководстве описывается, что следует учитывать при переносе существующего приложения JBoss EAP для запуска в JBoss EAP на виртуальных машинах Azure.

Подготовка к миграции

Чтобы обеспечить успешную миграцию, перед ее началом выполните шаги оценки и инвентаризации, описанные в следующих разделах.

Определение целевого состояние после миграции

Это руководство и соответствующие предложения Azure Marketplace являются отправной точкой для ускорения миграции рабочих нагрузок JBoss EAP в Azure. Перед выполнением этой процедуры важно все продумать. Возможно, вы хотите перенести существующую инфраструктуру в Виртуальные машины Azure по методике lift-and-shift? В таком случае всегда есть соблазн "улучшить" процедуру.

Но мы рекомендуем как можно точнее соблюдать принцип lift-and-shift, применяя описанные в этом руководстве требуемые изменения. Определите для себя целевое состояние миграции, чтобы вы точно знали, что достигли поставленной задачи. После завершения миграции можно создать моментальный снимок виртуальных машин, как описано в статье "Создание моментального снимка виртуального жесткого диска". Это безопаснее, чтобы сделать улучшения после проверки успешного восстановления из моментального снимка. Таким образом, вы можете продолжить, не опасаясь потерять ход миграции, который вы достигли до сих пор.

Определите, являются ли готовые предложения Azure Marketplace хорошим отправной точкой

Red Hat и Корпорация Майкрософт сотрудничают с тем, чтобы перенести набор шаблонов решений Azure в Azure Marketplace, чтобы обеспечить надежную отправную точку для миграции в Azure. Список предложений можно просмотреть в разделе JBoss EAP в Azure Виртуальные машины раздела Red Hat JBoss EAP в Azure.

Сведения о предварительно созданном предложении Azure Marketplace см. в кратком руководстве по развертыванию сервера JBoss EAP на виртуальной машине Azure с помощью портал Azure.

Если ни одно из существующих предложений не является хорошей отправной точкой, необходимо воспроизвести развертывание вручную с помощью ресурсов, доступных в Azure Виртуальные машины. См. сведения об IaaS.

Определение совместимости версии JBoss EAP

Существующая версия JBoss EAP должна быть совместима с версией в предложениях инфраструктуры как услуга (IaaS). Страницы портал Azure для предложений показывают, какие версии JBoss EAP доступны. Дополнительные сведения см. в предложении JBoss EAP на виртуальных машинах в портал Azure. Если существующая версия JBoss EAP несовместима с версиями, доступными в предложении, необходимо воспроизвести развертывание вручную с помощью ресурсов IaaS Azure. См. сведения об IaaS.

Убедитесь, что у вас есть необходимые лицензии

При использовании предварительно созданных предложений Azure Marketplace необходимо иметь текущие лицензии из Red Hat для всех серверов JBoss EAP. Переместите их в Azure, вы можете выбрать один из следующих вариантов развертывания в соответствии с вашими потребностями:

  • Развертывание на виртуальных машинах Red Hat Enterprise Linux с оплатой по мере использования. Этот параметр называется PAYG.
  • Переместите подписки Red Hat JBoss EAP и Red Hat Enterprise Linux в Azure с помощью программы Red Hat Cloud Access . Этот параметр называется BYOS.

В обоих вариантах для переносимости лицензий вам будет предложено указать идентификатор пула из Red Hat. Прежде чем попробовать предложения, убедитесь, что у вас есть этот идентификатор.

Предварительно созданные предложения Azure Marketplace включают поддержку Red Hat Satellite для управления лицензиями. Общие сведения о Red Hat Satellite см. в разделе Red Hat Satellite.

Примечание.

Если у вас нет прав на EAP, вы можете зарегистрироваться для получения бесплатной подписки разработчика через подписку Red Hat developer для частных лиц. Запишите сведения об учетной записи для использования в качестве имени пользователя RHSM и пароля RHSM в предварительно созданных предложениях Azure Marketplace.

Инструкции по обнаружению идентификатора пула описаны в разделе "Предварительные требования" в кратком руководстве. Развертывание сервера JBoss EAP на виртуальной машине Azure с помощью портал Azure.

Проверка емкости сервера

Определите характеристики оборудования текущих рабочих серверов (показатели памяти, ЦП и диска), а также среднее и пиковое количество запросов и объем потребляемых ресурсов. Эти сведения понадобятся, независимо от выбранного пути миграции. Это полезно, например, чтобы помочь выбрать размер виртуальных машин в пуле узлов, объем памяти, который будет использоваться контейнером, и сколько ЦП разделяет потребности контейнера.

Можно изменить размер пулов узлов в AKS. Дополнительные сведения см. в разделе "Изменение размера пулов узлов" в Служба Azure Kubernetes (AKS).

Проверка всех секретов

Проверьте все свойства и файлы конфигурации на рабочем сервере или серверах для любых секретов и паролей. Обязательно проверка файл jboss-web.xml в WARs. Кроме того, в приложении могут быть файлы конфигурации, содержащие пароли или учетные данные.

Мы рекомендуем хранить секреты в Azure KeyVault. См. основные понятия Azure Key Vault.

Проверка всех сертификатов

Определите все сертификаты, используемые для общедоступных конечных точек SSL. Вы можете просмотреть все сертификаты на рабочих серверах, выполнив следующую команду:

keytool -list -v -keystore <path to keystore>

Проверка правильной работы поддерживаемой версии Java

Для JBoss EAP на виртуальных машинах Azure требуется поддерживаемая версия Java. Инструкции по использованию версии JDK см . в документации по Red Hat в поддерживаемых конфигурациях .

Примечание.

Эта проверка особенно важна, если на текущем сервере используется неподдерживаемая версия JDK (например, Oracle JDK или IBM OpenJ9).

Чтобы получить текущую версию Java, войдите на сервер в рабочей среде и выполните следующую команду:

java -version

Проверка внешних ресурсов

Внешние ресурсы, такие как источники данных, брокеры сообщений JMS и другие, внедряются с помощью API JNDI (Java Naming and Directory Interface). Возможно, для некоторых из этих ресурсов потребуется выполнить перенос или перенастройку.

В приложении

Проверьте файлы WEB-INF/jboss-web.xml и (или) WEB-INF/web.xml. Найдите элементы <Resource> в элементе <Context>.

Источники данных

Источники данных — это ресурсы JNDI с атрибутом type, для которого задано значение javax.sql.DataSource. Для каждого источника данных запишите следующие сведения:

  • имя источника данных;
  • конфигурация пула подключений;
  • путь к JAR-файлу драйвера JDBC.

См. сведения об источниках данных JBoss EAP в документации по JBoss EAP.

Другие связанные внешние ресурсы

Нет смысла описывать все возможные внешние зависимости, перечисленные в этом руководстве. Ваша команда должна убедиться в том, что после переноса все внешние зависимости приложения будут доступными.

Определение того, используется ли файловая система и как именно она используется

Для любого использования файловой системы на сервере приложений требуется перенастройка или, в редких случаях, изменения архитектуры. Модули JBoss EAP или код приложения могут использовать файловую систему. Вы можете определить некоторые или все сценарии, описанные в следующих разделах.

Статическое содержимое только для чтения

Если ваше приложение сейчас обслуживает статическое содержимое, вам потребуется альтернативное расположение для этого статического содержимого. Вы можете переместить статическое содержимое в хранилище BLOB-объектов Azure и включить Azure CDN для быстрого скачивания в глобальном масштабе. Дополнительные сведения см. в статье "Размещение статических веб-сайтов" в служба хранилища Azure и кратком руководстве. Интеграция учетной записи хранения Azure с Azure CDN. Вы также можете напрямую развернуть статическое содержимое в приложении в плане Azure Spring Apps Enterprise. Дополнительные сведения см. в разделе "Развертывание статических веб-файлов".

Динамически опубликованное статическое содержимое

Если приложение допускает использование статического содержимого, которое передается или создается приложением и после этого становится неизменяемым, вы можете использовать хранилище BLOB-объектов Azure и Azure CDN, как описано выше, с Функциями Azure для выполнения отправки и обновления CDN. Практический пример реализации см. в руководстве по отправке и предварительной загрузке статического содержимого CDN с помощью Функций Azure. Вы также можете напрямую развернуть статическое содержимое в приложении в плане Azure Spring Apps Enterprise. Дополнительные сведения см. в разделе "Развертывание статических веб-файлов".

Определение того, нужно ли подключаться к локальной среде

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

Определение того, используются ли очереди или разделы Java Message Service (JMS)

Если приложение использует очереди или разделы JMS, их необходимо перенести на внешний сервер JMS. Использование Служебной шины Azure и Расширенного протокола управления очередью сообщений (AMQP) — это подходящая стратегия миграции для тех, кто работает с JMS. Сведения см. в руководстве по использованию JMS со Служебной шиной Azure и AMQP 1.0.

Если постоянные хранилища JMS настроены, вам нужно записать их конфигурацию и применить ее после миграции.

Определение того, используются ли соединители JCA

Если приложение использует соединители JCA, проверьте, можно ли использовать соединитель JCA в JBoss EAP. Если вы можете использовать соединитель JCA в JBoss EAP, чтобы сделать его доступным, нужно добавить JAR-файлы в путь к классу сервера и поместить необходимые файлы конфигурации в правильное расположение в каталогах сервера JBoss EAP.

Определение того, используется ли JAAS

Если приложение использует JAAS, необходимо определить настройки JAAS. Если используется база данных, ее можно преобразовать в домен JAAS в JBoss EAP. Если используется пользовательская реализация, необходимо проверить, можно ли использовать ее в JBoss EAP.

Определение того, состоит ли приложение из нескольких WAR-файлов

Если приложение состоит из нескольких WAR-файлов, их следует рассматривать как отдельные приложения, как описано в этом руководстве.

Определение того, упаковано ли приложение как EAR-файл

Если приложение упаковано как EAR-файл, обязательно проверьте файл application.xml, определив его конфигурацию.

Примечание.

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

Определение всех внешних процессов и управляющих программ, запущенных на рабочих серверах

Если за пределами сервера приложений выполняются какие-либо процессы (например, управляющие программы мониторинга), вам нужно будет удалить их или перенести в другое расположение.

Миграция

Выберите JBoss EAP в предложении Azure Виртуальные машины

Предложения, описанные в следующих разделах, доступны для JBoss EAP в Azure Виртуальные машины.

Во время развертывания предложения вам будет предложено выбрать размер виртуальной машины для узлов сервера JBoss EAP. При выборе размера виртуальной машины важно учитывать все аспекты (память, процессор, диск). Дополнительные сведения см. в разделе "Размеры" для Облачные службы (классическая модель).

JBoss EAP в Azure Масштабируемые наборы виртуальных машин

Масштабируемые наборы виртуальных машин предоставляют группы балансировки нагрузки, высокомасштабируемые виртуальные машины для рабочих нагрузок любого размера. Дополнительные сведения см. в статье "Что такое Масштабируемые наборы виртуальных машин?"

JBoss EAP в кластеризованных Виртуальные машины

Если вы предпочитаете, традиционный кластер виртуальных машин с помощью механизма JBoss EAP кластеризация подходит для лифта и перехода от развертываний, которые уже используют эту функцию. Дополнительные сведения см. в разделе "Настройка кластера Red Hat JBoss EAP 7" в документации по JBoss EAP. Предварительно созданное предложение Azure Marketplace включает поддержку режима домена. Общие сведения о доменах eAP и режиме домена см. в разделе "Управление доменами".

Отдельный сервер JBoss EAP

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

Миграция Red Hat набор средств для приложений

Миграция Red Hat набор средств для приложений — это бесплатное расширение для Visual Studio Code. Это расширение анализирует код приложения и конфигурацию, чтобы предоставить рекомендации по миграции в облако из локальной среды. Дополнительные сведения см. в разделе "Миграция набор средств для приложений".

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

После миграции

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