Высокая доступность и отказоустойчивость для приложений OpenEdge
Наличие высокодоступного и отказоустойчивого приложения, использующего OpenEdge – это вопрос наличия нескольких компонентов в вашей архитектуре, возможности масштабирования в соответствии с изменяющимися требованиями и нагрузками, а также наличия реплицированных наборов компонентов при сбое частей приложения.
Этот тип репликации компонентов и возможностей масштабирования лучше всего работает в облачной или виртуальной среде, где эти инструменты широко распространены и хорошо поддерживаются. Но это может быть достигнуто и на внутреннем оборудовании.
Есть несколько обязательных компонентов:
- Балансировщик нагрузки – сторонний продукт:
- включая проверку работоспособности компонентов;
- включая функции масштабирования.
- Сервер приложений для OpenEdge (он же PASOE).
- Репликация базы данных OpenEdge (и, возможно, Replication Plus).
- Система мониторинга – может быть OpenEdge Management или сторонний инструмент.
Эта статья объясняет необходимые компоненты, почему и как их следует использовать. Описанное здесь может отличаться от различных архитектур для высокодоступных и отказоустойчивых приложений.
Балансировщик нагрузки
Полнофункциональный балансировщик нагрузки является обязательной частью любой высокодоступной и отказоустойчивой среды. Это не продукт OpenEdge , поэтому поиск правильного балансировщика нагрузки с необходимыми функциями будет иметь решающее значение. Для тестирования мы использовали Amazon Web Services (AWS), Elastic Load Balancer (ELB) с возможностями автомасштабирования .
Существует несколько функций балансировки нагрузки, которые можно использовать:
Перенаправление клиентских запросов на несколько экземпляров PASOE
- Позволяет распределить рабочую нагрузку на несколько экземпляров
- Позволяет быстро восстановиться после сбоя экземпляров PASOE:
- Стартуйте новую виртуальную машину или сервер, для автоматической регистрации в балансировщике нагрузки.
- Позволяет обновлять приложение без перерыва:
- создайте новый экземпляр PASOE с новым кодом;
- добавьте его в балансировщик нагрузки;
- удалите старый экземпляр PASOE со старым кодом.
Проверка работоспособности балансировщика нагрузки
- Позволяет балансировщику нагрузки проверять работоспособность экземпляра PASOE.
- Удаляет все экземпляры, не прошедшие проверку работоспособности:
- использование HealthScanner начиная с версии 12.0 может помочь удалить экземпляр «до того, как» он выйдет из строя.
Автомасштабирование экземпляров с балансировкой нагрузки
- Позволяет увеличивать или уменьшать количество экземпляров PASOE в зависимости от нагрузки (или других показателей):
- старт экземпляр наименьшего размера во время низкой пиковой нагрузки;
- старт дополнительных экземпляров для покрытия пиковых нагрузок;
- остановка лишних экземпляров после пиковых нагрузок.
Экземпляры PASOE
PASOE был разработан специально для работы в Интернете, в Облаке и для обеспечения высокой доступности. Экземпляры PASOE автономны, просты в развёртывании и доступны через HTTP. Это означает, что PASOE идеально подходит для работы в архитектурах с балансировкой нагрузки.
Экземпляры PASOE могут запускать одно или несколько приложений, что: позволяет одному или нескольким приложениям использовать все ресурсы компьютера; защищает другие приложения от негативного влияния на производительность вашего экземпляра PASOE.
Один экземпляр PASOE может содержать множество приложений, что упрощает развёртывание и управление, при этом предоставляя отдельные PROPATH, параметры подключения к базе(ам) данных и конфигурации безопасности.
Поскольку PASOE является автономным, созданием экземпляров и обновлением с помощью балансировщика нагрузки очень легко управлять.
Это также может помочь при сбое базы данных и переключении на базу данных репликации. Опять же, наличие экземпляра PASOE, готового к развёртыванию с новыми параметрами подключения к базе данных, и циклическое отключение старых сделало бы процесс восстановления очень быстрым и простым в управлении.
Подключение к базам данных через Сеть (а не общую память)
Позволяет базе данных продолжать работу, даже если какой-либо клиент отключается, оставляя локировки или ресурсы базы данных.
Это также позволяет быстро масштабировать экземпляры PASOE без необходимости создавать большой сервер базы данных для выполнения дополнительной обработки.
Удаляет другие приложения и процессы с компьютера с базой данных, чтобы они не оказывали отрицательного влияния на производительность базы данных.
Примечание: переход на 12.2 должен повысить производительность вашей сети при работе с базой данных.
База данных с репликацией
Использование репликации базы данных – это лучший способ сделать ваше приложение высокодоступным и отказоустойчивым. Если по какой-либо причине ваша производственная база данных, компьютер с базой данных или сеть становятся недоступными, вы можете быстро перейти к реплицированной базе данных.
При запуске нескольких копий реплицированных целевых баз данных, если исходная база данных выйдет из строя, целевая база данных превратится в исходную, и при этом вторая целевая база данных по-прежнему будет существовать.
Если у вас есть Replication Plus, то вы можете использовать целевые базы данных в качестве баз данных ТОЛЬКО ДЛЯ ЧТЕНИЯ, перенеся нагрузку, которую создаёт отчётность, с исходной базы данных.
Мониторинг
Чтобы иметь действительно высокодоступное и отказоустойчивое приложение, вы должны постоянно контролировать и иметь систему оповещений, если проблемы могут быть неизбежны.
Мониторинг среды вашего приложения позволяет увидеть возможные проблемы до того, как они произойдут, в противном случае вы будете реагировать на жалобы клиентов на проблемы и сбои, а не действовать упреждающе.
Мониторинг включает в себя машины в архитектуре вашего приложения. Машины должны контролироваться на предмет производительности и работоспособности (ЦП, память, подкачка, дисковое пространство, дисковый ввод-вывод) и ошибок в системных журналах.
Сеть должна отслеживаться на предмет коллизий и других проблем с производительностью не только снаружи, но и между машинами внутри.
Экземпляры PASOE следует отслеживать на наличие ошибок, утечек памяти и производительности. Существует множество значений мониторинга для PASOE с использованием REST API или компонентов JMX. PASOE HealthScanner может отслеживать работоспособность всего экземпляра PASOE, в том числе в связке с проверкой работоспособности балансировщика нагрузки.
Базу данных следует отслеживать на предмет производительности, производительности репликации и общего состояния. Журналы должны отслеживаться на наличие ошибок и предупреждений.
OpenEdge Management может отслеживать практически каждый аспект архитектуры вашего приложения и создавать оповещения. Его можно настроить для детального мониторинга и выполнения корректирующих действий при появлении предупреждений.
Документация по Health Scanner.
Резюме
Таким образом, для обеспечения высокой доступности и отказоустойчивости требуется множество компонентов. Жизненно важный мониторинг. План по замене неисправных компонентов без простоев. Процесс обновления приложения. Наконец, в OpenEdge есть много функций , которые помогут обеспечить высокую доступность, и с выходом каждой версии улучшаются существующие и появляются новые.