Проектирование масштабируемой архитектуры видеохостинга

Разделите загрузку, асинхронное перекодирование и выдачу через CDN. При 50 млн зрителей и пяти видео в день получается 250 млн просмотров в сутки — около 2,9 тыс. стартов в секунду в среднем.

Короткий ответ

Что ответить на собеседовании

Разделите загрузку, асинхронное перекодирование и выдачу через CDN. При 50 млн зрителей и пяти видео в день получается 250 млн просмотров в сутки — около 2,9 тыс. стартов в секунду в среднем.

Подробный разбор

Ответ с пояснениями

Условие

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

Функциональные требования:

  1. Возможность загрузки видеоматериалов в систему.
  2. Просмотр видеоконтента пользователями.
  3. Оценка видео (лайки/дизлайки).
  4. Добавление комментариев к видео.
  5. Система рекомендаций, построенная на истории просмотров.
  6. Поиск видео по ключевым словам и метаданным.
  7. Хранение и трансляция роликов в разных качествах (480p, 720p, 1080p, 4K).

Ожидаемые нагрузки:

  • Более 100 млн зарегистрированных пользователей.
  • Около 50 млн активных пользователей ежедневно.
  • Каждый активный пользователь в среднем смотрит 5 видеороликов в сутки.
  • Объём хранимых данных измеряется в петабайтах.

Дополнительно: сформулировать набор нефункциональных требований (надёжность, безопасность, latency, доступность, масштабируемость, мониторинг и т.д.), которые необходимо учитывать при проектировании системы.

Ответ

Разделите загрузку, асинхронное перекодирование и выдачу через CDN. При 50 млн зрителей и пяти видео в день получается 250 млн просмотров в сутки — около 2,9 тыс. стартов в секунду в среднем.

Это не весь RPS: сегменты видео, перемотки и метаданные создают больше запросов, а пиковый коэффициент нужно уточнить. Оригиналы и варианты качества хранятся в object storage, задачи transcoding — в очереди; проигрыватель использует адаптивный streaming. Метаданные, комментарии, реакции, поиск и рекомендации имеют отдельные модели хранения. Требуются resumable upload, идемпотентные jobs, модерация, контроль доступа, резервирование и наблюдаемость. SLO старта воспроизведения, rebuffering, RPO/RTO и пропускную способность рассчитывают по длительности/битрейту, не только числу аккаунтов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее