Как стать автором
Обновить

Зомби-апокалипсис в Телемосте: как мы проводим нагрузочное тестирование видеоконференцсвязи

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров4.1K
Всего голосов 25: ↑24 и ↓1+26
Комментарии11

Комментарии 11

Это всё хорошо, но вы объясните удивленной публике, почему в Яндексе зумом пользуются, а не прекрасным телемостом?

Для встреч используем и Zoom и Телемост - кому что больше нравится. Лично у меня в календаре 96% встреч - Телемост

Было бы странно, если бы команда телемоста не занималась догфуддингом

Недавно как раз перешли командой с телемоста на другой сервис видеоконф. Телемост ужасно работал ;(

Как человек далёкий от данной темы понял следующее:
1) Некий самописный аналог k8s поднимает Х инстансов докера внутри которых запущен Selenium
2) Через UI докеры можно ронять\поднимать\выполнить дествие У (единично или массово)
3) Есть система сбора логов с докеров на основе которых строятся несколько отчётов
4) Это назвали Zombieland

Если отбросить детали реализации, то примерно так, да. Только в п.2 зомби ещё могут выполнять действия по сценарию, без участия человека. А сбор логов и WebRTC статистики у нас не привязан к тестированию - используем эти данные в том числе когда нужно исследовать поступающие от пользователей проблемы

Кажется что такой инструмент должен быть стандартом для тестирования сервисов видео-конференций) да и не только - если отключить видеопоток то можно любой сервис нагрузкой тестировать

Поддерживаем Safari, начиная с версии 16 и выше. Если есть какие-то проблемы с Телемостом в этом браузере, рекомендую написать в поддержку

Спасибо за интересную статью!
Я не пользовался телемостом еще, но появились вопросы по этой теме

Как я понял на одном из скриншотов, вы используете реализацию 1 peerConnection и множество треков?
Если так, то как с нагрузкой на ЦП клиента при тысяче участников?
Вы не выводите всех участников на экран а только тех кто говорит (скорее всего), но при этом продолжаете получать трафик с каждого трека?

У меня есть мысли попробовать например не больше 8 треков создавать и жанглировать на стороне медиасервера отправлением трафика в зависимости от того кто начал говорить чтобы сэкономить сеть пользователю но у такого подхода видится множество подводных камней, например коллизии с кодеком и прочее.

Либо вариант с приостановкой передачи в трек видео и возможно аудио, вроде проще в теории.

Привет! Медиа-траффик со всех клиентов уходит на медиасервер. Там звук микшируется в один поток, который уходит клиентам. Если говорить о видео, то клиенты получают траффик только тех участников, которые отображаются в данный момент на экране (не скрыты за скроллингом).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий