Архитектура Dion Standard — вариант развертывания системы DION для локальной (on-premises) установки в контуре предприятия.
В настоящем документе представлена топология системы Dion Standard, а также приведены системные требования к инфраструктуре, необходимые для успешного развертывания и функционирования платформы.
Топология Dion Standard представляет собой среду, где все компоненты системы (docker контейнеры) размещаются на отдельных физических серверах или виртуальных машинах. Такой подход обеспечивает высокую производительность и отказоустойчивость.
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 | turn-vm-01 |
2 |
4 |
50 |
1 |
1 (NAT) |
DMZ | TURN сервер |
19 | turn-vm-02 |
2 |
4 |
50 |
1 |
1 (NAT) |
DMZ | TURN сервер |
20 | record-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер записи |
21 | record-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер записи |
22 | video-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер видеопортала |
23 | video-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер видеопортала |
24 | chats-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер чатов |
25 | chats-vm-02 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер чатов |
26 | log-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер сбора логов |
27 | mon-vm-01 |
2 |
4 |
50 |
1 |
|
внутренний контур | сервер мониторинга |
Для точного подсчета системных требований исходя из планируемых нагрузок используйте калькулятор сайзинга или обратитесь к команде Dion.
Количество участников (слушателей) в конференции ограничивается только пропускной способностью канала из расчета от 500 Kbit/s до 3 Mbit/s на пользователя, в зависимости от контента.
В дальнейшем при необходимости можно добавить ресурсы по мере использования.
Для работы серверов Dion необходимо обеспечить полное сетевое взамиодействие между серверами Dion во внутреннем контуре. Рекомендуется использовать отдельный VLAN.
Ниже приведена таблица сетевых доступов за пределами внутреннего контура:
Сервис | Откуда | Куда | Порт | Протокол |
WEB | внутренние пользователи | Dion lb-vm Virtual IP | 443 | TCP |
WEB | внешние пользователи | DMZ Reverse Proxy | 443 | TCP |
WEB | DMZ Reverse Proxy | Dion lb-vm Virtual IP | 443 | TCP |
WebRTC | внутренние пользователи | Dion Media | 49152 - 65535 | UDP |
TURN | внешние пользователи | Dion TURN внешний IP | 3478 | UDP |
MEDIA | TURN серверы | Media серверы | 49152 - 65535 | UDP |
Межсервисное взаимодействие | TURN серверы | Infra серверы | 9000-9999 | TCP |
SSH | Setup VM | все серверы Dion | 22 | TCP |
WEB (для развертывания из репозитория Dion). |
Setup VM | registry.onprem.dion.vc | 443 | TCP |
WEB (опционально, для обновления ОС и установки приложений. |
все серверы Dion | репозиторий операционной системы | 443 | TCP |
DNS | все серверы Dion | внутренний DNS сервер | 53 | UDP |
SMTP (опционально, для интеграции с почтовой системой) |
Dion Apps | почтовый сервер | 25 | TCP |
WEB (опционально, для интеграции SSO) |
Dion Apps | провайдер аутентификации (SAML SSO) |
443 | TCP |
WEB (опционально, для интеграции SSO) |
провайдер аутентификации (SAML SSO) |
Dion lb-vm Virtual IP | 443 | TCP |
LDAP (опционально, для работы AD-Connector) |
Dion APPS | LDAP сервер (контроллер домена AD) |
389 | TCP |
Для взаимодействия Dion с внешними пользователями рекомендуется использовать обратный прокси (Reverse Proxy), расположенный в DMZ.
Важно: обратный прокси не входит в поставку ПО Dion.
Для работы Dion Standard требуются следующие 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 |
|
Предоставление 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 |
|
Отчёты в админ-панели. |
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 |
|
Предоставление 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 |
|
Работа с сервером мониторинга |
prometheus-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
|
Работа с сервером мониторинга |
monitoring-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
|
Работа с метриками мониторинга в Grafana. |
logs-dion.Domain.ru |
A |
Dion LB-VM Virtual IP |
|
Работа с сервером сбора логов. |
ВНИМАНИЕ: Использование файла hosts вместо DNS сервера не поддерживается.
Для шифрования трафика между клиентом и сервером 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, 11.8.0, 11.7.0 |
Astra Linux |
1.7.5 |
Alt Linux |
10.1, 10.2 |
RedOS |
7.3.4 |
Для развертывания достаточно минимальной установки.
Для развертывания Dion Standard требуется следующее ПО:
Название |
Источник |
OpenSSH Server |
opensource |
Python 3 |
opensource |
bzip2 |
opensource |
Docker |
opensource |
Ansible |
Поставляется Dion |
Ansible Playbook |
Поставляется Dion |
Универсальные контейнеры Dion |
Поставляется Dion |
Уникальные контейнеры Dion для конкретного домена |
Поставляется Dion |
В Dion поддерживаются следующие клиенты:
WEB:
Desktop:
Мобильные: