CDN (Content Delivery Network)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 11:37, 9 ноября 2016.

CDN (англ. Content Delivery Network - сеть доставки (и дистрибуции) контента) — географически распределённая сетевая инфраструктура, позволяющая оптимизировать доставку и дистрибуцию контента конечным пользователям в сети Интернет. Использование контент-провайдерами CDN способствует увеличению скорости загрузки интернет-пользователями аудио-, видео-, программного, игрового и других видов цифрового контента в точках присутствия сети CDN.

История

Резкий рост Интернета в середине 90-х привёл к ситуации, что сервера тех лет не могли в одиночку выдержать нагрузку. Лимит производительности серверов и потребность во всё большей и большей производительности породила следующие фразы: “ферма серверов”, “иерархическое кеширование”. В ходе разработки и внедрения разных решений была замечена одна важная особенность: есть два типа контента — статический и динамический.

Динамический контент формируется сервером в момент получения запроса сервером, чаще всего при активном участии базы данных. Если на странице снизу надпись “page was generated in 0.333 seconds” — это как раз пример динамического контента.

Статический контент на сервере находится в готовом виде — кто бы ни прислал запрос, сервер будет отдавать одно и то же (с поправкой на возможные ACL). Важно, что содержимое при этом не меняется от запроса к запросу.

Статический и динамический контенты создают разный тип нагрузки на сервер. Когда раздаётся “динамика”, то важны процессор, IO (для базы данных) и память. Когда раздаётся статика, процессор почти не важен, IO важно только для тех файлов, которые не кешированы, а основное требование — это скорость сети. Заставлять раздавать статику серверами, которые раздают динамику, можно, но это совмещение ролей, которое мешает друг другу. Особенно тяжело приходится в тот момент, когда IO от статики начинает мешаться с IO от динамики, а нагрузка на IRQ мешает выполнять скрипты динамики.
Ещё более важной деталью является то, что “динамический” обычно означает наличие “состояния” (сессии и связанных с ним данных), а статика — нет. Статику можно масштабировать горизонтально без сложных двухсторонних синхронизаций с центральным сервером. В случае с динамикой так не получится — нужна либо общая база данных, либо методы синхронизации и блокировок.

Средние и крупные компании начали раздавать статику и динамику с разных серверов, расположенных в разных местах планеты, уменьшая нагрузку на сайты с динамикой за счёт выноса с них статики на легко масштабируемые сервера. После чего сделать шаг до “аутсорса” раздачи статики было просто, и начали появляться компании, которые сделали раздачу статики основой своего бизнеса.

Преимущества

Одноточечная дистрибуция (слева) и дистрибуция средствами CDN (справа)

На скорость загрузки веб-страницы и её содержимого сильно влияет то, насколько далеко пользователь находится от сервера. Это происходит из-за того, что при использовании технологии TCP/IP, применяемой для распространения информации в сети Интернет, задержки при передаче информации зависят от количества маршрутизаторов, находящихся на пути между источником и потребителем контента. Размещение контента между несколькими серверами средствами CDN сокращает сетевой маршрут передачи данных и делает загрузку сайта быстрее с точки зрения пользователя.

Использование CDN снижает количество хопов, что существенно увеличивает скорость скачивания контента из сети Интернет. Конечные пользователи испытывают меньшую задержку при загрузке контента, отсутствие резких изменений скорости загрузки и высокое качество потока данных. Возникающая стабильность позволяет операторам CDN доставлять видеоконтент в формате HD, обеспечивать быструю загрузку файлов больших размеров или организовывать видеовещание с высоким качеством сервиса (QoS) и низкими затратами на сеть.

Технология CDN способна предотвратить задержки при передаче данных, возможные прерывания связи и потери на перегруженных каналах и стыках между ними. Управление нагрузкой при передаче сетевого трафика позволяет разгрузить магистраль и узлы сети, распределив возникающую нагрузку между удалёнными серверами.

Размещение серверов в непосредственной близости от конечных пользователей может увеличить исходящую пропускную способность всей системы. К примеру, наличие единственного порта 100 Мбит/с не означает данную скорость на всех участках сети, так как свободная пропускная способность магистрального канала в момент передачи может быть всего 10 Мбит/с. В случае, когда используются 10 распределённых серверов, суммарная пропускная способность может составить 10×100 Мбит/с.

Современные сети доставки и дистрибуции контента способны осуществлять автоматический контроль целостности данных на каждом из серверов сети. При этом гарантируется 100 % доступность контента для конечного пользователя в случае потери связности между узлами сети, выхода из строя центрального или удалённого сервера.

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

Технология

Сети доставки и дистрибуции контента состоят из географически распределённых многофункциональных платформ, взаимодействие которых позволяет максимально эффективно обрабатывать и удовлетворять запросы пользователей при получении контента.
При использовании сети CDN, данные центрального сервера интернет-ресурса реплицируются на периферийные платформы. Каждая платформа поддерживает в актуальном состоянии полную или частичную копию распространяемых данных. Узел сети, входящий в состав платформы, взаимодействует с локальными сетями интернет-провайдеров и распространяет контент конечным пользователям по кратчайшему сетевому маршруту с оптимального по загруженности сервера. Длина сетевого маршрута зависит от географической или топологической удалённости пользовательского компьютера от сервера или стоимости передачи трафика в регионе присутствия.

Кэширование является самым распространённым методом реализации CDN решения, так как предполагает оптимальное использование дискового пространства и связующих каналов сети. При этом максимальные затраты по времени загрузки файла (очередь файлов) берет на себя первый пользователь, обратившийся на оригинальный сервер контент-провайдера. Все последующие пользователи будут обращаться к уже загруженным репликам (HTTP-объектам) с ближайшего к ним сервера. Таким образом, на удалённых серверах хранится только популярный и часто запрашиваемый контент.

Крупные CDN могут состоять из огромного количества распределённых узлов и размещать свои сервера непосредственно в сети каждого локального интернет-провайдера. Многие CDN операторы делают акцент на пропускной способности связующих каналов и минимальном количестве точек присоединения в регионе присутствия. Вне зависимости от используемой архитектуры, главным предназначением подобных сетей является ускорение передачи как статического контента, так и непрерывного потока данных.

Тенденции CDN

Появление телекоммуникационных CDNs

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

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

Преимущества Telco CDN

Так как они владеют сетями, по которым передается видео контента, TELCO CDNs имеют преимущество по сравнению с традиционными CDNs.

Они владеют последней милей и могут доставлять содержание ближе к конечному пользователю, поскольку она может быть помещена в кэш глубоко в своих сетях. Это глубокое кэширование минимизирует расстояние, что видео данные передаются по общей сети интернет и обеспечивает его более быстро и надежно.
При работе над своей собственной инфраструктурой доставки контента, операторы TELCO имеют лучший контроль над использованием своих ресурсов. Операции управления контентом, выполняемые CDNs, как правило, применяются без или с очень ограниченной информацией о сети (например, топологии, использование и т.д.) из Telco-операторов, с которыми они взаимодействуют. Они создают ряд проблем для Telco-операторов, которые имеют ограниченную сферу действия в условиях влияния этих операций на использование их ресурсов.

В отличие от этого, развертывание Telco-CDNs позволяют операторам осуществлять свои собственные операции управления контентом, которые позволяют им лучше контролировать использование своих ресурсов и, таким образом, обеспечить более высокое качество обслуживания и опыт для конечных пользователей.

Опция EDNS-клиент-подсети EDNS0

В августе 2011 года глобальный консорциум ведущих провайдеров интернет-услуг во главе с Google объявили о своем официальном реализации EDNS-клиента-подсети IETF Internet-Draft, который предназначен для точной локализации ответов разрешения DNS. Инициатива предполагает ограниченное число ведущих DNS и поставщиков услуг CDN. С помощью опции EDNS-клиент-подсети EDNS0 рекурсивные DNS серверы CDNs будут использовать IP-адрес запрашивающего подсети клиента при решении запросов DNS. Если CDN полагается на IP-адрес DNS-разрешения имен вместо клиента при разрешении запросов DNS, он может неправильно определить местонахождение клиента, если клиент использует адреса Google эникастного для их разрешения DNS, которые могут создать проблемы латентности. Первоначально 8.8.8.8 DNS-адреса компании Google, расположенные в Калифорнии, потенциально далеко от места запрашивающего клиента, но теперь серверы Google Public DNS доступны по всему миру.

Список популярных CDN

Публичные CDN:

  • NetDNA, 2009, минимальный контракт 1 год, цены от ¢1 до ¢6 за Гб в зависимости от объёма, трафик за пределами EU/US в полтора раза дороже, хранение бесплатно
  • Rackspace Cloud Files — ¢4-¢12 за Гб полосы, ¢10 за Гб хранения (реселлит Акамай)
  • MaxCDN от ¢3 до ¢8 за Гб трафика
  • Amazon CloudFront — EU/US — от ¢6 до ¢12 за Гб, хранение бесплатно.
  • CacheFly — ¢20-¢30, минимальный контракт $99/месяц, превышение места оплачивается ($15/Гб)
  • CDN77 — ¢3-¢15/Гб
  • CloudFlare — трафик не оплачивается, различный уровень сервиса стоит различных денег, начиная от базового бесплатного, следующего за ним в $5/месяц, до $200/месяц на лучшем.
  • BitGravity — от ¢7 до ¢20 за Гб, в зависимости от объёма и региона
  • Level 3 — от $100 в месяц, ¢10-¢25 за Гб
  • Leaseweb — от ¢6 до ¢8 за Гб, с минимальной стоимостью от $60/месяц
  • Windows Azure CDN от ¢3 до ¢20
  • CDNsun — от ¢3 до ¢5 за Гб

Приватные CDN:

  • Internap
  • Akamai
  • Limelight Networks
  • AT&T
  • Peer1
  • EdgeCast

Ссылки

  1. Хабрахабр [Электронный ресурс]: Знакомство с Content Delivery Network / Дата обращения: 26.06.16. — Режим доступа:https://habrahabr.ru/company/webzilla/blog/236511/
  2. Content delivery network. (2016, October 27). In Wikipedia, The Free Encyclopedia. Retrieved 14:52, October 27, 2016, from https://en.wikipedia.org/w/index.php?title=Content_delivery_network&oldid=746459273
  3. VEBO labs [Электронный ресурс]: Способы ускорения загрузки вашего сайта / Дата обращения: 26.06.16. — Режим доступа: http://webo.in/articles/habrahabr/15-yahoo-best-practices/#cdn