Что такое CDN - как работает сеть доставки контента и как выбрать провайдера
В панель

CDN: что такое и как это работает

Тирекс Тирекс Самый зубастый автор 13 июля 2022

Рассказываем про Content Delivery Network. Что такое сеть доставки контента, на каких технологиях основана и как выбрать провайдера CDN.

Изображение записи

Почему «тяжелые» многостраничные порталы с массой графического и видеоконтента порой открываются быстрее, чем сайты с несколькими картинками на страницу? Высокая скорость загрузки ресурса часто говорит о том, что сайт задействует CDN (Content Delivery Network), или сеть доставки контента. 

В статье подробно расскажем о том, что это и как работает CDN-сеть, в чем ее плюсы и минусы. Также дадим рекомендации по выбору провайдера и поделимся статистикой.

Что такое CDN (Content Delivery Network) 

Говоря простыми словами, CDN — это сетевая инфраструктура с распределенной серверной базой, которая предназначена для уменьшения времени доставки контента. 

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

Основные термины CDN

Чтобы лучше понять, как работает технология CDN, введем несколько терминов:

  • Caching Rule (правило кэширования). Правило определяет, как долго ваш контент остается в кэше на пограничном уровне, то есть определяет TTL, время жизни объекта.
  • Edge Node (пограничный узел). Локальные серверы распределены по всему миру, они доставляют кэшированный контент пользователям, сокращая время передачи. Пограничные узлы также можно называть «точками присутствия» (англ. Points of Presence, или PoPs) — разницы между этими терминами нет. Точки присутствия кэшируют контент в течение установленного времени, которое определяется правилами кэширования. 
  • Origin (исходный сервер, сервер-источник или «ориджин»). Это сервер, где хранятся исходные данные и откуда пограничные узлы извлекают нужную информацию. В качестве ориджина могут выступать, например, облачное хранилище или выделенный сервер. CDN может иметь и несколько серверов-источников.
  • Purge (очистка). Под термином Purge понимается механизм и процесс очистки контента на пограничных узлах для последующего обновления из ориджинов. Регулярная очистка и кэширование необходимы для того, чтобы конечные пользователи быстро получали актуальные данные после обновлений на сайте.
  • Restriction (ограничение). Пограничное правило, регулирующее, кто может, а кто не может получать доступ к содержимому из кэша. Примером такого ограничения является разрешение запросов только из определенных доменных зон, регионов или групп IP-адресов.
  • Time to Live, TTL (время жизни). Период времени, в течение которого ресурс кэшируется на пограничном узле (Edge Node, PoP), до того, как будет выполнено новое извлечение данных из источника, Origin.

О типах контента

Что касается данных, они делятся на два типа — статический и динамический.

Динамический контент

Динамический контент — содержимое страницы, которое изменяется в зависимости от ряда факторов: 

  • время посещения, 
  • местоположение пользователя, 
  • устройство, с которого просматривается страница, 
  • и других. 

Динамика генерируется скриптами, которые изменяют содержимое страницы. В итоге она не будет выглядеть одинаково для всех. Это делает веб-страницы более персонализированными, добавляет возможности для интерактивного взаимодействия.

Примеры динамических данных: 

  • новостные сайты с информацией, которая зависит от местоположения посетителя сайта или статуса входа в систему, 
  • ленты социальных сетей; например, лента «Вконтакте» будет выглядеть совершенно по-разному для каждого пользователя и он может взаимодействовать с контентом — поставить лайк, поделиться, прокомментировать пост.

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

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

Статический контент

Статический контент — это любые файлы на сервере, которые остаются неизменными или меняются минимально каждый раз, когда загружаются. 

Примеры статического контента: 

  • HTML-файлы, 
  • изображений, 
  • видео. 

Так, статьи в блоге Selectel – это статический контент. После публикации текст и картинки практически не меняются. Статический (постоянный) контент во многом похож на печатный материал: чаще всего на определенной странице будут один и тот же текст и фотографии, независимо от условий взаимодействия с контентом и личности читающего.

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

Браузеры и CDN могут кэшировать статику в течение указанного периода времени (TTL) и предоставлять ее до тех пор, пока она запрашивается. Организовать это несложно, потому что статическое содержимое, в отличие от динамического, не меняется или меняется незначительно – может измениться одна иллюстрация или добавится запятая в текст.

Принцип работы CDN

Теперь опишем, как организованы сети Content Delivery Network. Обычная схема передачи данных в интернете (без использования CDN) реализована так, что все пользователи получают информацию напрямую с определенного сервера, который может находиться как угодно далеко. 

