Ростислав Чернаков: как RUTUBE обрабатывает миллион видео в день и выдерживает экстремальные нагрузки
Ростислав Чернаков, технический директор по инфраструктуре RUTUBE (входит в «Газпром-Медиа Холдинг»), рассказал о том, как устроена инфраструктура видеохостинга: от собственной CDN-сети с серверами в России и за рубежом до системы хранения объёмом свыше 400 петабайт.
Платформа ежедневно обрабатывает более миллиона загружаемых видео и выдерживает нагрузку более чем 7 терабит в секунду.
— С какими уникальными техническими вызовами вы сталкиваетесь при обработке и доставке огромного объёма видео, который ежеминутно загружается на RUTUBE? Какие меры обеспечивают минимальную задержку и стабильную доставку контента в пиковые часы?
— Учитывая колоссальные нагрузки, которые приходятся на видеохостинг, нам приходится выстраивать и содержать достаточно большую инфраструктуру, и контролировать процесс, чтобы это всё работало быстро и надежно. У нас есть собственная CDN-сеть, расположенная не только в РФ, но и за её пределами, а в Москве находится порядка семи ЦОДов с размещённой инфраструктурой, в том числе для хранения. Всё это позволяет держать нагрузку более 7 терабит в секунду на CDN сеть в пике и 80 миллионов уникальных пользователей в месяц. К тому же мы получаем порядка миллиона входящих видео, то есть более 350 тысяч часов видео в день мы обрабатываем. Также на случай экстремальных нагрузок у нас есть интеграция с облачными провайдерами с автоскейлингами и так далее, которые тоже автоматически поднимают нам сервера, добавляющие мощности.
— То есть даже в условном сценарии пиковой экстремальной нагрузки вы можете масштабироваться легко и как бы «не заметить», то есть сервис не падает в таком случае?
— Да, всё так. Мы это как раз в прошлом году испытали, когда начали тормозить CDN-сервера у YouTube и к нам кратный рост пользователей пришел. Мы успешно справились с этой нагрузкой и обеспечили стабильную работу платформы. Так что, если у нас заканчиваются мощности на собственных серверах, мы начинаем использовать облачных провайдеров и облачные CDN тоже.
— Если мы говорим про CDN, которые не в России, в каких регионах они расположены?
— Это Беларусь, Кыргызстан, Казахстан, Узбекистан. Если говорить про западные страны, не из СНГ, то это Германия и США.
— То есть это всё ваша внутренняя инфраструктура, это никому не принадлежит?
— Да, это наши сервера, которые используются для нужд RUTUBE и других Цифровых активов Холдинга.
— Если мы говорим про эти цифры — может быть, я человек не супер технический, — когда мы говорим про 7 терабит в секунду и 1 миллион загрузок, если сравнивать это с вашими прямыми конкурентами — «VK Видео» и YouTube, — какой это порядок цифр, для понимания? Вы больше обрабатываете, чем конкуренты, или меньше?
— Тут на самом деле сложно сравнивать, потому что в открытом доступе мало информации, что по «VK Видео», что по YouTube. По YouTube были догадки, что у них в прошлом году было 10–15 терабит, но это не точно. VK тоже не даёт цифры чисто по «VK Видео». У них там были какие-то цифры, что по всему холдингу VK вроде в районе 12 терабит. Остаётся только догадываться, сколько приходится чисто на «VK Видео». Поэтому, я думаю, цифры в целом сопоставимы.
— Тогда следующий вопрос. У вас выходила новость про то, что вы впервые загрузили тестовый контент 8К в HDR, и там исходный файл весил порядка 100 гигабайт. И то, что, наверное, интересно пользователям: какой объём хранилища вы сейчас используете? То есть сколько места занимает весь тот видеоконтент, который сейчас загружают пользователи на RUTUBE? И на каких технологиях построены эти хранилища?
— Да, cамо видеохранилище после последней поставки — мы добавляли сервера в этом году, — оно уже ёмкостью порядка 400+ петабайт, сейчас на нём уже более 415 миллионов видео. По поводу технологии, мы используем собственную разработку, называется FileHeap. Почему не использовать, например, какие-нибудь популярные Ceph или что-то на S3? Просто потому, что без доработок оно такие объёмы не потянет. Есть американский CERN, которые вроде как хранят 1 эксабайт на Ceph, но это их собственная разработка, у них там разработчики, которые допиливают этот Ceph. А то, что лежит в open source, такие объёмы не потянет, естественно.
— Тогда что касается в целом серверов, на какие критерии вы больше всего обращаете внимание, когда мы говорим про обработку видеоконтента? Речь идет о мощных GPU, или размер RAM, или пропуская способность CPU? Какие характеристики именно для вас релевантны, когда вы настраиваете свои сервера?
— Если энкодинг, то нужны видеокарты с максимальным количеством блоков NVENC, например. Если это ИИ, то там тоже нужны видеокарты, но там уже в приоритете, например, объём памяти. То есть на каком-нибудь инференсе можно использовать те же видеокарты, что и для энкодинга видео, но для обучения важен объём памяти.
Если говорить про CDN-сервера, там важна CPU, пропускная способность памяти, дисков, сетевых интерфейсов и так далее. Потому что там важно максимально быстро отдать контент пользователю.
Если говорить про всё остальное, а это backend, frontend, база данных и так далее, то там в основном как раз CPU и память. Ну, база данных — ещё IOPSы на дисках тоже большую роль играют.
— Если ещё раз возвращаться к серверам, сколько у вас сейчас в целом всех серверов, которые есть?
— Сейчас уже порядка 7000 серверов. Из них 380 — это CDN-сервера. В этом году мы развернули полторы тысячи серверов и 250 CDN, то есть CDN мы в этом году увеличили более чем в два раза. Также планируем ещё 100 CDN-серверов добавить к концу года — это нам позволит удержать общую ёмкость видеотрафика порядка 15 ТБ/с.
— То есть в два раза?
— Да. По сути, это уже объёмы, которые были у YouTube до того, как они ушли.
И почти весь трафик сейчас у нас уже на собственных CDN обрабатывается, а облачный CDN мы держим на всякий случай.
— Правильно ли я понимаю, что свой CDN вы никому не шарите, он чисто для RUTUBE?
— Для RUTUBE и других Цифровых активов Холдинга, да.
— Я к тому, что это не может стать частью бизнеса, как бывает у некоторых?
— Может быть, в следующем году мы будем готовы думать в сторону коммерциализации CDN, потому что такая глобальная сеть, будет интересна на рынке.
— Да. Мы даже на своей стороне, хотя у нас нет ни разу видеоконтента, но CDN — это большая и нужная история для всех. А с уходом условных Cloudflare и прочих сейчас заметно, что CDN-то дорогой.
Потому что он, условно, был бесплатный для каких-то маленьких сайтов и прочего. И есть ощущение, что на этом рынке грядет большая конкуренция, потому что не очень много за вменяемые деньги есть операторов поставки.
— Это точно. Ценники облачных CDN, по нашим расчётам, в 5-10 раз дороже, чем косты на наш собственный CDN.
— Если мы говорим про огромное количество серверов, которые вы обслуживаете, какие фундаментально самые крупные задачи выполняют эти серверы? То есть это обработка видео… И на что больше всего тратится ресурс?
— Думаю, примерно одинаково. Самое глобальное — это хранение видео, потом обработка и, соответственно, раздача этого контента. Это всё, что касается CDN. Под ML и под ИИ тоже большие кластера. И оставшееся — как раз сами приложения, потому что в RUTUBE сейчас больше 200 приложений (backend, frontend и так далее).
— Если мы говорим про искусственный интеллект, какие сейчас технологии вы используете у себя и как они выражены на платформе?
— Я думаю, самое явное — это рекомендательные системы. Если не углубляться в названия моделей, например, коллаборативная фильтрация, то есть градиентные бустинги. И сейчас экспериментируем и готовимся к внедрению всяких трансформеров, чтобы они обрабатывали пользовательскую историю. В целом, если говорить про рекомендательную систему, сейчас ещё на главной у нас есть подборки для вас, они сделаны с помощью ИИ. На основе тестов они, например, собирают на 75% больше CTR и watch time, чем те, которые редакция вручную делает.
Модерация, само собой. Когда под миллион видео прилетает, никакого штата, наверное, не хватит, чтобы руками всё это просматривать. Поэтому, естественно, все видео, которые приходят, они обрабатываются ИИ. И всё подозрительное подсвечивается для модеров «обратить внимание» и так далее.
Затем тегирование видео. Эта история используется и для рекомендаций, чтобы понять, что именно на видео — машина, марка. Может аудиодорожку тоже анализировать, если там стендап какой-нибудь. Затем эти теги используются в рекомендации, и в рекламе, например, тоже могут использоваться. Всякие генеративные истории — это генерация обложек видео, аватаров и так далее.
— А под рекламой понимается, что можно выставлять свою рекламу релевантно контексту видео?
— Да, для этого и делается. Так называемая таргетированная реклама.
— У меня сложилось ощущение, что если, например, в видео говорят про кошачий корм, то будет вставка рекламы про кошачий корм. Или это я чуть-чуть неправильно понял?
— Всё верно. Это как раз и является таргетированной рекламой. То есть можно на профиль пользователя таргетироваться, можно относительно видео таргетироваться.
— А если мы говорим про модерацию, как сегментируется контент, что просматривают модераторы, какие параметры? Мы говорим про порно, или про какой-то жёсткий контент, или сейчас мы разговариваем про пиратский контент?
— На самом деле есть очень много моделей, все они определяют разный тип контента и последовательно всё это прогоняется. Но основное — это насилие, пиратка, оружие, наркотики. Ещё аудиодорожки, само собой, проверяются тоже на нецензурные слова, агрессивную речь и так далее.
— То есть если много мата, то это может не пройти модерацию?
— Это будет подсвечено в любом в случае, и если ИИшка что-то отловила, это всё равно пойдёт к модератору. То есть финальное решение всё равно принимает человек.
— А есть какие-то сценарии, когда ИИ сам забраковывает материал, и его не нужно просматривать человеку? Если это что-то совсем жестокое, скажем.
— Именно для видео нет, оно всё равно попадет человеку, потому что мы потом, дообучаем на этих данных модельки. Всякие комментарии, да, там просто такой объём, что, даже если помечено, всё равно нереально обработать. Поэтому, если я не ошибаюсь, 80% нелегитимных комментариев банятся ИИшкой — до модераторов уже не доходит.
— Каждый видос, который как-то помечается искусственным интеллектом, он идёт к человеку, тот его просматривает и даёт добро к публикации или нет, правильно?
— Да, всё верно.
— За счёт этой системы не сильно увеличивается время загрузки видео на платформу?
— У нас сейчас микс постмодерации и премодерации. Есть каналы, у которых всё ОК, хорошая репутация, не было никаких нарушений и так далее, их могут перевести на постмодерацию, например. На премодерации находятся какие-нибудь подозрительные каналы, либо которые уже совершали некоторые нарушения.
— Если мы говорим сейчас про тяжёлые видео, и прошлая новость про загрузку 8К видоса, если не ошибаюсь, сам исходный видеофайл весил порядка 100 гигабайт, а по итогу после всей обработки он весил в районе 400 мегабайт. Какие вы используете современные кодировки, чтобы так сильно сжимать, но при этом не терять качество в видеоматериалах?
— Такого уровня сжатия удаётся добиться с помощью видеокодека AV1 — он сейчас один из тех, которые в промышленной эксплуатации самые эффективные. Но у него есть проблемы с аппаратными декодерами, так как он относительно свежий. На всех новых устройствах уже есть аппаратные декодеры, но на старых могут быть проблемы, и посмотреть 8К на каком-нибудь девайсе 5-10-летней давности может быть затруднительно. То есть тут такой баланс, что, да, он очень круто жмёт, экономит трафик пользователям и так далее, но там нужны аппаратные декодеры AV1 на устройствах, чтобы прям смотреть 4К или тем более 8К.
— Если мы говорим про современные форматы, какие вы новые истории внедряете помимо вертикальных видео, интерактивных роликов, HDR, который вы активно используете?
— Мы сейчас много вкладываем в генеративное ИИ — от создания аватарок, обложек и так далее до аудио и видео генерации.
Также так называемая ультра персонализация для рекомендательных систем — это персонализация на основе графовых эмбеддингов и мультимодальных LLM, чтобы учитывать контекст просмотра, эмоциональный анализ и так далее. Это должно дать ещё лучший CTR, watch time и в целом вовлечённость пользователя.
И были ещё эксперименты с WebGL-плеерами, с элементами геймификации. Но это тоже пока что внутренняя экспериментальная история.
— Если мы говорим про генеративные модели по аудиодорожке и прочие, как они в теории могут применяться авторами?
— За последние несколько лет в генерации аудио и видеоконтента наблюдается уже большой прогресс, и смотря некоторые видеоролики, если не всматриваться, то тяжело их отличить от реальных. Для автора это может быть возможностью генерировать видеоконтент по написанному сценарию: «Сгенерируй мне видео по такому сценарию» и так далее, чтобы снизить затраты на продакшн, реализовать самые креативные идеи и прочее — это существенно облегчит жизнь блогеру и откроет перед ним новые дороги.
— Я понял. Но если мы говорим про генеративный ИИ для авторов на вашей стороне — это сейчас тестируется или это уже можно как-то потыкать каким-то блогерам?
— Пока что всё на этапе тестирования.
— Мне недавно попадались именно короткие ролики, сгенерированные искусственным интеллектом, и они набирают огромное количество просмотров, то есть там сотни миллионов просмотров. Это будет интегрировано именно в RUTUBE или это будет какая-то отдельная платформа?
— Хотели именно в рамках RUTUBE Studio это делать.
— И как в таком случае монетизировать контент? Потому что сейчас многие провайдеры, наоборот, не хотят монетизировать контент, который создан искусственным интеллектом, специально его помечать и прочее.
— Специально помечать будем в соответствии с законодательством, действующим на тот момент, а вопрос по монетизации открытый — вернёмся к нему, когда будем уже готовиться к запуску.
— Это ведь огромная нагрузка, которая будет на ваши сервера, насколько я понимаю?
— Да. Видеокарты сильно утилизируются в рамках использования, потому что есть тяжёлые модельки генеративные, особенно которые генерят видео- и аудиоконтент.
— На рынке ИИ и генеративных моделей в России пока мало кто представлен. На западе, понятно, там много кто генерирует. То есть вы потенциально можете занять достаточно большую нишу?
— Да, в рамках видеохостинга это удобно, что пользователь заходит в студию, там сразу ИИ-помощники и так далее. А не то, что ты зашёл в одно место, потом что-то перетащил в другое. Идея такова, чтобы реализовать всё в рамках RUTUBE.
— В целом, возвращаясь к моему последнему вопросу, какие ключевые технологии в ближайшие 3–5 лет вы рассматриваете и подготавливаете, это, скорее всего, искусственный интеллект, я правильно понимаю?
— В целом да, там всё связано с искусственным интеллектом. Есть ещё эксперименты с 3D-графикой, отрисовкой 3D в плеере. Но это, скорее всего, тоже будет что-то, что сгенерирует искусственный интеллект.
— Нет ли ощущения, что искусственный интеллект заберёт огромную долю трафика, который ранее получали обычные пользователи? Или просто увеличивается в целом весь трафик?
— Я думаю, трафик будет увеличиваться и за счёт того, что снизится порог входа для авторов, то есть у нас будет больше контента, будет больше зрителей, и люди будут больше проводить времени вообще за потреблением именно видеоконтента.
— А если мы говорим про короткие ролики в формате reels, shorts, они на RUTUBE существуют?
— Да, есть RUTUBE Shorts
— Если говорить про трафик на шортсы и большие видосы, насколько сильно они отличаются?
— Сейчас в десятки раз больше трафика на большие, именно если оценивать пропускную способность на сети. Шортсы всё-таки меньше весят, чем горизонтальные видосы и время смотрения там меньше. Поэтому суммарно там объём watch time, если так говорить, в десятки раз меньше. Но я думаю, что потребление шортсов будет расти.
— Как устроена команда разработки RUTUBE? Какие вы сейчас используете технологии у себя внутри? Какие видите зоны роста внутри команды?
— Если говорить про то, как построена именно команда, то всё достаточно стандартно. Это продуктовые фичи команды c agile-структурой, двухнедельные спринты. То есть фича команды — это обычно команда до 10 человек, в которой есть бэкендеры, фронтендеры, ML-инженеры (если там нужен ИИ), девопсы, которые потом выкатят этот сервис в продакшн, тестировщик, продуктовые и delivery менеджеры.
Если говорить про технологии, само собой микросервисная архитектура. Я уже упоминал, что в RUTUBE более 200 сервисов, хотя года три назад было 10-15 монолитов. Но сейчас уже можно сказать, что мы перешли на микросервисную архитектуру. Всё это крутится, естественно, в Kubernetes.
Оперативно через пайплайны раскатывается, это если говорить про CI/CD.
Какие зоны роста? Для бизнеса важно максимально быстро выкатывать фичи и так далее. Поэтому мы развиваем сервисы для разработчиков, чтобы они могли себе оперативно поднимать окружение. Типа SaaS для разработки, чтобы каждый разработчик мог поднять себе мини-RUTUBE, накатить изменения своего сервиса и из бранча протестировать, и потом всё это в релиз быстро выкатить.
A/B-тесты везде, где можно, уже внедряем. Осталось совсем немного, чтобы мы могли любые изменения тестировать и получать продуктовую аналитику, насколько пользователи приняли и насколько им это нужно.