Share via


Кластер Weblogic в облаке Microsoft Azure

Кластер Weblogic в облаке Microsoft Azure В 2013 году компаниями Microsoft и Oracle было заключено соглашение, основная радость и достоинства которого для конечных разработчиков и инфраструктурных спецов была в том, что с момента заключения этого соглашения стало возможным запускать софт Oracle на Windows Server Hyper-V и в облаке Microsoft Azure с официальной поддержкой с двух сторон – как со стороны Microsoft, таки со стороны Oracle. При этом одним из ключевых, на мой взгляд, моментов является возможность переиспользования уже купленной лицензией по принципу мобильности. Есть лицензия? Добро пожаловаться, мы вам рады в облаке. Поскольку я сам долгое время занимался Java и ходил вокруг да около Oracle (да и сейчас случается), я решил посмотреть, как это работает, и развернуть кластер Weblogic. Работает это, как оказалось, хорошо, и пока что не было никаких поводов идти в техподдержку. В статье посмотрим, как уже на работающей в облаке инфраструктуре Oracle Weblogic поуправлять этим самым кластером, масштабировать его нашими средствами и походим вокруг темы балансировки нагрузки. Что предлагается? Итак, в рамках соглашения конечным пользователям предлагается популярный софт и конфигурации Oracle в лицах Java, Oracle DB и Oracle Weblogic Server в виде уже настроенных образов виртуальных машин. Лично Oracle предоставляет образы Oracle Linux, и, если вам таковой очень необходим, его также можно развернуть из хранилища образов. Все это, в особенности Java, лицензируется и поддерживается, поэтому проблем с «я пытаюсь сделать это, но в техподдержке говорят, что мы не поддерживаем» возникнуть не должно. Концепция развернутого решенияУ меня развернута простенькая инфраструктура в виде:

  • Виртуальной машины wlsadmin – это у нас хеднод Weblogic с Administration Server с открытым портом 47001 (для коммуникаций с нодами кластера).
  • Машины wlsnode1, wlsnode2 и wlsnode3 – Managed Servers внутри кластера Weblogic. У нодов открыт порт 80, с настроенной балансировкой нагрузки. Если один нод упадет, то балансировщик нагрузки Microsoft Azure уберет его из ротации и перенаправит трафик на другие ноды. Также Weblogic делает и свою балансировку.
  • Cloud Service (контейнер в терминах Microsoft Azure, если не углубляться в подробности), внутри которого сгруппированы все виртуальные машины, перечисленные выше. Все машины, сгруппированные в CS, имеют один внешний IP-адрес, в чем и заключается соль балансировки – клиенты приходят на балансировщик нагрузки, и уже потом расходятся по серверам кластера.
  • Аккаунт хранилища mydemo [ guid ] – здесь хранятся все VHD виртуальных машин
  • VHD -образ Windows Server 2012, который будет использоваться для тиражирования дополнительных нодов в кластер
  • Виртуальная сеть – абстракция над железной сетью, Weblogic-Network-albe, внутри этой виртуальной сети лежат все виртуальные машины, им раздаются IP из одной подсети
  • Affinity Group. AG используются для оптимизации производительности путем размещения объектов как можно ближе внутри датацентра.

Как уже упоминалось, все машины расположены внутри одного контейнера (Cloud Service) и имеют один внешний IP-адрес и доменное имя. По этому IP прежде всего будет доступен сервер-хеднод.

Сейчас все ноды остановлены, однако открыты для коммуникаций с хеднодом. Запустим кластер.

Кластер заработал. У меня на этом кластере развернуто приложение, которое рапортует, какой нод обслуживает запрос.

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

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

На дэшборде виртуальной машины с некоторой задержкой показываются данные по производительности – загрузка CPU, I/O, сеть и так далее. После перезагрузки и изменения размера виртуальной машины запустим сервер на портале Weblogic. Теперь давайте добавим совершенно новый нод в кластер. В Weblogic 12.1.2 добавили динамические кластеры, что отлично ложится на наш сценарий кластера в облаке – можно динамически добавлять новые ноды. Создадим виртуальную машину из образа Oracle WebLogic Server 12c Standard Edition.

В процессе необходимо добавить создаваемую виртуальную машину в уже существующий Cloud Service, в котором разместился кластер Weblogic.

Все остальные параметры подтянутся автоматически – виртуальная сеть, подсеть.

Вот, в принципе, и все – дальше надо добавить машину с доменным именем (можно просто как wlsnode5 без IP – так как виртуальные машины в одном Cloud Service, они видят друг друга сразу и без проблем) и привязать ее к серверу, который мы добавили только что, и стартовать сервер для того, чтобы он встал в кластер.