Подготовка к установке
Получение авторизационного токена
Базовый вариант:
Продвинутый вариант:
Схема размещения и взаимодействия сервисов приложения:
.
Для примерного расчета требуемой мощности представляем следующую таблицу:
Пользователей онлайн |
Вариант установки |
Основной сервер |
Сервер хранилища данных |
Сервер обработки видео |
2 (тестовый) |
Базовый |
4 CPU \ 8GB RAM \ 50 HDD |
- |
- |
100 (стандартный) |
Базовый |
8 CPU \ 16GB RAM \ 250 SSD |
- |
- |
300 (повышенный) |
Продвинутый |
4 CPU \ 8GB RAM \ 100 SSD |
4 CPU \ 8GB RAM \ 500 SSD |
4 CPU \ 8GB RAM \ 50 SSD |
1000 (производительный) |
Продвинутый |
8 CPU \ 16GB RAM \ 200 SSD |
8 CPU \ 16GB RAM \ 1tb SSD |
8 CPU \ 16GB RAM \ 100 SSD |
2000 (максимальный) |
Продвинутый |
16 CPU \ 32GB RAM \ 200 SSD |
16 CPU \ 32GB RAM \ 1tb SSD |
16 CPU \ 16GB RAM \ 100 SSD |
Узлы системы и нагруженность
Размещение на одном сервере
Основной сервер может выступать в качестве единственного сервера в системе при выборе базовой версии установки. В этом случае все компоненты будут запущены на нем. Самые высоконагруженные компоненты: postgresql db, s3minio, video-worker, web backend. В момент массового проведения экзаменов одновременную нагрузку выполняет web backend + postgresql + s3minio. После окончания экзаменов студентов запускается команда для video-worker для обработки и сжатия видео. Если студенты сдают экзамены одновременно (например, начали в 9:00 утра и в 10:00 закончили), то нагрузка будет с 9:00 до 10:00 равномерно высокая на компоненты web backend + postgresql + minio. А начиная с 10:00 будет максимальный пик нагрузки на video-worker до окончания обработки всех видео. Если же сдача экзаменов равномерно распределена по шкале времени, то и нагрузка будет равномерно распределяться по времени, когда все компоненты системы работают одновременно. Это стоит учитывать при планировании сдачи экзаменов и расчете нагрузки на систему.
Схема расположения сервисов внутри сервера:
Размещение на нескольких серверах:
При продвинутом варианте установки на основном сервере располагается группа сервисов web backend, балансировщик трафика, frontend dashboard, student web portal. На сервере хранилища данных располагается postgresql, s3minio. На сервере обработки видео располагается video-worker. Нагрузка распределяется в таком же виде как и в базовой установке, но уже между тремя серверами в сети. Серверы в такой конфигурации должны находиться в одном ДЦ или серверной стойке! Так же критичным местом становится доступ в интернет и сетевая связанность между серверами. На пике нагрузки в 2000 пользователей онлайн сетевая нагрузка достигает пиков в 1гб\с и является уязвимым местом системы. Запускать такую конфигурацию на более узких каналах интернет или сети категорически не рекомендуется. Пользователи будут получать частые ошибки о потере связи. Так же уязвимым местом является дисковая подсистема, если не обеспечить хорошую производительность i\o операций, то так же пользователи будут получать ошибки. Оптимален запуск высоконагруженных конфигураций в облачных ДЦ, на магистральных каналах 1гб\с и больше и дисковой подсистеме NVME 10,000iops и выше.
При установке продвинутого варианта коробки можно воспользоваться дополнительно параметрами ограничения памяти и процессов внутри контейнеров.
Для контейнеров доступны параметры :
- mem_limit: 1610612736 # 1.5Gi (максимальное потребление оперативной памяти контейнера)
- processes 4 или concurrency 2 (максимальное количество процессов внутри контейнера)
Схема расположения сервисов внутри серверов: