CDN -- это сеть серверов, предназначенная для быстрой доставки контента большому числу пользователей. Состоит из связанных друг с другом серверов, географически расположенных в разных местах. Это позволяет равномерно распределить нагрузку между серверами, и отдавать пользователю данные с ближайшего к нему сервера.
Расстояние (географическое и топологическое) между пользователем и сервером важно. Задержка в получении данных определяется еще и тем, сколько маршрутизаторов находится между сервером и пользователем. Поэтому пользователь быстрее получает контент с сервера, находящегося ближе к нему. Помимо увеличения скорости доставки, еще снижается вероятность обрывов и потери данных, а также уменьшаются колебания ширины канала, что тоже идет на пользу качеству воспроизведения видео.
Сеть для доставки потокового видео или Video On Demand строится из медиа серверов. На эту роль годятся Wowza и FMS. Такая сеть состоит из одного Master (Origin) сервера и нескольких Egde серверов. Мастер сервер мониторит нагрузку на Edge сервера, первым принимает соединения от клиентов, и перенаправляет клиентов на географически ближайший или наименее загруженный edge сервер. В свою очередь Edge сервер также может иметь дочерние сервера, так что вся сеть имеет вид дерева.
В случае live stream сервиса поток данных от клиента-публикатора принимает мастер-сервер и ретранслирует его на edge сервера. А те ретранслируют его дальше -- клиентам или другим edge серверам.
В случае vod сервиса все видео файлы изначально находятся на мастер сервере, а edge сервера копируют их себе, если есть запросы от клиентов на данный ресурс. То есть, клиент запрашивает ресурс у egde сервера. Если тот имеет такой ресурс, то сразу отдает клиенту. Если не имеет, то запрашивает его у master сервера, копируют себе и отдает клиенту.
Не обязательно строить свою такую сеть, можно воспользоваться услугами готовой -- есть ряд компаний, предоставляющих такой сервис. Причем это может оказаться выгоднее, чем иметь собственный одиночный медиа сервер (если это FMS например).
Но нужно иметь в виду, что CDN предоставляют только Live и VOD сервисы. Разместить свой код на сервере и реализовать какую-то кастомную бизнес-логику не получится.
Здесь можно посмотреть CDN сервисы на базе FMS. На базе Wowza их не меньше, а может быть даже и больше.
На базе Erlyvideo тоже можно построить CDN сеть, и сейчас идут такие проекты. Но готового сервиса вы пока не найдете.
Add new comment