Недавно к нам обратился клиент, у которого потенциально 2 млн пользователей и ему нужно разработать стриминговый сервис, где 10К-20К пользователей могут смотреть медиа-контент в разрешении 4К онлайн.
Фильм 4К весит 5 гб, если 10К пользователей одновременно его смотрят, то это большая нагрузка на хранилище данных. Сложность в том, чтобы сбалансировать трафик на сервис, чтобы система не перегружалась, а пользователи не испытывали дискомфорта.
Чтобы этого добиться, нужно написать ПО таким образом, чтобы плеер или серверная часть отдала контент порционным пользователям. Так мы распределим нагрузку.
Для хранения контента на 2 млн человек, потребуется от 300-400 ТБ устойчивого хранилища. Нужно построить системы хранения данных.
Нужна защита хранилища, если какой-то жесткий диск выйдет из строя, чтобы не потерять лицензионный контент.
Когда 10 тыс. человек запрашивают одно видео или хотя бы два-три видео, это легко решается кешированием. А если эти 10 тыс. смотрит разный контент, то стандартная СХД не справится. Скорость не позволит находить это на жестких дисках.
В реализации нужно:
— Построить архитектуру хранения и обслуживания клиентов СХД с высоким уровнем IOPS — количество запросов, которые приходят к системе хранения данных за секунду. Чем ровнее запросы из разных секторов жестких дисков, тем сложнее и дольше приходится обрабатывать их сервера.
— Построить балансировщики, которые обрабатывают большое количество разного контента на обычных HDD дисках и отказоустойчивых хранилищах.