CDN же позволяет загружать контент сразу, буквально в течение нескольких секунд. При этом неважно, находится ли исходный сервер (ориджин — вспоминаем термины) в Петербурге, Каире или Буэнос-Айресе.

Схема работы CDN следующая:

  1. У CDN-провайдера, к которому подключен сайт, есть группа уже настроенных серверов, размещенных на определенной территории (к примеру, в Европе, Азии или в обоих регионах). Эти серверы предназначены для раздачи прежде всего «тяжелого» статического, а также стримингового контента (видео), потому что динамика почти всегда грузится быстро.
  1. Теперь пользователь, который запрашивает страницу, переадресуется уже не к ориджину, а к ближайшему пограничному узлу. То есть для передачи контента задействуется высокопроизводительная сеть CDN-провайдера.
  1. При передаче стриминговых видео, которые записываются в режиме Live, ориджины после получения очередного пакета видеоданных сразу же ретранслируют его на пограничные узлы, с которых видеоконтент загружают ближайшие пользователи. Это и обеспечивает практически мгновенную загрузку тяжелых файлов.

Как организовать раздачу контента

Посмотрим, как это сделать, на примере услуги CDN в Selectel

  1. Переходим в раздел CDN в панели управления. 

2. Нажимаем Создать CDN-ресурс.

создание cdn-ресурса

3. Вводим имя ресурса, выбираем провайдера (Selectel также предлагает CDN от Akamai).

выбор провайдера

4. Указываем источник контента — домен вашего сайта (например, ****.com), откуда CDN будет брать статические файлы.

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

Подробнее о том, как работать с Content Delivery Network в Selectel, читайте в базе знаний

Вот и все: теперь при загрузке страницы вся статика (прежде всего изображения, анимация, видео) будет подгружаться распределенную инфраструктуру CDN-провайдера. 

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

Как CDN понимает, где находится ближайший кэширующий сервер

Чтобы перенаправлять пользователей к ближайшим точкам присутствия, существуют два решения — GeoDNS и AnyCast. 

Как работает GeoDNS

Когда пользователь запрашивает ваш DNS-сервер, тот ищет местоположение пользователя на основе его общедоступного IP-адреса в пакете запроса и находит ближайшую к этому местоположению точку присутствия. 

Технология основана на алгоритме преобразования IP-адреса в географические координаты. Он известен как geo-IP.

Как работает Anycast

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

Принцип Anycast-рассылки заключается в том, что диапазон IP-адресов объявляется в сообщениях BGP сразу нескольких маршрутизаторов. По мере того, как эта информация распространяется по сети, маршрутизаторы узнают, какой из их соседей обеспечивает кратчайший топографический путь к объявленному IP-адресу и перенаправляют сетевой трафик к этому узлу.

Как кэшируется контент

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

Контент будет кэшироваться только в той точке присутствия, к которой обратился пользователь. Людям из других регионов придется ждать, пока тот же процесс завершится на ближайшем к нему Edge Node. 

Чтобы решить эту проблему, узлы CDN настраивают таким образом, чтобы они выполняли обмен кэшированным контентом непосредственно между собой, без обращения к ориджину. При этом такой обмен пограничные узлы выполняют по запросам пользователей.

Вернемся к примеру с городами: пользователь из Владивостока решил заглянуть на петербургский интернет-портал, однако на ближайшей к нему точке присутствия статика с этого портала еще не кэширована. Этот пограничный узел не будет обращаться к ориджину в Санкт-Петербург, а просто запросит кэшированную версию этого контента у соседей — например, в Чите или Хабаровске. В результате время загрузки для пользователя из Владивостока существенно сократится.

Каким веб-сайтам лучше использовать технологию CDN

Целевыми клиентами CDN-провайдеров являются прежде всего порталы с обилием тяжелого статического контента и стриминговые сервисы. Скорость загрузки ресурсов в этом случае серьезно влияет на опыт пользователей, которые, при серьезном замедлении работы, просто уйдут с «тормозящего» сайта или сервиса. Ускорение работы веб-ресурсов с тяжелым контентом очень важно не только для привлечения аудитории, но и для сохранения лояльности пользователей.

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

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

Теперь мы плавно подошли к рассмотрению плюсов и минусов CDN.

Преимущества использования серверов CDN

Более быстрая доставка контента

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

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

Большее количество одновременных посетителей 

Хороший CDN-провайдер гарантирует, что большое количество пользователей из разных регионов и стран сможет получать доступ к сети одновременно и без задержек. 

