Руководство. Перенос кластера WebLogic Server в Azure с Шлюз приложений Azure в качестве подсистемы балансировки нагрузки

В этом учебнике описан процесс развертывания WebLogic Server (WLS) с помощью Шлюза приложений Azure. В нем рассматриваются конкретные шаги по созданию Key Vault, хранению в нем TLS/SSL-сертификата и использованию этого сертификата для завершения TLS/SSL-запросов. Хотя все эти элементы хорошо задокументированы сами по себе, в этом учебнике описывается конкретный способ объединения всех этих элементов для создания простого, но мощного решения балансировки нагрузки для WLS в Azure.

Diagram showing the relationship between WLS, App Gateway, and Key Vault.

Балансировка нагрузки является важнейшей частью процесса переноса кластера Oracle WebLogic Server в Azure. Самым простым решением является использование встроенной поддержки для Шлюза приложений Azure. Шлюз приложений входит в состав поддержки кластера WebLogic в Azure. Общие сведения о поддержке кластеров WebLogic в Azure см. в статье Что представляет собой Oracle WebLogic Server в Azure?.

В этом руководстве описано следующее:

  • Выбор способа предоставления TLS/SSL-сертификата для Шлюза приложений.
  • Развертывание WebLogic Server в Azure с помощью Шлюза приложений Azure
  • Проверка успешного развертывания WLS и Шлюза приложений

Необходимые компоненты

  • OpenSSL на компьютере под управлением UNIX-подобной среды командной строки.

    Хотя для управления сертификатами могут быть доступны и другие инструменты, в этом учебнике используется OpenSSL. OpenSSL поставляется со многими дистрибутивами GNU/Linux, например Ubuntu.

  • Активная подписка Azure.

  • Возможность развернуть одно из приложений Azure на WLS, указанных в статье Приложения Azure на Oracle WebLogic Server.

Контекст миграции

Ниже приведены некоторые моменты, которые следует учитывать при переносе локальных установок WLS и Шлюза приложений Azure. В то время как действия, описанные в этом учебнике, являются самым простым способом настроить балансировщик нагрузки перед кластером WebLogic Server в Azure, существует много других способов сделать это. Необходимо учитывать также следующие факторы.

Развертывание WebLogic Server в Azure с помощью Шлюза приложений

В этом разделе показано, как подготовить кластер WLS с автоматически созданным Шлюзом приложений Azure в качестве подсистемы балансировки нагрузки для узлов кластера. Шлюз приложений будет использовать предоставленный TLS/SSL-сертификат для завершения TLS/SSL-запросов. Чтобы узнать больше о протоколе SSL/TLS в Шлюзе приложений, см. статью Общие сведения о завершении TLS и сквозном подключении TLS с помощью Шлюза приложений.

Чтобы создать кластер WLS и Шлюз приложений, выполните приведенные ниже действия.

Сначала начните процесс развертывания динамического кластера или кластера, настроенного в WebLogic Server, как описано в документации по Oracle, но вернитесь на эту страницу, когда дойдете до раздела Azure Application Gateway (Шлюз приложений Azure), показанного ниже.

Azure portal screenshot showing the Azure Application Gateway.

Выбор способа предоставления TLS/SSL-сертификата для Шлюза приложений.

Существует несколько вариантов предоставления TLS/SSL-сертификата для Шлюза приложений. Но вы можете воспользоваться только одним из них. В этом разделе описан каждый из вариантов, чтобы вы могли выбрать наиболее подходящий для вашего развертывания.

Вариант 1. Отправка TLS/SSL-сертификата

Этот вариант подходит для производственных рабочих нагрузок, в которых Шлюз приложений подключен к общедоступному Интернету, или для рабочих нагрузок интрасети, требующих TLS/SSL. Если выбрать этот вариант, Azure Key Vault будет автоматически подготовлен для хранения TLS/SSL-сертификата, используемого Шлюзом приложений.

Чтобы передать существующий подписанный TLS/SSL-сертификат, выполните следующие действия:

  1. Выполните действия, указанные издателем сертификата, чтобы создать защищенный паролем TLS/SSL-сертификат и указать DNS-имя для сертификата. В этом документе не рассматриваются сведения о выборе подстановочного знака и сертификата с одним именем. Любой из этих вариантов будет работать.
  2. Экспортируйте сертификат своего издателя в формате файла PFX и скачайте его на локальный компьютер. Если издатель не поддерживает экспорт в формате PFX, существуют средства, которые позволят преобразовать сертификаты различных форматов в формат PFX.
  3. Выберите раздел Azure Application Gateway (Шлюз приложений Azure).
  4. Рядом с разделом Connect to Azure Application Gateway (Подключение к Шлюзу приложений Azure) выберите Да.
  5. Выберите Upload an SSL certificate (Отправить SSL-сертификат).
  6. Щелкните значок обозревателя файлов для поля SSL-сертификат. Перейдите к скачанному сертификату в формате PFX и выберите Открыть.
  7. В полях Пароль и Подтверждение пароля введите пароль для сертификата.
  8. Выберите, нужно ли запрещать общедоступный трафик непосредственно к узлам управляемых серверов. Если выбрать значение Да, управляемые серверы будут доступны только через Шлюз приложений.

