РБК Компании
Главная Evrone 21 марта 2023

Как мы помогаем стриминговому сервису работать стабильно

Рассказываем, как Evrone поддерживает бекэнд стриминга more.tv.
Как мы помогаем стриминговому сервису работать стабильно
Задача

Клиент искал техническую команду, которая смогла бы взять на себя переработку продукта Videomore. Он перестал отвечать требованиям времени и запросу пользователей к стриминговому сервису. На его базе решили создать новый сервис — more.tv.

Причина

В связи с перезапуском продукта на новых технологиях, многое в функционале ПАК нужно было изменить. Но его кодовой базе было уже много лет, а значит работа с ним требовала осторожности — нужно было вносить изменения так, чтобы ничего не сломать

Компания М3, входящая в холдинг НМГ развивает онлайн-кинотеатры more.tv и СТС, а также сайты телеканалов группы. Evrone поддерживает и развивает платформу, с помощью которой весь видеоконтент попадает в эти продукты — программно-аппаратный комплекс (ПАК). Мы пишем код и консультируем партнеров клиента по вопросам серверной части проекта.

Софтверная часть нужна, чтобы видео для разных каналов трансляции попадало в нужном формате с определенным кодированием и дополнительной служебной информацией. Кроме видеоконтента в админпанели можно управлять рекламой на канальных сайтах, поэтому ПАК — важное звено в бизнес-задачах холдинга. Он должен работать бесперебойно.

Задача

Клиент искал техническую команду, которая смогла бы взять на себя переработку продукта Videomore. Он перестал отвечать требованиям времени и запросу пользователей к стриминговому сервису. На его базе решили создать новый сервис — more.tv.

ПАК был частью системы администрирования Videomore и другие каналы стриминга (в том числе и сайты каналов) подключались к нему, так как его функционал на тот момент был удобен — были общие API, у некоторых проектов была общая база данных.

В связи с перезапуском продукта на новых технологиях, многое в функционале ПАК нужно было изменить. Но его кодовой базе было уже много лет, а значит работа с ним требовала осторожности — нужно было вносить изменения так, чтобы ничего не сломать.

Переделать за несколько месяцев то, что создавалось несколько лет, просто невозможно. Команда разработки должна была иметь опыт одновременной поддержки проекта и интеграции новых частей в него. У Evrone такой опыт был, так же, как и экспертиза в Ruby-on-Rails, поэтому нас и пригласили для работы над этим бэкендом.

Решение

В течение нескольких лет мы добавляем новые функции и обеспечиваем стабильную работу ПАК, которое представляет собой монолитное Rails-приложение:

  • поддерживаем текущую кодовую базу;
  • помогаем внутренним командам заказчика вычленять часть функций в микросервисы;
  • покрываем проект тестами для отслеживания проблем;
  • внедряем новые возможности и документируем их для облегчения работы с ними.

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

Самый серьезный вызов, с которым мы столкнулись на этом проекте — сайты проектов работают на новых технологиях, а ПАК — на старых. Чтобы решить эту проблему внутренние команды клиента разрабатывают новые микросервисы, которые в конечном итоге возьмут на себя всю работу. Но это долгий процесс, поэтому мы связываем эти сервисы с текущим решением доработками.

API для видеоплееров

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

Новый видеоконвертер

Старый конвертер видео не поддерживал нужные битрейты и профили кодирования, поэтому его нужно было сменить. Кроме форматов требовалась поддержка HLS/DASH с шифрованием и без, пакетирование и шифрование не лету, интеграция с новой схемой хранения на медиасерверах и другими микросервисами. Теперь на стороне ПАК осталась только загрузка видео, которое он отправляет в конвертер и получает в ответ нужный результат. Готовое видео в нужном формате и разрешении отправляется в плеер на канальном сайте.

Взаимодействие со сторонними сервисами

Некоторые задачи решаются с помощью сторонних сервисов. Например, мы интегрировали сервис ViPlaner: он передает данные о телепрограммах разных каналов, а на стороне ПАК происходит мэтчинг слотов телепрограммы с сущностями проектов.

Тестирование сервиса

Шаг за шагом мы покрываем всю кодовую базу тестами. Это помогает нам понять, как устроены разные части ПАК, чтобы заранее планировать изменения и ничего не сломать в процессе доработок. Мы также добавили систему мониторинга ошибок и активно следим за ней — так мы понимаем, где в проекте слабые и сильные места, какие проблемы надо решить в первую очередь.

Результаты

Наша кропотливая рутинная работа напрямую влияет на бизнес-показатели клиента. Мы помогли тем, кто администрирует сайты каналов, управляет контентом — эти люди пользуются ПАК каждый день и раньше любые ошибки и паузы в работе мешали размещать видео и рекламу, анализировать результаты работы. Теперь все работает стабильно.

Для нас самих этот кейс — пример настоящей, неприукрашенной разработки. Каждый день мы вместе с клиентом решаем задачи, которые могут показаться скучными на первый взгляд. Но именно эта работа — фундамент для экспериментов, кратного роста и любого «rocket science».

Дальнейшие планы

Заказчик хочет полностью отказаться от ПАК, как от монолитного и тяжелого решения. Например, балансировка видео, конфигурация воспроизведения и медиатор событий уже вынесены в отдельные микросервисы. После полного перехода можно будет избавиться от шаринга БД между несколькими проектами, а техническая связанность сайтов между собой уменьшится, что повысит надежность. Появятся возможности для масштабирования каждого отдельного проекта.

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

Результат

Но это не быстрый процесс, поэтому мы продолжим поддерживать текущее решение и вносить доработки, чтобы для конечных пользователей всё выглядело незаметно. Ближайшие планы — изменения в сборе статистики, более гибкие настройки рекламы, изменения в процессе транскодирования.

Интересное:

Новости отрасли:

Все новости:

Публикация компании

Профиль

Дата регистрации21.09.2007
Уставной капитал10 000,00 ₽
Юридический адрес обл. Воронежская, г.о. Город Воронеж, ул. Короленко, д. 5, помещ. 1/7
ОГРН 1073668003089
ИНН / КПП 3664086233 366601001
Среднесписочная численность9 сотрудников

Контакты

Адрес 119180, Россия, г. Москва, ул. Большая Якиманка, д. 26
Телефон +74953748460

Социальные сети