Общие сведения

В этом разделе перечислены возможные подходы и рекомендации к обеспечению отказоустойчивости и масштабируемости модулей Продукта.

Если для реализации отказоустойчивого решения использовано стороннее программное обеспечение, то за техническими деталями следует обращаться к документации на это программное обеспечение.

Разделение контуров

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

Работоспособность одного контура не должна влиять на работоспособность других.

Распределение компонентов

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

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

Docker и Kubernetes

Одним из вариантов поставки модулей Продукта являются Docker-образы компонентов. Гипервизор Docker является фактическим стандартом для контейнеризации приложений и позволяет использовать ресурсы сервера эффективней, чем при развертывании на отдельных виртуальных или физических машинах.

Docker может использоваться вместе с системой оркестровки Kubernetes.

Kubernetes позволяет:

  • автоматизировать развертывание компонентов;

  • обеспечить маршрутизацию для доступа к компонентам;

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

Windows Server Failover Clustering

При необходимости использования Windows-платформы можно воспользоваться функционалом создания failover cluster на базе машин с Windows Server.

База данных

Продукт поддерживает работу с PostgreSql и Microsoft Sql Server.

Для обеспечения доступности сервера баз данных и сохранности данных рекомендуется использовать штатные средства кластеризации, репликации и резервного копирования выбранной СУБД.

Примечание

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

Ограничения при работе с базой данных

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

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

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

Производительность рабочих процессов может снижаться из-за:

  • ограничений внешних сервисов (операторов ЭДО, EDI-провайдеров, архивов и т.д.);

  • ограничений аппаратных ресурсов (количества процессоров, пропускной способности сетевой и дисковой подсистем).

Это ограничение не распространяется на другие компоненты модулей (API, Dashboard, порталы). Для них может существовать несколько активных экземпляров.