Выбор конфигурации DNS

TLS/SSL-сертификаты связываются с доменным именем DNS в момент их выдачи издателем сертификата. Выполните действия, описанные в этом разделе, чтобы настроить развертывание с помощью DNS-имени для сертификата. Вы можете использовать уже созданную зону DNS или разрешить развертыванию создать ее для вас. Чтобы продолжить, выберите раздел Конфигурация DNS.

Использование существующей зоны Azure DNS

Чтобы использовать существующую зону Azure DNS со Шлюзом приложений, выполните следующие действия:

  1. Рядом с параметром Configure Custom DNS Alias (Настроить пользовательский DNS-псевдоним) выберите Да.
  2. Рядом с параметром Use an existing Azure DNS Zone (Использовать существующую зону Azure DNS) выберите Да.
  3. Введите имя зоны Azure DNS в поле DNS Zone Name (Имя зоны DNS).
  4. Введите группу ресурсов, содержащую зону Azure DNS из предыдущего шага.

Предоставление развертыванию возможности создавать зону Azure DNS

Чтобы создать зону Azure DNS для использования со Шлюзом приложений, выполните следующие действия:

  1. Рядом с параметром Configure Custom DNS Alias (Настроить пользовательский DNS-псевдоним) выберите Да.
  2. Рядом с параметром Use an existing Azure DNS Zone (Использовать существующую зону Azure DNS) выберите Нет.
  3. Введите имя зоны Azure DNS в поле DNS Zone Name (Имя зоны DNS). Новая зона DNS будет создана в той же группе ресурсов, что и WLS.

Наконец, укажите имена дочерних зон DNS. Развертывание создаст две дочерние зоны DNS для использования с WLS: одну для консоли администратора, а вторую — для Шлюза приложений. Например, если имя зоны DNS было contoso.net, в качестве значений вы можете ввести в admin и app. Консоль администрирования будет доступна по адресу admin.contoso.net, а шлюз приложений — по адресу app.contoso.net. Обязательно настройте делегирование DNS, как указано в статье Делегирование зон DNS с помощью Azure DNS.

Azure portal screenshot showing fields for child DNS zones.

Другие варианты предоставления TLS/SSL-сертификата для Шлюза приложений подробно описаны в следующих разделах. Если выбранный вариант вам подходит, можно перейти к разделу Продолжение развертывания.

Вариант 2. Определение Azure Key Vault

Этот вариант подходит для производственных или непроизводственных рабочих нагрузок в зависимости от предоставленного TLS/SSL-сертификата. Если вы не хотите, чтобы развертывание создало хранилище Azure Key Vault, вы можете определить существующее хранилище или создать его самостоятельно. Прежде чем продолжить, необходимо сохранить сертификат и его пароль в Azure Key Vault. Если вы хотите использовать имеющееся хранилище Key Vault, перейдите к разделу Создание TLS/SSL-сертификата. В противном случае перейдите к следующему разделу.

создать Azure Key Vault;

В этом разделе показано, как использовать портал Azure для создания Azure Key Vault.

  1. На домашней странице или в меню портала Azure выберите команду Создать ресурс.
  2. В поле поиска введите Key Vault.
  3. В списке результатов выберите Key Vault.
  4. В разделе Key Vault выберите Создать.
  5. В разделе "Создание хранилища ключей" укажите следующие сведения:
    • Подписка — выберите подписку.
    • В разделе Группа ресурсов выберите Создать и введите имя группы ресурсов. Запишите имя хранилища ключей. Оно потребуется позже при развертывании WLS.
    • Имя Хранилища ключей: требуется уникальное имя. Запишите имя хранилища ключей. Оно потребуется позже при развертывании WLS.

    Примечание.

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

    • В раскрывающемся меню Расположение выберите расположение.
    • Для других параметров оставьте значения по умолчанию.
  6. Нажмите кнопку "Далее" — политика доступа.
  7. В разделе Разрешить доступ к выберите Azure Resource Manager для развертывания шаблонов.
  8. Выберите Review + Create (Просмотреть и создать).
  9. Нажмите кнопку создания.

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

