Настройка Cyclos кластера на базе Jelastic Platform-as-Infrastructure

в 8:57, , рубрики: высокая доступность, кластеризация, репликация базы данных

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

Недавно Cyclos выпустили новую четвертую версию своего продукта, а Jelastic предоставил возможность установить её в один клик. Это можно сделать через сайт Cyclos (для этого требуется регистрация) или используя JPS виджет на нашей странице Marketplace.
jelastic and cyclos
Также вы можете установить Cyclos вручную, используя кастомные настройки, необходимые для ваших потребностей. На платформе Jelastic Cyclos можно запустить с помощью таких серверов, как Tomcat, Jetty и Glassfish. В качестве базы данных для Cyclos 4 подходит PostgreSQL (не ниже 9.3 версии). Минимальный необходимый объем памяти для запуска одного Cyclos сервера — 500 MБ (т.е. вам потребуется не менее 4 клаудлетов).

В этой инструкции мы покажем, как настроить высоконадежный и масштабируемый кластер приложения Cyclos с репликацией баз данных и высокой доступностью при помощи облачного хостинга Jelastic.
cluster scheme
Высокая доступность помогает избежать различных проблем (например, с проведением транзакций), которые могут повлиять на ваших пользователей. Установка приложения на нескольких серверах обеспечивает резервирование, т.е. если один из серверов откажет, его пользователи будут автоматически перенаправлены на другой сервер кластера Tomcat. Все сессии отказавшего сервера будут доступны и на втором сервере благодаря репликации, поэтому пользователи не заметят никаких изменений.

Кроме того, репликация главной и подчиненной PostgreSQL баз улучшает производительность и отказоустойчивость вашего окружения.

Создание окружения Jelastic

Прежде всего, нужно подготовить основу для нашего кластера с приложением — окружение со всеми необходимыми контейнерами.

1. Зарегистрируйтесь в Jelastic (если вы не сделали этого ранее) или войдите в вашу учетную запись Jelastic.

2. Нажмите кнопку Создать окружение и выберите:

  • Tomcat 7 в качестве сервера приложений
  • PostgreSQL 9.3 в качестве базы данных

Обратите внимание, что версия базы данных PostgreSQL должна быть не ниже 9.3.

create cyclos environment

Выставьте лимиты ресурсов по каждому контейнеру. Затем введите имя для вашего окружения, например, cyclos, и нажмите Создать.
Всего через минуту окружение будет создано.

environment listed

Разворачивание Cyclos

Теперь всё готово для разворачивания приложения Cyclos.

1. Чтобы скачать архив с приложением, пройдите на веб-сайт Cyclos и зарегистрируйтесь (если Вы не сделали этого ранее).

download cyclos
register at cyclos site

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

Обратите внимание, что Вы также можете использовать кнопку Jelastic one-click install, чтобы автоматически установить Cyclos. Для настройки кластерного решения рекомендуется устанавливать Cyclos вручную.

cyclos one-click install

3. Извлеките файлы из .zip архива, который только что скачали.

cyclos archive

4. Создайте .WAR файл из содержимого папки web (cyclos-4.0.1/web/).

Просто запакуйте содержимое этой папки в другой zip архив, например, cyclos_4.zip, и измените его название на cyclos_4.war (либо на любое другое с расширением .war).

5. Загрузите Cyclos war файл в Диспетчер дистрибутивов.

upload cyclos archive

6. Затем разверните его в только что созданное окружение.

deploy cyclos application

Настройка репликации БД

Теперь можно приступать к настройке репликации баз данных, чтобы защитить приложение от простоя или потери данных.

PostgreSQL в окружении с развернутым Cyclos будет использоваться как главная база данных. Для подчиненной базы необходимо создать отдельное окружение.

Перейдите к панели управления Jelastic и создайте окружение с PostgreSQL нодой, которая будет использоваться в качестве подчиненной базы данных. Задайте имя окружения (например, cyclos-slave) и нажмите Создать.

slave cyclos database

Настройка главной БД

1. В окружении с главной базой данных (с развернутым Cyclos приложением) нажмите кнопку Конфигурация возле PostgreSQL сервера.

2. Откройте conf > postgresql.conf файл. Измените следующие настройки для включения потоковой репликации:

listen_address = '*'
wal_level = hot_standby
max_wal_senders = 10

postgresql master db

4. Затем откройте конфигурационный файл pg_hba.conf, который находится в этой же папке (conf).

5. Установите связь с подчиненной базой данных, указав следующие параметры:

host replication all {standby_ip_address}/32 trust

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

postgresql master-slave configuration

6. Перезапустите сервер базы данных для применения настроек.

Настройка подчиненной БД

Перейдите к окружению с подчиненной базой данных в списке окружений.

1. Нажмите кнопку Конфигурация возле подчиненной базы данных PostgreSQL.

2. В папке conf создайте новый файл recovery.conf со следующими настройками:

standby_mode = 'on'
primary_conninfo = 'host={master_ip_address} user=webadmin password={master_password}'

Используйте внутренний IP адрес главной базы для обозначения host. Значения параметров user и password можно найти в электронном письме, которое вы получили при создании окружения с главной PostgreSQL базой.

slave recovery

3. Перезапустите сервер базы данных, чтобы изменения вступили в силу.

После настройки обеих баз данных, войдите в панель администрирования главной базы (в составе окружения cyclos) и создайте новую базу:

  • введите имя для базы данных (например, cyclos4)
  • выберите template0 шаблон и UTF8 кодировку в выпадающих списках
  • нажмите Создать

create postgresql database

В результате, вы получите новую базу данных, которая будет также среплицированна на подчиненную.

master postgresql database

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

Настройка Cyclos

Теперь нужно выполнить последние шаги конфигурации приложения Cyclos и завершить полную настройку кластера, включив Высокую Доступность.

1. Откройте панель управления Jelastic и нажмите кнопку Конфигурация для сервера Tomcat.

configure tomcat

2. Перейдите в папку webapps/ROOT/WEB-INF/classes и создайте файл cyclos.properties.

3. Скопируйте содержимое файла cyclos-release.properties в папке class и вставьте его в новосозданный файл cyclos.properties.

4. В открытом cyclos.properties файле укажите данные вашей базы данных PostgreSQL:

  • в параметре cyclos.datasource.jdbcUrl укажите хост главной базы с именем базы данных, созданной во время настройки БД:

jdbc:postgresql://postgres-{env_name}.{hoster_domain}/{db_name}

  • учетные данные к базе, полученные в электронном письме

database credentials

Сохраните сделанные изменения и Перезапустите Tomcat.

5. Наконец, давайте настроим сам кластер. Нажмите кнопку Изменить топологию окружения возле Cyclos окружения.

change environment topology

В открывшемся диалоговом окне включите Высокую Доступность. Установите количество ресурсов для автоматически добавленного NGINX-балансировщика (он будет обрабатывать и распределять все запросы в кластере).

cyclos high availability

6. Нажмите Открыть в браузере и можете приступать к работе.

open cyclos

Обратите внимание, что первое открытие приложения Cyclos может занять несколько минут, пожалуйста, будьте терпеливы.

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

cyclos credentials

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

Автор: jelastic

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js