Высокая доступность и надёжность для приложений на платформе OpenEdge
Наличие высокодоступного и отказоустойчивого приложения, использующего OpenEdge, требует наличия нескольких компонентов в архитектуре, возможности масштабирования в соответствии с изменяющимися требованиями и нагрузками, а также наличия реплицированных наборов компонентов при сбое частей приложения.
Этот тип репликации компонентов и масштабируемости лучше всего работает в облачной или виртуальной среде, где эти инструменты широко распространены и хорошо поддерживаются. Однако это также может быть достигнуто и на внутреннем оборудовании.
Существует несколько обязательных компонентов:
- Балансировщик нагрузки — сторонний продукт, включающий проверку работоспособности компонентов и функции масштабирования.
- Сервер приложений для OpenEdge (он же PASOE).
- Репликация базы данных OpenEdge.
Балансировщик нагрузки
Полноценный балансировщик нагрузки является обязательным компонентом любой высокодоступной и отказоустойчивой системы. Это не продукт OpenEdge, поэтому выбор подходящего балансировщика нагрузки с необходимыми функциями имеет решающее значение.
Существует несколько функций балансировки нагрузки, которые можно использовать:
- Перенаправление клиентских запросов на несколько экземпляров PASOE. Позволяет распределить рабочую нагрузку на несколько экземпляров, быстро восстановиться после сбоя экземпляров PASOE — запустить новую виртуальную машину или сервер для автоматической регистрации в балансировщике нагрузки. Позволяет обновлять приложение без перерыва в работе пользователей — создать новый экземпляр PASOE с новым кодом, добавить его в балансировщик нагрузки, удалить старый экземпляр PASOE со старым кодом.
- Проверка работоспособности балансировщика нагрузки. Позволяет балансировщику нагрузки проверять работоспособность экземпляра PASOE, удаляет все экземпляры, не прошедшие проверку работоспособности. Использование HealthScanner начиная с версии 12.0 может помочь удалить экземпляр «до того, как» он выйдет из строя.
- Автоматическое масштабирование экземпляров с балансировкой нагрузки. Позволяет увеличивать или уменьшать количество экземпляров PASOE в зависимости от нагрузки (или других показателей). Запуск экземпляра наименьшего размера во время низкой пиковой нагрузки, запуск дополнительных экземпляров для покрытия пиковых нагрузок, остановка лишних экземпляров после пиковых нагрузок.
Экземпляры PASOE
PASOE разработан специально для работы в интернете, в облаке и для обеспечения высокой доступности. Экземпляры PASOE автономны, просты в развёртывании и доступны через HTTP. Это делает PASOE идеальным решением для использования в архитектурах с балансировкой нагрузки.
Экземпляры PASOE могут запускать одно или несколько приложений, что позволяет одному или нескольким приложениям использовать все ресурсы компьютера и защищает другие приложения от негативного влияния на производительность.
Один экземпляр PASOE может содержать множество приложений, что упрощает развёртывание и управление. При этом предоставляются отдельные PROPATH, параметры подключения к базам данных и конфигурации безопасности.
Поскольку PASOE является автономным, создание экземпляров и обновление с помощью балансировщика нагрузки легко управлять.
Это также может помочь при сбое базы данных и переключении на реплицированную базу данных. Наличие экземпляра PASOE, готового к развёртыванию с новыми параметрами подключения к базе данных и циклическое отключение старых, сделает процесс восстановления быстрым и простым в управлении.
Подключение к базам данных через сеть
Подключение к базам данных через сеть, а не общую память, позволяет базе данных продолжать работу даже при аварийном отключении клиента, оставляя после себя заблокированные ресурсы базы данных. Это также позволяет быстро масштабировать экземпляры PASOE без необходимости создания большого сервера базы данных для выполнения дополнительной обработки.
Удаление других приложений и процессов с компьютера с базой данных позволяет избежать отрицательного влияния на производительность базы данных.
Примечание: переход на версию 12.2 повысит производительность сети при работе с базой данных.
База данных с репликацией
Использование репликации базы данных является эффективным способом обеспечения высокой доступности и отказоустойчивости приложения. В случае возникновения проблем с основной базой данных, компьютером или сетью, реплицированная база данных может быть быстро активирована.
При настройке нескольких копий реплицированных целевых баз данных (Replication Set), если основная база данных выйдет из строя, целевая база данных станет основной, при этом вторая целевая база данных продолжит функционировать.
Если используется Replication Plus, целевые базы данных могут быть использованы только для чтения, что позволяет перенести нагрузку, создаваемую отчётностью, с основной базы данных.
Мониторинг
Для обеспечения высокой доступности и отказоустойчивости приложения необходимо постоянно контролировать его работу и иметь систему оповещений о возможных проблемах.
Мониторинг среды приложения позволяет выявить возможные проблемы до их возникновения, что позволяет предотвратить жалобы клиентов на сбои и проблемы.
Мониторинг включает в себя контроль производительности и работоспособности машин, входящих в архитектуру приложения (ЦП, память, подкачка, дисковое пространство, дисковый ввод-вывод), а также анализ ошибок в системных журналах.
Сеть должна быть проверена на наличие коллизий и других проблем с производительностью, как внешних, так и внутренних.
Экземпляры PASOE должны быть проверены на наличие ошибок, утечек памяти и проблем с производительностью. Существует множество параметров мониторинга для PASOE с использованием REST API или компонентов JMX. PASOE HealthScanner может отслеживать работоспособность всего экземпляра PASOE, включая проверку работоспособности балансировщика нагрузки.
База данных должна быть проверена на производительность, производительность репликации и общее состояние. Журналы должны быть проверены на наличие ошибок и предупреждений.
OpenEdge Management может отслеживать практически все аспекты архитектуры приложения и создавать оповещения. Его можно настроить для детального мониторинга и выполнения корректирующих действий при возникновении предупреждений.
Документация по Health Scanner.
Подводя итог, можно сделать вывод, что для обеспечения высокой доступности и отказоустойчивости необходимо множество компонентов. Мониторинг приложения является критически важным, также как и наличие плана замены неисправных компонентов без потери работоспособности системы.