Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Обеспечение отказоустойчивости

Материал из Платформа Эра. Документации

Система построена на базе функциональных ролей, образующих active-active hash-ring и active-passive резервирующие группы. Роли предоставляют друг другу и внешним пользователям сервисы.

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

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

При активности узла активность роли гарантируется конфигурационным супервизором, активность которого обеспечивается демонами/службами ОС.

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

  • Горячее резервирование (active-passive).
  • Параллельная доступность (active-active).
  • Микс, при котором active-passive группы разделяются по ответственности (reg,dc,store) или по загрузке (mgc,mg) на несколько одновременно действующих групп.
  • Быстрое применение изменений конфигурации.
  • Внешний сетевой контур кластера содержит только роли WS, ESG, SG, REDIRECT, и возможно RPCO, каждая из которых имеет механизмы защиты от проникновения, подбора паролей учетных записей, потери производительности от (D)DoS-атак путем использования встроенных пограничных фильтров.

Повышение доступности системы в связи с использованием хранилищ (внешние по отношению к платформе) – S3, PostgreSQL, ClickHouse, напрямую обеспечивается доступностью самих хранилищ и обеспечения повышения их доступности для системы. Так, в конфигурации системы каждое подключение к хранилищу может быть задублировано произвольным количеством альтернатив. В этом случае при недоступности подключения по первой строке подключения система осуществляет перебор остальных вариантов и останавливается на следующем доступном. Внутридоменные настройки подключения к S3 и ClickHouse также могут быть задублированы произвольным количеством.

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

Повышение доступности ролей

Роли ACTIVE-ACTIVE (B2B, MG, WS, …​)

  • добавление в конфигурацию серверов, использующих соответствующие роли (кол-во 1,3,15,…​).

Роли ACTIVE-PASSIVE (REGISTRAR, MDC, SDC, MGC, STATESTORE, …​)

  • Добавление в конфигурацию серверов, использующих соответствующие роли в резервном режиме (кол-во 1,2,3).
  • Для ролей, разделяемых по доменам. Разделение резервирующей группы на несколько резервирующих групп по ответственности за домены, с частичным или полным вынесением на отдельные серверы и образованием непересекающихся групп active-passive (registrar, mdc, sdc, statestore, …​).
  • Для роли системного объектного хранилища (store). Разделение на несколько групп с вынесением на отдельные серверы – запросы распределяются автоматически через hashring по ключам.
  • Для роли медийного контроллера (mgc). Разделение на несколько групп с вынесением на отдельные серверы – запросы распределяются автоматически через случайный выбор группы при создании медиа-контекста. Каждая группа обязана получить привязанные к ней MG, причем рационально использовать одинаковое количество MG во всех группах MGC на сайте.

Повышение доступности сервисов

Медийный процессинг

  • добавление в конфигурацию новых серверов, на которых разворачиваются новые группы MGC-MG с новыми номерами.

Внешние подключения к провайдерам

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

SIP-сигнализация

  • размножение SG, внесение в SIP-устройства дублированных адресов Outbound proxy-сервер.
  • размножение SG, DNS-маршрутизация на резервный сервер по одному и тому же адресу.
  • использование REDIRECT.

Повышение доступности при физических сбоях

Отсутствие связи между городами

  • выделение сайтов, обладающих полным внутренним функционалом и не требующих постоянной связи с другими сайтами.
  • привязка доменов к сайтам, обеспечивающая кеширование и хранение доменной информации на сайте.

(D)DoS атаки на сервер

  • размножение SG, ESG и WS с разными внешними адресами.
  • применение белых/черных списков на SG и ESG.
  • SG и ESG имеют встроенный сетевой фильтр по адресам отправителей неудавшихся аутентификаций.

Падение сайта

  • привязка домена к нескольким сайтам (резервным или параллельным), данные автоматически реплицируются.
  • настройка телефонов на перебор Outbound proxy, где участвует другой сайт.