Масштабируемая система видеоконференций для корпоративного использования (OSEDUCONF-2022) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) м (StasFomin переименовал страницу Масштабируемая система видеоконференций для корпоративного использования (OSSDEVCONF-2022) в [[Масштабируемая си…) |
StasFomin (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
;{{SpeakerInfo}}: * {{Speaker|Виктор Минченков}} * {{Speaker|Антон Сергеев}} <blockquote> Переход многих компаний и учебных учреждений на удалённый формат работы остро поднял вопросы по организации коммуникации между работниками. При этом существующие видеосервисы для многих не всегда закрывают потребности образовательных организаций, дороги при использовании полного функционала (в расчёте на пользователя), не соответствуют требованиям корпоративных политик безопасности. Есть сложности с их интеграцией в существующую цифровую экосистему вузов. Столкнувшийся с этими вызовами МИЭМ НИУ ВШЭ принял решение разработать и внедрить собственную корпоративную ВСК на базе движка с открытым кодом Jitsi. Время показало, что в условиях пандемии, онлайн-работы и внешних санкционных ограничений, это было единственно верным решением. В статье представлена система онлайн-коммуникаций MEET.MIEM, её архитектура, используемые технологии, методы интеграции в корпоративную цифровую инфраструктуру. </blockquote> {{VideoSection}} {{vimeoembed|923135843|800|450}} {{youtubelink|}} |PV3KTfFJ3qY}} {{SlidesSection}} [[File:Масштабируемая система видеоконференций для корпоративного использования (OSSDEVCONF-2022).pdf|left|page=-|300px]] {{----}} == Thesis == * https://git.miem.hse.ru/vminchenkov/meet-front В начале 2020 года институт МИЭМ ВШЭ столкнулся со сложностями в организации общения между студентами и преподавателями, так как начался активный переход студентов в дистанционный формат проведения занятий и развитие проектного формата обучения. Дополнительную нагрузку создавала внедрённая в вузе 100%-проектная модель обучения: проектные студенческие команды (более 400 проектов по 2-6 человек) должны были проводить онлайн-совещания не менее 1 раза в неделю. Организация закупки лицензий на такое количество пользователей (2000+) было не целесообразно по причине стоимости и невозможности полной интеграции в цифровую проектную экосистему. Было принято решение развернуть систему видео конференции с возможностью бесплатного использования на собственных мощностях. === Выбор базовой платформы === Из свободных для использования решений на рынке в тот мент можно было выделить два решения BigBlueButton (BBB) и [https://github.com/jitsi Jitsi]. Оба решения базировались на протоколе WebRTC и могли работать без установки дополнительного ПО на стороне пользователей, используя только современный браузер. Для окончательного внедрения были выбраны следующие критерии по функциональности: # Поддержка от 20 и более параллельных конференций; # Поддержка авторизации пользователей; # Возможность масштабирования решения; # Поддержка конференции до 60 человек; # Простота использования для пользователей; # Возможность модификации исходного кода для дальнейшего наращивания функционала; # Наличие мобильного клиента для iOS и Android. После быстрого сравнения систем было установлено, что BBB почти не обладал возможностями по масштабированию и требовал гораздо больших аппаратных ресурсов при большом количестве параллельных конференций. === Наращивание функционала === В итоге тестирования базовая платформа Jitsi была выбрана для внедрения и использования для учебного процесса. После использования в течение трёх месяцев в системе были выявлены следующие серьёзные недостатки, усложняющие жизнь нашим пользователям: * Система поддерживала только парольную систему авторизации и могла быть интегрирована только с каталогами LDAP. В самом НИУ ВШЭ внедрена корпоративная система ведения учётных записей студентов и преподавателей на базе платформы Microsoft AD, и система SSO ADFS и её подключение к Jitsi было невозможно; * Парольная система авторизации, используемая в Jitsi, блокировалась современными антивирусами, из-за чего пользователи иногда не могли присоединяться к конференциям. * Полностью отсутствовала возможность сбора статистических данных по пользователям, так как дистанционный формат обучения требовал дополнительного контроля; * Отсутствие централизованного хранения и публикации видео записей встреч. Детальное изучение платформы показало, что в её основе лежит [https://prosody.im XMPP сервер PROSODY] для которого можно писать дополнительные модули на языке LUA, а сам режим работы системы авторизации пользователей можно перевести JSON Web Tokens (JWT). Сама медиа-платформа JITSI meet имеет два хорошо документированных API для встраивания в сторонние Web приложения. Эти два факта позволили создать собственную точку входа (Web приложение) для пользователей конференций MEET.MIEM, и конечная реализация использует следующую архитектуру: [[File:Pereslavl-2022-minchenkov-minchenkov-minchenkov-img001.png|center|640px|thumb|Итоговая внедрённая архитектура системы видеоконференций]] ;Frontend: web приложение на базе Vue 2.0 и JS фреймворка Bootstrap-VUE; ;Backend: Python WEB фреймворк FLASK 2.0. Данный фреймворк позволил сразу использовать JWT для авторизации пользователей через стороннюю SSO KEYCLOAK по протоколу OAuth2; ;Database: В качестве базы данных может быть использована PostgreSQL или MariaDB; * В качестве дополнительного сервиса была осуществлена поддержка системы Sentry для своевременного сбора данных об ошибках на Frontend и Backend и формы обратной связи от пользователей; * Сама медиа платформа Jitsi-meet была интегрирована во frontend через свой Iframe API и также через подключение авторизации через JWT продолжилась совместимость нашей платформы с мобильными приложениями Jitsi для всех платформ; * Реализован дополнительный модуль для PROSODY, позволяющий экспортировать внутренние события в конференциях; * Для сервисов Jibri (дополнительный сервис, реализующий потоковую запись конференций Jitsi) был реализован модуль позволяющий выгружать видеофайлы в систему хранения, а на backend отправлять событие, что запись создана. При этом ссылки на видео сохраняются в БД, для последующего доступа пользователями. Ключевым ограничением MEET.MIEM (как и аналогичных систем, построенных на Jitsi, например, Яндекс.Телемост) является лимит на число пользователей в одной комнате (не более 60). Причина — ограничения браузеров по организации потоковых соединений. === Заключение === Разработка и внедрение собственной системы видеоконференций закрыло большинство требований по организации удалённой работы студентов и преподавателей, позволило централизованно накапливать и экспортировать данные о проведении занятий студентов. И, в итоге, стало фундаментом для налаживания нормальной работы Института в онлайн-режиме в условиях карантинных ограничений. На базе платформы MEET.MIEM проводятся массовые онлайн мероприятия, например, Техношоу МИЭМ [https://technoshow.miem.hse.ru/] или Финал национального чемпионата WorldSkills Russia по одной из основных компетенций. Поддерживаемая пиковая нагрузка системы, развёрнутой на одной серверной платформе CPU 2xXEON 128Гбайт RAM при выделенном канале 0,5 Гбит/с составляет до 200 онлайн-пользователей одновременно. После расширения функционала силами МИЭМ у участников появилась возможность удобного ведения и просмотра истории своих конференций в том числе просмотра видео записей встреч и чата внутренних сообщений. Дополнительное внедрение системы пропусков позволило преподавателям удобно подключать к встречам других участников, не имеющих постоянных аккаунтов в НИУ ВШЭ. {{----}} [[File:{{#setmainimage:Масштабируемая система видеоконференций для корпоративного использования (OSSDEVCONF-2022)!.jpg}}|center|640px]] {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> <references/> [[Категория:OSSDEVCONFOSEDUCONF-2022]] [[Категория:Draft]] |
Текущая версия на 22:15, 2 июня 2024
- Докладчик
Переход многих компаний и учебных учреждений на удалённый формат работы остро поднял вопросы по организации коммуникации между работниками. При этом существующие видеосервисы для многих не всегда закрывают потребности образовательных организаций, дороги при использовании полного функционала (в расчёте на пользователя), не соответствуют требованиям корпоративных политик безопасности. Есть сложности с их интеграцией в существующую цифровую экосистему вузов.
Столкнувшийся с этими вызовами МИЭМ НИУ ВШЭ принял решение разработать и внедрить собственную корпоративную ВСК на базе движка с открытым кодом Jitsi. Время показало, что в условиях пандемии, онлайн-работы и внешних санкционных ограничений, это было единственно верным решением. В статье представлена система онлайн-коммуникаций MEET.MIEM, её архитектура, используемые технологии, методы интеграции в корпоративную цифровую инфраструктуру.
Содержание
Видео
Презентация
Thesis
В начале 2020 года институт МИЭМ ВШЭ столкнулся со сложностями в организации общения между студентами и преподавателями, так как начался активный переход студентов в дистанционный формат проведения занятий и развитие проектного формата обучения. Дополнительную нагрузку создавала внедрённая в вузе 100%-проектная модель обучения: проектные студенческие команды (более 400 проектов по 2-6 человек) должны были проводить онлайн-совещания не менее 1 раза в неделю. Организация закупки лицензий на такое количество пользователей (2000+) было не целесообразно по причине стоимости и невозможности полной интеграции в цифровую проектную экосистему. Было принято решение развернуть систему видео конференции с возможностью бесплатного использования на собственных мощностях.
Выбор базовой платформы
Из свободных для использования решений на рынке в тот мент можно было выделить два решения BigBlueButton (BBB) и Jitsi.
Оба решения базировались на протоколе WebRTC и могли работать без установки дополнительного ПО на стороне пользователей, используя только современный браузер.
Для окончательного внедрения были выбраны следующие критерии по функциональности:
- Поддержка от 20 и более параллельных конференций;
- Поддержка авторизации пользователей;
- Возможность масштабирования решения;
- Поддержка конференции до 60 человек;
- Простота использования для пользователей;
- Возможность модификации исходного кода для дальнейшего наращивания функционала;
- Наличие мобильного клиента для iOS и Android.
После быстрого сравнения систем было установлено, что BBB почти не обладал возможностями по масштабированию и требовал
гораздо больших аппаратных ресурсов при большом количестве параллельных конференций.
Наращивание функционала
В итоге тестирования базовая платформа Jitsi была выбрана для внедрения и использования для учебного процесса.
После использования в течение трёх месяцев в системе были выявлены следующие серьёзные недостатки, усложняющие жизнь нашим пользователям:
- Система поддерживала только парольную систему авторизации и могла быть интегрирована только с каталогами LDAP. В самом НИУ ВШЭ внедрена корпоративная система ведения учётных записей студентов и преподавателей на базе платформы Microsoft AD, и система SSO ADFS и её подключение к Jitsi было невозможно;
- Парольная система авторизации, используемая в Jitsi, блокировалась современными антивирусами, из-за чего пользователи иногда не могли присоединяться к конференциям.
- Полностью отсутствовала возможность сбора статистических данных по пользователям, так как дистанционный формат обучения требовал дополнительного контроля;
- Отсутствие централизованного хранения и публикации видео записей встреч.
Детальное изучение платформы показало, что в её основе лежит XMPP сервер PROSODY для которого можно писать дополнительные модули на языке LUA, а сам режим работы системы авторизации пользователей можно перевести JSON Web Tokens (JWT). Сама медиа-платформа JITSI meet имеет два хорошо документированных API для встраивания в сторонние Web приложения.
Эти два факта позволили создать собственную точку входа (Web приложение) для пользователей конференций MEET.MIEM, и конечная реализация использует следующую архитектуру:
- Frontend
- web приложение на базе Vue 2.0 и JS фреймворка Bootstrap-VUE;
- Backend
- Python WEB фреймворк FLASK 2.0. Данный фреймворк позволил сразу использовать JWT для авторизации пользователей через стороннюю SSO KEYCLOAK по протоколу OAuth2;
- Database
- В качестве базы данных может быть использована PostgreSQL или MariaDB;
- В качестве дополнительного сервиса была осуществлена поддержка системы Sentry для своевременного сбора данных об ошибках на Frontend и Backend и формы обратной связи от пользователей;
- Сама медиа платформа Jitsi-meet была интегрирована во frontend через свой Iframe API и также через подключение авторизации через JWT продолжилась совместимость нашей платформы с мобильными приложениями Jitsi для всех платформ;
- Реализован дополнительный модуль для PROSODY, позволяющий экспортировать внутренние события в конференциях;
- Для сервисов Jibri (дополнительный сервис, реализующий потоковую запись конференций Jitsi) был реализован модуль позволяющий выгружать видеофайлы в систему хранения, а на backend отправлять событие, что запись создана. При этом ссылки на видео сохраняются в БД, для последующего доступа пользователями.
Ключевым ограничением MEET.MIEM (как и аналогичных систем, построенных на Jitsi, например, Яндекс.Телемост) является лимит на число пользователей в одной комнате (не более 60). Причина — ограничения браузеров по организации потоковых соединений.
Заключение
Разработка и внедрение собственной системы видеоконференций закрыло большинство требований по организации удалённой работы студентов и преподавателей, позволило централизованно накапливать и экспортировать данные о проведении занятий студентов. И, в итоге, стало фундаментом для налаживания нормальной работы Института в онлайн-режиме в условиях карантинных ограничений.
На базе платформы MEET.MIEM проводятся массовые онлайн мероприятия, например, Техношоу МИЭМ [1] или Финал национального чемпионата WorldSkills Russia по одной из основных компетенций. Поддерживаемая пиковая нагрузка системы, развёрнутой на одной серверной платформе CPU 2xXEON 128Гбайт RAM при выделенном канале 0,5 Гбит/с составляет до 200 онлайн-пользователей одновременно.
После расширения функционала силами МИЭМ у участников появилась возможность удобного ведения и просмотра истории своих конференций в том числе просмотра видео записей встреч и чата внутренних сообщений. Дополнительное внедрение системы пропусков позволило преподавателям удобно подключать к встречам других участников, не имеющих постоянных аккаунтов в НИУ ВШЭ.