SlideShare a Scribd company logo
Как мы отказались от
Skype и пришли к WebRTC
на Janus-Gateway
Сергей Сафонов

Skyeng
Как мы отказались от
Skype и пришли к WebRTC
на Janus-Gateway
Сергей Сафонов

Skyeng
Учим английскому
• Английский учить сложно
• Цель — помочь выучить
• 10000 учеников, 1000 учителей
• 2000 уроков каждый день
Своя платформа
• Интерактивные занятия с учителем
• Домашние задания
• Тесты
• Грамматика
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Важно
• Контролировать процесс обучения
• Анализировать что происходило на уроке
• Удобство пользователя
• Аудио-видео связь
Важно для видеосвязи
• Качество
• Удобство
• Процент внедрения
• Записи
• Стоимость
Нам не подходит
• Skype — нет записей
• Hangouts — отдельная вкладка, нужен плагин
• Tokbox
• Всё просто и работает
• Дорого :( 113 руб за урок c записью аудио
2014 — первые попытки
2015 — “Компания X”
✅ Кто и сколько говорил
😒 Записи: только аудио
😒 Стоимость: 20 руб за
урок с записью аудио
❌ Процент внедрения: 40
❌ Долгая и сложная
интеграция
❌ Только через udp
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
2016 — клиент из Швеции
• Много учеников
2016 — клиент из Швеции
• Много учеников
2016 — клиент из Швеции
• Много учеников
• Связь только через браузер
2016 — клиент из Швеции
• Много учеников
• Связь только через браузер
• Открыты только http & https
• “Компания X” не согласна 

делать для нас tcp
Что же делать
Что же делать
• Срочно интегрируем Tokbox
Что же делать
• Срочно интегрируем Tokbox
• “Компания X” делает нам tcp
Мы пробовали
• 2012 — Skype
• 2014 — Tokbox
• 2015 — “Компания X”, временно включали Tokbox
2016 — Время поисков
• Open source?
• WebRTC?
• Kurento?
• Red5?
Что такое WebRTC?
• WebRTC = Web Real-Time Communication
• Коллекция протоколов передачи данных и апи
• Стандартизированы W3C & IETF
• Для видео-конференций, передачи данных, чатов,
шаринга экрана
• Развивают крупные компании: Google, Mozilla, Cisco
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Только WebRTC достаточно
• Большинство наших пользователей на Chrome
• WebRTC быстро развивается
• Другие браузеры добавят поддержку
Только WebRTC достаточно
• Большинство наших пользователей на Chrome
• WebRTC быстро развивается
• Другие браузеры добавят поддержку, рано или
поздно
Как готовить WebRTC?
• Что-то готовое? SimpleWebRTC? EasyRTC?
• Писать поток прямо из браузера?
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Janus WebRTC Gateway
Janus & WebRTC
Janus & WebRTC
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Нужные нам функции
• Режим конференций (N участников)
• Записи по tcp & udp (но “сырые”, нужно обработать)
• Эхо-тест из коробки
• Легко горизонтально масштабируется
• Нет fallback до rtmp (flash)
Используется в slack
Берём!
Первая версия
Как мы себе это представляли?
Как мы себе это представляли?
• Тысячи уроков онлайн
Как мы себе это представляли?
• Тысячи уроков онлайн
• Десятки серверов
Как мы себе это представляли?
• Тысячи уроков онлайн
• Десятки серверов
• Автоматическое
масштабирование
Выделили MVP
Выделили MVP
• 100 уроков
Выделили MVP
• 100 уроков
• Один сервер
Архитектура!
Запустили
Проблемы
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Спустя пару месяцев
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Спустя год
• Школа выросла в 3 раза
• Через год вырастет ещё в 3 раза
• Нагрузка выросла пропорционально
• Сервер нагружен в пики почти на 100%
• Сложное вертикальное масштабирование
Делаем всё
правильно и красиво
Наша архитектура
Наша архитектура
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
В продакшене
• 2 сервера
• 8 core 3.4GHz, 32GB
• 16 core 2.4Ghz, 16GB
• ~ 300 уроков в пике(по 150 на сервер)
Incoming network traffic Outgoing network traffic
CPU idle time CPU user time CPU system time
CPU utilization
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)
2015 — Janus
✅ Процент внедрения: 80
✅ Записи: аудио и видео
(даже через tcp!)
✅ Стоимость: 2 руб за
урок (было 113 и 20)
😒 Информация о том
кто и сколько говорил
❌ Нужно поддерживать
и понимать как работает
Наши планы
• Автоматическое масштабирование
• Видеозаписи
• Интерфейс с индикацией проблем
• Групповые звонки (3-4 участника)
• Снова внедрить callstats.io или аналог
Спасибо!
https://www.facebook.com/se.safonov
Подарок!
Промокод на +4 урока
при первой оплате:
RITFEST2017

More Related Content

PDF
Thank you miyagawa (русская версия)
KEY
Erlyvideo — сервер потокового видео.
PDF
A.pleshkov
PPTX
как строить архитектуру для отказоустойчивой службы такси
PDF
Рефакторинг монолита в микросервисы на Go
PDF
Инновации и JavaScript
PPTX
Как собирать gps треки раз в секунду, экономя траффик
Thank you miyagawa (русская версия)
Erlyvideo — сервер потокового видео.
A.pleshkov
как строить архитектуру для отказоустойчивой службы такси
Рефакторинг монолита в микросервисы на Go
Инновации и JavaScript
Как собирать gps треки раз в секунду, экономя траффик

What's hot (8)

PDF
Высоконагруженная отправка push-уведомлений / Алексей Акулович
PPT
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
PDF
WAMP как основа композитных SOA-приложений и его имплементация на Lua
PDF
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
PPTX
Как масштабировать сложный Single Page Application / Алексей Катаев (Skyeng)
PDF
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
PDF
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
PPTX
High load для начинающих
Высоконагруженная отправка push-уведомлений / Алексей Акулович
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
WAMP как основа композитных SOA-приложений и его имплементация на Lua
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
Как масштабировать сложный Single Page Application / Алексей Катаев (Skyeng)
Рефакторинг монолита в микросервисы на Go / Refactoring of Monolithe to Micro...
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
High load для начинающих
Ad

Similar to Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng) (14)

PDF
Digital заffтрак: Современные технологии real-time коммуникации
PPT
Web RTC - Part 1
PPTX
WebRTC. Part I
PDF
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
PDF
Темное настоящее и светлое будущее WebRTC
PDF
WebRTC: Плюсы, минусы и подводные камни. Станислав Солдатов, TrueConf
PDF
WebRTC: Плюсы, минусы и подводные камни. Стас Солдатов, TrueConf
PPTX
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
PDF
Будущее real-time коммуникаций
PPTX
Звонки в браузере уже реальность
ODP
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
PPTX
Медиавозможности HTML5. WebRTC
PDF
Видеоконференции в браузере (WebRTC)
PPTX
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Digital заffтрак: Современные технологии real-time коммуникации
Web RTC - Part 1
WebRTC. Part I
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
Темное настоящее и светлое будущее WebRTC
WebRTC: Плюсы, минусы и подводные камни. Станислав Солдатов, TrueConf
WebRTC: Плюсы, минусы и подводные камни. Стас Солдатов, TrueConf
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Будущее real-time коммуникаций
Звонки в браузере уже реальность
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
Медиавозможности HTML5. WebRTC
Видеоконференции в браузере (WebRTC)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Ad

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...

Как мы отказались от Skype и внедрили WebRTC на основе janus-gateway / Сергей Сафонов (Skyeng)