Поделиться через


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

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

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

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

Определите, что вы подразумеваете под "завершение миграции"

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

Лучше придерживаться принципа «лифт энд шифт» как можно ближе, учитывая необходимые изменения, описанные в этом руководстве. Определите, что вы подразумеваете под "миграция завершена", чтобы вы точно знали, что достигли этой вехи. После завершения миграции можно создать моментальный снимок виртуальных машин, как описано в Создание моментального снимка виртуального жесткого диска. Безопаснее делать улучшения после того, как вы убедитесь, что сможете успешно восстановить из моментального снимка. Таким образом, вы можете продолжить, не опасаясь потерять прогресс миграции, достигнутый вами до сих пор.

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

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

Чтобы ознакомиться с предварительно созданным предложением в Azure Marketplace, см. руководство «Быстрое начало: развертывание кластера JBoss EAP в виртуальных машинах Azure (VMs)».

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

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

Существующая версия JBoss EAP должна быть совместима с версией в предложениях инфраструктуры как услуга (IaaS). Страницы портала Azure для предложения показывают, какие версии JBoss EAP доступны. Дополнительные сведения см. в предложении JBoss EAP на виртуальных машинах в портале Azure. Если существующая версия JBoss EAP несовместима с версиями, доступными в предложении, необходимо воспроизвести развертывание вручную с помощью ресурсов IaaS Azure. Для получения дополнительной информации смотрите What is 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 для частных лиц. Сохраните сведения об учетной записи для использования в качестве имени пользователя RHSM и пароля RHSM в предварительно настроенных предложениях Azure Marketplace.

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

Инвентаризация емкости сервера

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

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

Инвентаризация всех секретов

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

Мы рекомендуем хранить секреты в 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

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

Внешние ресурсы, такие как источники данных, брокеры сообщений Java (JMS) и другие, внедряются с помощью интерфейса именования Java и каталога (JNDI). Для некоторых таких ресурсов может потребоваться миграция или перенастройка.

Внутри вашего приложения

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

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

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

  • имя источника данных;
  • конфигурация пула подключений;
  • Где можно найти JAR-файл драйвера подключения к базе данных Java (JDBC) ?

Дополнительные сведения см. в разделе О источниках данных JBoss Enterprise Application Platform (EAP) в документации по JBoss EAP.

Другие внешние ресурсы

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

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

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

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

Если приложение в настоящее время обслуживает статическое содержимое, для него требуется альтернативное расположение. Следует рассмотреть возможность перемещения статического содержимого в хранилище BLOB-объектов Azure и добавления Azure Front Door для быстрого скачивания глобально. Дополнительные сведения см. в статьях Статическое размещение веб-сайтов в Azure Storage и Интеграция учетной записи хранения Azure сAzure Front Door.

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

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

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

Если приложение использует очереди или разделы JMS, их необходимо перенести на внешний сервер JMS. Использование Служебной шины Azure и Расширенного протокола управления очередью сообщений (AMQP) — это подходящая стратегия миграции для тех, кто работает с JMS. Дополнительные сведения см. в разделе "Использование Java Message Service 1.1 со стандартной службой шины 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-файлов, каждый из таких WAR-файлов следует рассматривать как отдельное приложение и пройти через это руководство для каждого из них.

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

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

Примечание.

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

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

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

Миграция

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

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

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

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

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

Односерверный JBoss EAP

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

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

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

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

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

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