Постоянная доступность

Серверы CDN работают всегда, и ваш сайт будет хотя бы частично доступен, даже если на главном сервере случился сбой. Например, основной сервер какого-то СМИ или маркетплейса «прилег» под нагрузкой. Благодаря CDN пользователям будет доступен статический контент из кэша — они смогут почитать часть новостей или полистать «сохранившиеся» карточки продуктов.

Стабильная доставка контента

Это, в частности, касается медиаконтента высокого качества, такого как видео и изображения в высоком разрешении. CDN обеспечивает доставку контента без потери качества и положительно влияет на производительность вашего веб-сайта. Сегодня уже 83% маркетологов заявляют, что видеоконтент помогает им генерировать лидов. Поэтому для бизнеса крайне важно, чтобы можно было предоставлять пользователям такие материалы в высоком разрешении.

Контроль нагрузки на серверы

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

Защита от скачков трафика

Если ваш веб-сайт внезапно испытывает большой приток трафика (например, при публикации «горячих» новостей), это еще один повод воспользоваться услугами CDN. Большая сеть серверов обеспечивает их доступность и масштабируемость в режиме онлайн практически в любых случаях. Многие компании не готовы к значительному росту трафика. Порой не только их сайт, но и хостинг-провайдер не могут с этим справиться из-за отсутствия распределенной сети серверов, между которыми можно «разделить» нагрузку. 

Преимуществ использования CDN достаточно много, давайте теперь рассмотрим недостатки подхода. 

Минусы и возможные альтернативы CDN

Дополнительные расходы

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

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

Расположение точек сети

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

Региональные ограничения

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

Чтобы CDN работал на пользу сайта или сервиса, необходимо соблюдать три условия: 

  1. Пользователи должны загружать один и тот же контент.   
  2. Часто и массово заходить на ресурсы; если ресурс не очень популярный кэширования данных сайта не произойдет. 
  3. Находиться в разных локациях; если весь трафик вы получаете из одной географической точки, CDN будет лишней строчкой в бюджете. 

Потеря конфиденциальности

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

На что обратить внимание: чек-лист по выбору CDN-провайдера

Перечисленные риски означают, что нужно тщательно выбирать провайдера. 

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

  • Располагает разветвленной структурой пограничных узлов в регионах, приносящих сайту наибольший трафик.
  • Имеет резервные схемы обхода блокировок по домену или IP-адресу.
  • Гарантирует полную безопасность передачи ценной информации клиента.
  • Имеет безупречный «послужной список», то есть работает долго и без нареканий. У такого веб-сервиса отзывчивая служба поддержки, а клиент уверен, что его сайт будет доступен пользователям 24/7.
  • Предлагает услуги по разумным ценам.

Самостоятельная настройка CDN

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

Поэтому создать собственные эффективные сети доставки и распределения контента по силам только крупным компаниям. Среди них WordPress и конструктор Wix.com, использующие собственные CDN для поддержки сайтов своих клиентов. Разумеется, CDN-сети есть и у таких IT-гигантов, как Google, Microsoft, крупных облачных сервисов и большинства ведущих корпораций в других отраслях (Amazon, Alibaba).

Статистика пользователей CDN

Понимаем, что статистика — вещь довольно скучная, однако это самый наглядный способ продемонстрировать преимущества продукта или технологии. 

В заключение добавим несколько говорящих цифр по CDN: 

  • По итогам 2021 года среднее количество запросов через CDN составило 42,3% от общего числа. При этом в сегменте данных Third party (информация, получаемая из сторонних источников) процент CDN-запросов составил значительно больше половины — 62,8%.
  • Число сайтов из топ-1000 (по количеству посетителей), так или иначе использующих сервисы CDN, в прошлом году достигло 62,3% от общего количества в десктопных версиях и 61,1% — в мобильных.
  • Сайты, входящие в первый миллион рейтинга популярности, тоже активно задействовали технологию Content Delivery Network — по данным 2021 года сетями доставки контента пользовались 32,8% таких сайтов в десктопных версиях и 33,7% — в мобильных.
  • Общий процент запросов через CDN для всех сайтов составил для десктопных версий 27,1%, а для мобильных — 26,9%. Таким образом, более четверти всех ресурсов интернета уже используют CDN для ускорения трафика.

Итак, мы разобрались с определением сети доставки контента и принципами работы CDN. Оценили преимущества и недостатки технологии, рассмотрели, есть ли альтернативы CDN.

Автор: Роман Андреев

Читайте также: