Базовая инсталляция
Основой для базовой инсталляции является Docker контейнеризация с использованием swarm.
Базовая инсталляция представляет собой один сервер (лидер-нода), на котором создан Docker Swarm. В рамках данного Swarm развернут один стек под названием <vms>, в котором существуют все сервисы. На текущий момент это:
traefik – это обратный прокси-сервер, обеспечивающий простую работу с микросервисами и/или контейнерами с приложениями
backend – бэкенд платформы
cron – планировщик заданий, используется для запуска определенных команд по расписанию под пользователем root
scheduler – планировщик заданий, используется для запуска команды под пользователем www-data
queue – компонент платформы (обработка всех асинхронных задач)
archive – компонент платформы (обработка асинхронных задач по генерации архива)
push1st – сервер брокера сообщений PUB/SUB с несколькими протоколами
frontend – фронтенд компонента платформы
mysql-server – сервер базы данных
redis-server – быстрое хранилище данных типа «ключ‑значение» в памяти с открытым исходным кодом
beanstalkd – менеджер заданий распределенного приложения, который собирает отложенные задачи
mediaserver – медиасервер
Mediaserver возможно не устанавливать с помощью исключений. Подробнее см. «Установка базовой инсталляции».
Данная конфигурация рассчитана на работу суммарно 400 Мбит/с входящего потока от камер (например, 200 камер по 2 Мп/~2 Мбит/с) и около 1000 одновременных пользовательских подключений.
Дисковая подсистема для хранения архива зависит от количества подключенных камер. Размер архива для камер 2 Мп составляет порядка 20-30 ГБ в день.
Системные требования к серверу
Вариант установки «все в одном» – медиасервер (Mediaserver) и управление (VMS).
Требования:
Операционная система: Ubuntu 20.04
Процессор: Quad-Core Processor E-2124 3.30GHz 8MB Cache (8vCPU) или выше
Оперативная память: 32 ГБ
Диск: SSD 512 ГБ
Сервисы
Сервисами, входящими в состав базовой инсталляции являются:
DHCP-сервер
Key-Value хранилище (Key-Value DB)
MySQL
beanstalkd
В качестве DHCP-сервера используется Kea DHCP.
В качестве Key-Value DB используется Redis.