Создание TLS/SSL-сертификата

В этом разделе показано, как создать самозаверяющий TLS/SSL-сертификат в формате, подходящем для использования Шлюз приложений развернутых с помощью WebLogic Server в Azure. Сертификат должен быть с непустым паролем. Если у вас уже есть допустимый TLS/SSL-сертификат с непустым паролем в формате PFX, этот раздел можно пропустить и перейти к следующему. Если имеющийся допустимый TLS/SSL-сертификат с непустым паролем не в формате PFX, прежде чем перейти к следующему разделу преобразуйте его в файл PFX. В противном случае откройте командную оболочку и введите следующие команды.

Примечание.

В этом разделе показано, как кодировать сертификат в Base 64 перед сохранением его в качестве секрета в Key Vault. Для этого требуется базовое развертывание Azure, которое создает WebLogic Server и Шлюз приложений.

Чтобы создать сертификаты и закодировать их в Base 64, выполните указанные ниже действия.

  1. Создайте RSA PRIVATE KEY.

    openssl genrsa 2048 > private.pem
    
  2. Создайте соответствующий открытый ключ.

    openssl req -x509 -new -key private.pem -out public.pem
    

    При появлении запроса средства OpenSSL необходимо будет ответить на несколько вопросов. Эти значения будут включаться в сертификат. В этом учебнике используется самозаверяющий сертификат, поэтому значения несущественны. Введите следующие литеральные значения.

    1. В поле Название страны введите код из двух букв.
    2. В поле State or Province Name (Название штата или провинции) введите WA.
    3. Для поля Название организации введите Contoso. Для поля "Имя подразделения" введите выставление счетов.
    4. Для поля Общее имя введите Contoso.
    5. В поле Электронная почта введите billing@contoso.com.
  3. Экспортируйте сертификат как файл PFX.

    openssl pkcs12 -export -in public.pem -inkey private.pem -out mycert.pfx
    

    Дважды введите пароль. Запишите пароль. Оно потребуется позже при развертывании WLS.

  4. Выполните кодировку файла mycert.pfx в Base 64.

    base64 mycert.pfx > mycert.txt
    

Теперь, когда у вас есть хранилище Key Vault и действительный TLS/SSL-сертификат с непустым паролем, можно сохранить сертификат в Key Vault.

Сохранение TLS/SSL-сертификата в Key Vault

В этом разделе описано, как сохранить сертификат и его пароль в Key Vault, созданном в предыдущих разделах.

Для сохранения сертификата выполните приведенные ниже действия.

  1. На портале Azure поместите курсор в строку поиска в верхней части страницы и введите имя хранилища Key Vault, созданного ранее в этом учебнике.
  2. Ваше хранилище Key Vault должно отображаться под заголовком Ресурсы. Выберите ее.
  3. В разделе Параметры выберите Секреты.
  4. Выберите Создать/импортировать.
  5. В разделе Параметры отправки оставьте значение по умолчанию.
  6. В разделе Имя введите myCertSecretData или нужное имя.
  7. В разделе Значение введите содержимое файла mycert.txt. Длина значения и наличие новой строки не являются проблемой для текстового поля.
  8. Оставьте значения по умолчанию для остальных параметров и выберите Создать.

Для сохранения пароля сертификата выполните приведенные ниже действия.

  1. Вернитесь на страницу Секреты. Выберите Создать/импортировать.
  2. В разделе Параметры отправки оставьте значение по умолчанию.
  3. В разделе Имя введите myCertSecretPassword или нужное имя.
  4. В разделе Значение введите пароль сертификата.
  5. Оставьте значения по умолчанию для остальных параметров и выберите Создать.
  6. Вернитесь на страницу Секреты.

Определение Key Vault

Теперь, когда у вас есть хранилище Key Vault с подписанным TLS/SSL сертификатом и его паролем, хранимыми в виде секретов, вернитесь в раздел Azure Application Gateway (Шлюз приложений Azure), чтобы определить Key Vault для развертывания.

Azure portal screenshot showing Azure Key Vault fields.

  1. В разделе Resource group name in current subscription containing the KeyVault (Имя группы ресурсов в текущей подписке, содержащей KeyVault) введите имя ранее созданной группы ресурсов, содержащей Key Vault.
  2. В разделе Name of the Azure KeyVault containing secrets for the Certificate for SSL Termination (Имя Azure KeyVault с секретами для сертификата для завершения SSL) введите имя Key Vault.
  3. В разделе The name of the secret in the specified KeyVault whose value is the SSL Certificate Data (Имя секрета в указанном KeyVault, значение которого является данными SSL-сертификата) введите myCertSecretData или любое имя, указанное ранее.
  4. В разделе The name of the secret in the specified KeyVault whose value is the password for the SSL Certificate (Имя секрета в указанном KeyVault, значение которого является паролем SSL-сертификата) введите myCertSecretData или любое имя, указанное ранее.
  5. Выберите Review + Create (Просмотреть и создать).
  6. Нажмите кнопку создания. Это приведет к проверке, можно ли получить сертификат из Key Vault и совпадает ли его пароль со значением, сохраненным для пароля в Key Vault. Если этот шаг проверки завершился неудачей, проверьте свойства Key Vault и убедитесь, что сертификат и пароль введены правильно.
  7. Когда увидите оповещение Проверка пройдена, щелкните Создать.

Это приведет к запуску процесса создания кластера WLS и его интерфейсного Шлюза приложений, что может занять около 15 минут. После завершения развертывания выберите Перейти к группе ресурсов. В списке ресурсов группы ресурсов выберите myAppGateway.

Последний вариант предоставления TLS/SSL-сертификата для Шлюза приложений подробно описан в следующем разделе. Если выбранный вариант вам подходит, можно перейти к разделу Продолжение развертывания.

Вариант 3. Создание самозаверяющего сертификата

Этот вариант подходит только для тестовых развертываний и развертываний разработки. При использовании этого варианта Azure Key Vault и самозаверяющий сертификат создаются автоматически и предоставляется сертификат для Шлюза приложений.

Чтобы отправить развертыванию запрос на выполнение этих действий, сделайте следующее:

  1. В разделе Azure Application Gateway (Шлюз приложений Azure) выберите Generate a self-signed certificate (Создать самозаверяющий сертификат).
  2. Выберите управляемое удостоверение, назначаемое пользователем. Это действие необходимо для того, чтобы позволить развертыванию создавать Azure Key Vault и сертификат.
  3. Если у вас еще нет управляемого удостоверения, назначаемого пользователем, выберите Добавить, чтобы начать процесс его создания.
  4. Чтобы создать управляемое удостоверение, назначаемое пользователем, выполните действия, описанные в разделе Создание управляемого удостоверения, назначаемого пользователем статьи Создание, получение списка, удаление ролей и их назначение для управляемого удостоверения, назначаемого пользователем, с помощью портала Azure. Выбрав управляемое удостоверение, назначенное пользователем, убедитесь, что рядом с ним установлен флажок.

Azure portal screenshot showing fields for generating a self-signed certificate.

Продолжение развертывания

Теперь вы можете продолжить работу с другими аспектами развертывания WLS, как описано в документации Oracle.

Проверка успешного развертывания WLS и Шлюза приложений

В этом разделе описана методика быстрой проверки успешного развертывания кластера WLS и Шлюза приложений.

Если вы выбрали Перейти к группе ресурсов, а затем myAppGateway в конце предыдущего раздела, вы увидите страницу обзора для Шлюза приложений. Если этого не произошло, эту страницу можно найти, введя myAppGateway в текстовом поле в верхней части портала Azure и выбрав нужное в результатах. Выберите нужную группу ресурсов, созданную для кластера WLS. Затем сделайте следующее.

  1. В левой области страницы обзора для ресурса myAppGateway прокрутите вниз до раздела Наблюдение и выберите Оценка работоспособности серверной части.
  2. После того как сообщение загрузки исчезнет, в центре экрана появится таблица с узлами вашего кластера, настроенными как узлы в серверном пуле.
  3. Убедитесь, что в поле состояния отображается Работоспособно для каждого узла.

Очистка ресурсов

Если вы не собираетесь использовать кластер WLS в дальнейшем, удалите Key Vault и кластер WLS, выполнив приведенные ниже действия.

  1. Посетите страницу обзора myAppGateway, как показано в предыдущем разделе.
  2. В верхней части страницы под текстом Группа ресурсов выберите группу ресурсов.
  3. Выберите команду Удалить группу ресурсов.
  4. Фокус ввода установится в поле с меткой TYPE THE RESOURCE GROUP NAME (ВВЕДИТЕ ИМЯ ГРУППЫ РЕСУРСОВ). Введите соответствующее имя группы ресурсов.
  5. После этого кнопка Удалить станет доступной. Нажмите кнопку Удалить. Эта операция займет некоторое время, но вы можете перейти к следующему шагу во время удаления.
  6. Найдите Key Vault, выполнив первый шаг из раздела Сохранение TLS/SSL-сертификата в Key Vault.
  7. Выберите команду Удалить.
  8. В появившейся области выберите Удалить.

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

Продолжайте изучать параметры для запуска WLS в Azure.