Эта статья относится к устаревшей версии Dion on-premise 2024.05
Документация по актуальной версии Dion on-premise 2024.10 доступна по ссылке.
Архитектура Dion Standard — вариант развертывания системы DION для локальной (on-premises) установки в контуре предприятия.
В настоящем документе представлена топология системы Dion Standard, а также приведены системные требования к инфраструктуре, необходимые для успешного развертывания и функционирования платформы.
Топология Dion Standard представляет собой среду, где все компоненты системы (docker контейнеры) размещаются на отдельных физических серверах или виртуальных машинах. Такой подход обеспечивает высокую производительность и отказоустойчивость.
Dion может быть развернут как на физических, так и на виртуальных серверах.
Для точного подсчета системных требований исходя из планируемых нагрузок используйте калькулятор сайзинга или обратитесь к команде Dion.
Минимальные системные требования для установки:
# | Имя сервера | CPU | RAM GB | HDD GB | Внутренний IP | Внешний IP | Расположение | Назначение |
1 | setup-vm |
2 |
4 |
200 |
1 |
|
внутренний контур | сервер установки и администрирования |
2 | infra-ha-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер баз данных |
3 | infra-ha-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер баз данных |
4 | infra-ha-03 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер баз данных |
5 | infra-ha-04 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер баз данных |
6 | lb-vm-01 |
2 |
4 |
50 |
1 + 1 vip |
|
внутренний контур | балансировщик нагрузки WEB |
7 | lb-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | балансировщик нагрузки WEB |
8 | lbi-vm-01 |
2 |
4 |
50 |
1 + 1 vip |
|
внутренний контур | балансировщик нагрузки баз данных |
9 | lbi-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | балансировщик нагрузки баз данных |
10 | lbg-vm-01 |
2 |
4 |
50 |
1 + 1 vip |
|
внутренний контур | балансировщик нагрузки GRPC |
11 | lbg-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | балансировщик нагрузки GRPC |
12 | apps-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер приложений |
13 | apps-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер приложений |
14 | media-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер конференций |
15 | media-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер конференций |
16 | sip-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | sip сервер |
17 | sip-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | sip сервер |
18 | siptranslator-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | sip сервер |
19 | siptranslator-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | sip сервер |
20 | siptranscoder-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | sip сервер |
21 | siptranscoder-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | sip сервер |
22 | turn-vm-01 |
2 |
4 |
50 |
1 |
1 (NAT) |
DMZ | TURN сервер |
23 | turn-vm-02 |
2 |
4 |
50 |
1 |
1 (NAT) |
DMZ | TURN сервер |
24 | record-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер записи |
25 | record-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер записи |
26 | video-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер видеопортала |
27 | video-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер видеопортала |
28 | chats-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер чатов |
29 | chats-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер чатов |
30 | log-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер сбора логов |
31 | mon-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер мониторинга |
Рекомендуется использовать SSD диски.
Серверы приложений apps, media, sip, record, video, chats при необходимости можно горизонтально масштабировать или совмещать между собой.
Серверы балансировки lbi, lbg можно совмещать между собой.
Количество участников (слушателей) в конференции ограничивается только пропускной способностью канала из расчета от 500 Kbit/s до 3 Mbit/s на пользователя, в зависимости от контента.
В дальнейшем при необходимости можно добавить ресурсы по мере использования.
Для работы серверов Dion необходимо обеспечить полное сетевое взаимодействие между серверами Dion во внутреннем контуре.
Рекомендуется использовать отдельный VLAN для серверов, расположенных в одном ЦОД (кроме серверов TURN, расположенных в DMZ). Сетевые задержки между серверами во внутреннем контуре не должны превышать 10 мс.
Ниже приведена таблица сетевых доступов за пределами внутреннего контура:
Сервис | Источник | Назначение | Порт | Протокол | Примечания | |||
---|---|---|---|---|---|---|---|---|
WEB | Пользовательская подсеть (для пользователей внутри сети). | Dion lb-vm Virtual IP | 443 | TCP | Работа клиентского приложения и web-клиента. | |||
WEB | Внешние пользователи | DMZ Reverse Proxy | 443 | TCP | WEB интерфейс DION. | |||
WEB | DMZ Reverse Proxy | Dion lb-vm Virtual IP | 443 | TCP | Взаимодействие внешнего прокси с балансировщиком DION. | |||
SIP | SIP Initiation ATC | sip-vm | 5060 |
TCP\SIP UDP\SIP |
Работа SIP вызовов. | |||
SIP | SIP Transport Terminals | sip-vm | 55000 - 61500 | UDP\RTP | Работа SIP вызовов. | |||
TURN | Внешние пользователи | Dion TURN внешний IP | 3478 | UDP |
Обмен медиа-трафиком для:
|
|||
MEDIA | Внутренние пользователи | Медиа серверы | 49152 - 65535 | UDP | Обмен медиа-трафиком для внутренних пользователей. | |||
MEDIA | Медиа серверы | Внутренние пользователи | 49152 - 65535 | UDP | Обмен медиа-трафиком для внутренних пользователей. | |||
MEDIA | turn-vm | media-vm | 49152 – 65535 | UDP\SRTP |
Обмен медиа-трафиком для:
|
|||
MEDIA | media-vm | turn-vm | 49152 – 65535 | UDP\SRTP |
Обмен медиа-трафиком для:
|
|||
LOGS | log-vm | turn-vm | 9200 | TCP | Сбор логов. | |||
MONITOR | monitor-vm | turn-vm |
9100 9110 9641 |
TCP | Мониторинг системы. | |||
SSH | setup-vm | turn-vm | 22 | TCP | Развертывание системы. | |||
WEB | 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.104 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 сервисов. | |||
SMTP | apps-vm | Почтовый сервер | 25 | TCP | Интеграция с почтовой системой (опционально). | |||
SSO | apps-vm | Провайдер аутентификации (SAML SSO) |
443 | TCP | Интеграция SSO (опционально). | |||
LDAP | apps-vm | LDAP сервер (контроллер домена AD) |
389 | TCP | Интеграция SSO (опционально). |
Для взаимодействия Dion с внешними пользователями рекомендуется использовать обратный прокси (Reverse Proxy), расположенный в DMZ.
Важно: обратный прокси не входит в поставку ПО Dion.
Для работы Dion требуются следующие DNS записи:
Имя | Тип Записи | Внутренняя зона | Внешняя зона | Назначение |
dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Получение статических файлов Web личного кабинета и конференций. |
static-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Статика веб приложений и Outlook plugin, хостинг .apk файлов и установочных пакетов настольных приложений. |
event-tracker-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для сбора данных по действиям пользователя в UI, который в дальнейшем используются для аналитики. |
photo-delivery-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Получение пользовательских фонов и аватаров, а также отчетов. |
download-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Получение статических файлов Web Центра загрузок. |
grpc-gateway-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предназначено для Dion Rooms |
api-clients-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по управлению учетными записями пользователей и конференциями. |
sockets-pool-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Подключение по WebSocket для двунаправленного взаимодействия по управлению конференциями между клиентским приложением и сервером. |
api-integration-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для интеграции внешних систем. Используется для адаптера интеграции с внешним IdM по LDAP. |
auth-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Выделенный из api-clients АПИ для аутентификации |
report-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Отчёты в админ-панели. |
admin-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
|
Получение статических файлов Web консоли администратора. |
api-admin-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
|
Предоставление API для консоли администратора. |
st-users-groups-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по управлению группами пользователей. |
video-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Получение статических файлов Web видеохостинга. |
records-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Получение файлов с записями конференций по ссылке, отправленной на email. |
api-video-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по управлению записями на видеохостинге. |
hls-delivery-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление HLS видеопотоков. |
upload-companion-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по управлению загрузкой файлов на видеохостинг. |
upload-server-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по загрузке/скачиванию видео файлов. |
chats-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Получение статических файлов Web чатов. |
chats-api-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по работе в чатах. |
chats-rta-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Подключение по WebSocket для двунаправленного взаимодействия по работе в чатах между клиентским приложением и сервером. |
dc-data-storage-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для клиентских приложений по загрузке и скачиванию вложений в чатах. |
sip-dion.Domain.ru |
A |
Dion SIP Server IP |
|
Работа с SIP сервером Dion. |
callserver-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Предоставление REST API для для звонков. |
rooms-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Опционально. Если установлен Dion Rooms. |
sso-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Опционально. Для расширенной интеграции с SSO заказчика. |
vmetrics-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Работа с сервером мониторинга |
prometheus-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Работа с сервером мониторинга |
monitoring-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Работа с метриками мониторинга в Grafana. |
logs-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
Reverse Proxy |
Работа с сервером сбора логов. |
ВНИМАНИЕ: Использование файла hosts вместо DNS сервера не поддерживается.
В топологии Dion Standard (High Availability) все DNS записи разрешаются в виртуальный ip Dion LB-VM. При этом всю нагрузку несет только один сервер Dion-LB, на котором находится виртуальный IP.
Чтобы распределить нагрузку между двумя серверами Dion-LB можно использовать технологию GSLB.
DNS сервер с поддержкой GSLB должен отдавать поочередно (roundrobin) ip адреса серверов dion-lb-vm01 и dion-lb-vm02.
Проверка доступности серверов осуществляется через web запрос https://dion.MyDomain.com/healthCheck
Код ответа работающего сервера: 204
Интервал проверки: 30 секунд
Количество неудачных попыток для вывода сервера в состояние DOWN: 3
Количество удачных попыток для возвращения сервера в состояние UP: 3
Для шифрования трафика между клиентом и сервером Dion требуется SSL сертификат с приватным ключом. Он должен удовлетворять следующим требованиям:
Так как Dion использует более 30 DNS записей – для упрощения можно использовать Wildcard сертификат, например:
CN = mydomain.ru
SAN = mydomain.ru
SAN = *.mydomain.ru
Dion состоит из контейнеров Docker и может работать на любой операционной системе, в которой установлен Docker. Рекомендуется использовать одну из протестированных операционных систем:
Название |
Версия |
Ubuntu Server |
22.04.4, 20.04.6 |
Debian |
12.2, 12.0 |
Astra Linux |
1.7.5 |
Alt Linux |
10.1, 10.2 |
RedOS |
7.3.4 |
Для развертывания достаточно минимальной установки.
Для развертывания Dion Standard требуется следующее ПО:
Название |
Источник |
OpenSSH Server |
opensource |
bzip2 |
opensource |
Docker |
opensource |
Ansible |
Поставляется Dion |
Ansible Playbook |
Поставляется Dion |
Универсальные контейнеры Dion |
Поставляется Dion |
Уникальные контейнеры Dion для конкретного домена |
Поставляется Dion |
В Dion поддерживаются следующие клиенты:
WEB:
Desktop:
Мобильные: