Skip to main content

Требования к отказоустойчивости

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

Для обеспечения отказоустойчивости при размещении ролей следует использовать разные сервера или ВМ на разных гипервизорах / серверах. Рекомендации по размещению ролей представлены в таблице.

Наименование
роли
Описание ролиОтказоустойчивость
и восстановление *
Требования к размещению
squadus_appsОбработка, приём, передача сообщений и способов их представленияНетМинимум две группы серверов роли
squadus_
microservices
Микросервисы, выполняющие следующие функции: интеграция с DLP\KSE, авторизация, работа с файловым хранилищем, нотификация, авторизации и другиеДа
(Балансировка нагрузки)
Минимум 2 сервера роли
squadus_dbХранение сообщений, комнат и другой информации (MongoDB)Да
(Кворум primary)
Минимум три сервера роли
Допускается только нечетное число серверов
squadus_freeswitchИнтеграция с телефонией (Freeswitch)Нет
squadus_haБалансировщик нагрузки (Caddy2)Да
(Active-Passive)
Минимум два сервера роли
squadus_infraМониторинг и хранение log-файлов сервисовне требуетсяне требуется
squadus_mailИнтеграция с почтойДа
(Балансировка нагрузки)
Минимум два сервера роли
squadus_mqМенеджер очередей (NATS)Да
(Кворум)
Минимум три сервера роли.
Допускается только нечетное число серверов
squadus_redisNoSQL in-memory хранилище «ключ-значение». Отвечает за хранение кешированной информацииДа
(Кворум)
Минимум три сервера роли
Допускается только нечетное число серверов
squadus_searchПоиск внутри продуктаДа
(Кворум)
Минимум три экземпляра роли
squadus_stОбъектное хранилище (MinIO)Да
(Кворум)
Минимум три экземпляра роли
squadus_meet_appsРоль ВКС. Ядро звонков Jitsi (Jitsi Meet Core)Да
(Балансировка нагрузки)
Минимум два сервера роли
squadus_meet_jibriРоль ВКС. Мост для получения потоков от пользователей (Jitsi Videobridge)Да
(Балансировка нагрузки)
Минимум два сервера роли
squadus_meet_jvbРоль ВКС. Запись встреч, стриминг на внешние площадки (Jitsi Broadcasting / Recorder)Да
(Балансировка нагрузки)
Минимум два сервера роли
squadus_meet_turnРоль ВКС. Ретранслятор подключения к jibri (TURN-сервер)не требуетсяне требуется
squadus_meet_­
vosk **
Роль ВКС. Речевая аналитика и субтитрыне требуетсяне требуется
* — примеры используемых механизмов отказоустойчивости см. таблицу.
** — роль squadus_meet_vosk не является обязательной при развертывании продукта.
* — примеры используемых механизмов отказоустойчивости см. таблицу.
** — роль squadus_meet_vosk не является обязательной при развертывании продукта.
* — примеры используемых механизмов отказоустойчивости см. таблицу.
** — роль squadus_meet_vosk не является обязательной при развертывании продукта.
* — примеры используемых механизмов отказоустойчивости см. таблицу.
** — роль squadus_meet_vosk не является обязательной при развертывании продукта.

Механизмы отказоустойчивости

Тип механизма
отказоустойчивости
Описание работыОграничения
Active-Active
(Балансировка нагрузки)
Все сервера работают одновременно. Отказоустойчивость достигается распределением нагрузки на другие сервера роли при отказе одного из серверовСуществует риск каскадного отказа роли из-за большей нагрузки на оставшиеся сервера
Active-PassiveВ активном режиме работает только один сервер. При отказе активного сервера вся нагрузка переходит на другой сервер роли, работающий в пассивном режимеЕсли отказ активного сервера связан с уровнем нагрузки, при переключении новый активный сервер может не справиться с нагрузкой
КворумКворум определяет минимальное количество участвующих серверов, которое должно быть доступно и способно взаимодействовать для того, чтобы кластер считался работоспособным и мог принимать решенияОтказоустойчивость сохраняется при работе минимального большинства доступных серверов (например 2 из 3, 4 из 7)
Кворум primaryПрием запросов, репликацию данных и принятие решений выполняет один primary сервер. При отказе primary сервера, остальные сервера проводят выборы, для назначения нового primary сервераОтказоустойчивость сохраняется при работе минимум двух серверов роли