Архитектура Dion Enterprise — вариант развертывания системы DION для локальной (on-premises) установки в контуре предприятия.
В настоящем документе представлена топология системы Dion Enterprise 2+1, а также приведены системные требования к инфраструктуре выделены в отдельную страницу требования к окружению , необходимые для успешного развертывания и функционирования платформы.
Топология Dion Enterprise 2+1 представляет собой среду, где все компоненты системы (Docker-контейнеры) размещаются на отдельных физических серверах или виртуальных машинах.

Архитектура Dion Enterprise 2+1 позволяет распределить микросервисы на отдельные виртуальные машины, расположенные в разных ЦОД для повышения производительности и отказоустойчивости.
Ниже представлены детальные схемы каждого ЦОД.

В данном ЦОД могут располагаться микросервисы Dion как в единственном экземпляре, так и нескольких.

В данном ЦОД могут располагаться микросервисы Dion как в единственном экземпляре, так и нескольких.

Данный ЦОД используется только для сервиса Dion Infra, который является свидетелем.
Сервис может быть размещён на виртуальной машине на удаленной площадке или в облаке.
Dion может быть развернут как на физических, так и на виртуальных серверах.
| Для точного подсчета системных требований исходя из планируемых нагрузок используйте калькулятор сайзинга или обратитесь к команде Dion. |
Пример конфигурации серверов для установки, такая конфигурация подходит для тестирования установки, и проведения нескольких одновременных конференций:
| # | Имя сервера | CPU | RAM GB | HDD GB | Внутренний IP | Внешний IP | Расположение | Назначение |
| 1 | dc-1-setup-vm-01 |
2 |
4 |
200 |
1 |
|
внутренний контур | сервер установки и администрирования |
| 2 | dc-1-infra-ha-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер баз данных |
| 3 | dc-1-infra-ha-02 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер баз данных |
| 4 | dc-2-infra-ha-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | сервер баз данных |
| 5 | dc-2-infra-ha-02 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | сервер баз данных |
| 6 | dc-3-infra-ha-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД3 | сервер баз данных |
| 7 | dc-1-lbd-vm-01 |
2 |
4 |
50 |
1 + 1 vip |
|
внутренний контур ЦОД1 | балансировщик нагрузки WEB |
| 8 | dc-1-lbd-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | балансировщик нагрузки WEB |
| 9 | dc-2-lbd-vm-01 |
2 |
4 |
50 |
1 + 1 vip |
|
внутренний контур ЦОД2 | балансировщик нагрузки WEB |
| 10 | dc-2-lbd-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | балансировщик нагрузки WEB |
| 11 | dc-1-lbi-vm-01 |
2 |
4 |
50 |
1 + 2 vip |
|
внутренний контур ЦОД1 | балансировщик нагрузки баз данных |
| 12 | dc-1-lbi-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | балансировщик нагрузки баз данных |
| 13 | dc-2-lbi-vm-01 |
2 |
4 |
50 |
1 + 2 vip |
|
внутренний контур ЦОД2 | балансировщик нагрузки баз данных |
| 14 | dc-2-lbi-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | балансировщик нагрузки баз данных |
| 15 | dc-1-apps-vm-01 |
2 |
8 |
100 |
1 |
|
внутренний контур ЦОД1 | сервер приложений |
| 16 | dc-2-apps-vm-01 |
2 |
8 |
100 |
1 |
|
внутренний контур ЦОД2 | сервер приложений |
| 17 | dc-1-media-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер конференций |
| 18 | dc-2-media-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | сервер конференций |
| 19 | dc-1-sipserver-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | sip-сервер |
| 20 | dc-2-sipserver-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | sip-сервер |
| 21 | dc-1-siptranslator-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | sip-сервер |
| 22 | dc-2-siptranslator-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | sip-сервер |
| 23 | dc-1-siptranscoder-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | sip-сервер |
| 24 | dc-2-siptranscoder-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | sip-сервер |
| 25 | dc-1-turn-vm-01 |
2 |
4 |
50 |
1 |
1 (NAT) |
DMZ ЦОД1 | TURN-сервер |
| 26 | dc-2-turn-vm-01 |
2 |
4 |
50 |
1 |
1 (NAT) |
DMZ ЦОД2 | TURN-сервер |
| 27 | dc-1-record-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер записи |
| 28 | dc-2-record-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | сервер записи |
| 29 | dc-1-video-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер видеопортала |
| 30 | dc-2-video-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | сервер видеопортала |
| 31 | dc-1-chats-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер чатов |
| 32 | dc-2-chats-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД2 | сервер чатов |
| 33 | dc-1-log-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер сбора логов |
| 34 | dc-1-mon-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур ЦОД1 | сервер мониторинга |
Рекомендуется использовать диски SSD.
Серверы приложений apps, media, sip, record, video, chats при необходимости можно горизонтально масштабировать или совмещать между собой в рамках одного ЦОД.
Количество участников (слушателей) в конференции ограничивается только пропускной способностью канала, исходя из расчёта от 500 кбит/с до 3 Мбит/с на пользователя, в зависимости от типа передаваемого контента (аудио, видео, демонстрация экрана).
В дальнейшем при необходимости можно добавить ресурсы по мере использования.
Для работы серверов Dion необходимо обеспечить полное сетевое взаимодействие между серверами Dion во внутреннем контуре.
Рекомендуется использовать отдельный VLAN для серверов, расположенных в одном ЦОД (кроме серверов TURN, расположенных в DMZ). Сетевые задержки между ЦОД не должны превышать 10 мс.
Ниже приведена таблица сетевых доступов за пределами внутреннего контура:
| Сервис | Источник | Назначение | Порт | Протокол | Примечания | |||
|---|---|---|---|---|---|---|---|---|
| ALL | Все серверы Dion, кроме turn-vm находящихся в DMZ | Все серверы Dion, кроме turn-vm находящихся в DMZ |
Any |
TCP\UDP |
Межсервисное взаимодействие между сервисами DION в разных ЦОД: прикладные сервисы, инфраструктурные сервисы. Автоматическое развертывание и обновление. Требуется для обеспечения отказоустойчивости. | |||
| WEB | Пользовательская подсеть (для пользователей внутри сети). |
DC1 Dion lb-vm Virtual IP DC2 Dion lb-vm Virtual IP |
443 |
TCP |
Работа клиентского приложения и web-клиента. | |||
| WEB | Внешние пользователи | DMZ Reverse Proxy |
443 |
TCP |
WEB интерфейс DION. | |||
| WEB | DMZ Reverse Proxy | DC1 Dion lb-vm Virtual IP |
443 |
TCP |
Взаимодействие внешнего прокси с балансировщиком DION. | |||
| WEB | DMZ Reverse Proxy | DC2 Dion lb-vm Virtual IP |
443 |
TCP |
Взаимодействие внешнего прокси с балансировщиком DION. | |||
| SIP | SIP Initiation ATC | dc-1-sip-vm |
5060 |
TCP\SIP UDP\SIP |
Работа SIP-вызовов. | |||
| SIP | SIP Initiation ATC | dc-2-sip-vm |
5060 |
TCP\SIP UDP\SIP |
Работа SIP-вызовов. | |||
| SIP | SIP Transport Terminals | dc-1-sip-vm |
55000 - 61500 |
UDP\RTP |
Работа SIP-вызовов. | |||
| SIP | SIP Transport Terminals | dc-2-sip-vm |
55000 - 61500 |
UDP\RTP |
Работа SIP-вызовов. | |||
| TURN | Внешние пользователи | DC1 Dion TURN внешний IP |
3478 443 |
UDP TCP |
Обмен медиатрафиком для:
|
|||
| TURN | Внешние пользователи | DC2 Dion TURN внешний IP |
3478 443 |
UDP TCP |
Обмен медиа-трафиком для:
|
|||
| MEDIA | Внутренние пользователи |
dc-1-media-vm dc-2-media-vm |
49152 - 65535 |
UDP |
Обмен медиатрафиком для внутренних пользователей. | |||
| MEDIA |
dc-1-media-vm dc-2-media-vm |
Внутренние пользователи |
49152 - 65535 |
UDP |
Обмен медиатрафиком для внутренних пользователей. | |||
| MEDIA |
dc-1-turn-vm dc-2-turn-vm |
dc-1-media-vm dc-2-media-vm |
49152 – 65535 |
UDP\SRTP |
Обмен медиатрафиком для:
|
|||
| MEDIA |
dc-1-media-vm dc-2-media-vm |
dc-1-turn-vm dc-2-turn-vm |
49152 – 65535 |
UDP\SRTP |
Обмен медиатрафиком для:
|
|||
| LOGS | log-vm |
dc-1-turn-vm dc-2-turn-vm |
9200 |
TCP |
Сбор логов. | |||
| MONITOR | monitor-vm |
dc-1-turn-vm dc-2-turn-vm |
9100 9110 9641 |
TCP |
Мониторинг системы.
|
|||
| MONITOR |
dc-1-apps-vm dc-2-apps-vm |
dc-1-turn-vm dc-2-turn-vm |
4443 |
TCP |
Распределенная система для сервис-дискавери, управления конфигурацией и проверки состояния TURN-сервисов (turnregvm). | |||
| SSH | setup-vm |
dc-1-turn-vm dc-2-turn-vm |
22 |
TCP |
Развертывание системы.
|
|||
| WEB |
dc-1-turn-vm dc-2-turn-vm |
setup-vm |
80 |
TCP |
Развертывание системы. Локальный registry.
|
|||
| WEB | setup-vm | registry.onprem.dion.vc |
443 |
TCP |
Развертывание системы.
|
|||
| WEB | все серверы Dion | репозиторий операционной системы |
443 |
TCP |
Установка пакетов и зависимостей. | |||
| WEB | все серверы Dion | репозиторий Docker |
443 |
TCP |
Установка Docker из репозитория. Требуется только для DEB ОС (Ubuntu, Debian). | |||
| PUSH | chat-vm |
80.85.252.1 80.85.252.4 185.247.192.101 185.247.192.104 185.228.50.78 185.228.50.79 185.65.148.105 185.65.148.145 |
443 |
TCP |
Интеграция с облаком dion.vc , работа push-уведомлений.
|
|||
| DNS | Все серверы Dion | Внутренний DNS сервер |
53 |
UDP |
DNS необходим для работы DION.
|
|||
| SMTP |
dc-1-apps-vm dc-2-apps-vm |
Почтовый сервер |
25 |
TCP |
Интеграция с почтовой системой (опционально).
|
|||
| SSO |
dc-1-apps-vm dc-2-apps-vm |
Провайдер аутентификации (SAML SSO) |
443 |
TCP |
Интеграция SSO (опционально).
|
|||
| SSO | Провайдер аутентификации (SAML SSO) |
DC1 Dion lb-vm Virtual IP DC2 Dion lb-vm Virtual IP |
443 |
TCP |
Интеграция SSO (опционально).
|
|||
| LDAP |
dc-1-apps-vm dc-2-apps-vm |
LDAP сервер (контроллер домена AD) |
389 |
TCP |
Интеграция LDAP AD connector (опционально). |
|||
Для взаимодействия Dion с внешними пользователями рекомендуется использовать обратный прокси (Reverse Proxy), расположенный в DMZ.
| Обратный прокси не входит в поставку ПО Dion. |
Требования:
X-Forwarded-For для корректного определения исходного IP-адреса клиента приложением.
Для работы Dion требуется SSL-сертификат. Требования к сертификату описаны на странице Требования к SSL сертификату
Для работы Dion требуется создать DNS-записи. Список записей предоставлен на странице Таблица DNS записей.
| ВНИМАНИЕ: Использование файла hosts вместо DNS-сервера не поддерживается. |
В топологии Dion Enterprise 2+1 (High Availability) все DNS-записи разрешаются в виртуальный IP Dion LB-VM. При этом всю нагрузку несет только один сервер Dion-LB, на котором находится виртуальный IP.
Чтобы распределить нагрузку между двумя серверами Dion-LB можно использовать технологию GSLB.
DNS-сервер с поддержкой GSLB должен отдавать поочередно (round-robin) IP-адреса серверов dion-lb-vm01 и dion-lb-vm02.
Определение доступности сервисов: Для обеспечения высокой доступности сервисов используется мониторинг состояния серверов приложений. В случае недоступности сервиса, он автоматически исключается из балансировки, что позволяет сохранить стабильную работу системы.
Рекомендуемые параметры:
| Балансируемый порт | Тип проверки | Код ответа | Ответ | URL для проверки работоспособности сервиса | Интервал проверки | Количество неудачных попыток для вывода сервера в DOWN | Количество удачных попыток для возвращения сервера в UP |
|---|---|---|---|---|---|---|---|
| 443 | SSL | 200 | ItsOk | https://VIP_lbd/wfhlthch/getstatus | 10 сек | 3 | 3 |
Дополнительные возможности:
Приоритизация трафика для ЦОД: Для всех сервисов применяется режим GSLB (Global Server Load Balancing), что позволяет DNS-записям разрешаться в IP-адреса каждого ЦОД. Балансировщик нагрузки динамически определяет наилучший путь для трафика, направляя запросы на ближайший ЦОД, обеспечивая минимальные задержки и оптимальное распределение нагрузки.
| Приоритизация трафика для ЦОД позволяет более гибко масштабировать систему с несколькими ЦОД, обеспечивая распределение нагрузки и минимизацию задержек при использовании глобальной балансировки. |
GSLB без замыкания трафика на балансировщик: Балансировка нагрузки осуществляется только на уровне DNS. В этом режиме трафик направляется напрямую на балансировщик DION или apps-vm, а в DNS автоматически добавляются и исключаются IP-адреса серверов приложений в зависимости от их доступности.
| Балансировка только на уровне DNS не учитывает реальную загрузку серверов в момент запроса, что может привести к неравномерному распределению трафика и имеет ряд минусов. |
Список поддерживаемых клиентов доступен на странице Поддерживаемые клиенты.