CDN: что такое и как работает технология
Рассказываем про Content Delivery Network. Что такое сеть доставки контента, на каких технологиях основана и как выбрать провайдера CDN.
Почему «тяжелые» многостраничные порталы с массой графического и видеоконтента порой открываются быстрее, чем сайты с несколькими картинками на страницу? Высокая скорость загрузки ресурса часто говорит о том, что сайт задействует CDN (Content Delivery Network), или сеть доставки контента.
В статье подробно расскажем о том, что это и как работает CDN-сеть, в чем ее плюсы и минусы. Также дадим рекомендации по выбору провайдера и поделимся статистикой.
Что такое CDN (Content Delivery Network)
Говоря простыми словами, CDN — это сетевая инфраструктура с распределенной серверной базой, которая предназначена для уменьшения времени доставки контента.
То есть это группа особым образом настроенных серверов, расположенных в разных геоточках. Серверы выступают в качестве узлов, которые позволяют ближайшим пользователям быстро загружать контент. Таким образом, разветвленная сеть 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.
О типах контента
Еще одна вводная, с которой следует начинать разговор о технологии CDN, это типы контента. Их два — статический и динамический.
Динамический контент
Динамический контент или динамические данные — содержимое страницы, которое изменяется в зависимости от ряда факторов, например:
- время посещения,
- местоположение пользователя,
- устройство, с которого просматривается страница, и так далее.
Динамика генерируется скриптами, которые изменяют содержимое страницы. В итоге она выглядит по-своему для разных посетителей. Этот механизм позволяет веб-страницам быть более персонализированными и добавляет возможности для интерактивного взаимодействия.
Примеры динамических данных:
- новостные сайты с информацией, которая зависит от местоположения посетителя,
- ленты социальных сетей; например, лента «Вконтакте» будет выглядеть уникально для каждого пользователя, и он может взаимодействовать с ней — ставить лайки, делиться записями, комментировать их.
Динамические веб-страницы не хранятся в виде статических HTML-файлов. Вместо этого в ответ на такие события, как взаимодействие с пользователем или вход пользователя в систему, генерируется новый HTML-файл, который и отправляется в веб-браузер.
Так как динамический контент уникален для каждого пользователя, его нельзя кэшировать. Однако развитие технологий CDN позволяет ускорять даже динамический контент. Правда, это могут делать далеко не все провайдеры, так как за ускорением динамического контента стоит целый список отдельно настраиваемых функций и условий.
Статический контент
Статический контент — это любые файлы на сервере, которые остаются неизменными или минимально меняются каждый раз, когда загружаются.
Примеры статического контента:
- HTML-файлы,
- изображения,
- видео.
Так, статьи в блоге Selectel — это статический контент. После публикации текст и картинки практически не меняются. Статический (постоянный) контент во многом похож на печатный материал: чаще всего на определенной странице будет один и тот же текст и фотографии независимо от условий взаимодействия с контентом и личности читающего.
Стандартный процесс кэширования постоянного контента заключается в том, что в кэше сохраняется копия статического файла — например, изображения. Это необходимо, чтобы файл был ближе к пользователю и быстрее загружался при повторном обращении.
Браузеры и CDN могут кэшировать статику в течение указанного периода времени (TTL) и предоставлять ее до тех пор, пока она запрашивается. Организовать это несложно, потому что статическое содержимое, в отличие от динамического, не меняется или меняется незначительно.
Как появилась технология CDN
В основе создания технологии CDN лежит отличие динамического контента от статического. Первый требует мощного процессора и большого объема оперативной памяти, а для работы со вторым ключевую роль играет скорость сети. Чтобы снизить нагрузку, владельцы веб-сервисов придумали раздавать статический и динамический контент с разных серверов. Затем крупные ресурсы с широкой географией посетителей стали распределять свой статический контент по нескольким серверам в разных точках на карте.
Поскольку потребность в этом механизме росла, со временем появились организации, которые предоставляли соответствующие услуги. Первой такой организацией стала компания Akamai, которую создали Дэниел Левин и Томсон Лейтон в 1998 году. Сегодня Akamai остается одним из крупнейших CDN-провайдеров в мире.
Постепенно технология CDN стала использоваться не только для раздачи статического контента, но и для обеспечения стабильности работы сайтов в моменты пиковой нагрузки. Еще одна функция CDN, которая появилась не так давно — раздача потокового видео и аудио в рамках стриминговых трансляций. Технология CDN сделала этот формат доступным людям по всему миру.
Принцип работы CDN
Теперь опишем, как организованы сети Content Delivery Network. Обычная схема передачи данных в интернете (без использования CDN) реализована так, что все пользователи получают информацию напрямую с определенного сервера, который может находиться как угодно далеко.
CDN же позволяет загружать контент сразу, буквально в течение нескольких секунд. При этом неважно, находится ли исходный сервер (ориджин — вспоминаем термины) в Петербурге, Каире или Буэнос-Айресе.
Схема работы CDN следующая:
- Допустим, есть сайт, подключенный к CDN-провайдеру. У него есть группа уже настроенных серверов, размещенных на определенной территории (к примеру, в Европе, Азии или в обоих регионах). Эти серверы предназначены для раздачи прежде всего «тяжелого» статического, а также стримингового контента, потому что динамика и так почти всегда грузится быстро.
- Пользователь, который хочет открыть страницу, переадресуется не к ориджину, а к ближайшему пограничному узлу. То есть для передачи контента задействуется высокопроизводительная сеть CDN-провайдера.
- При передаче стриминговых видео, которые записываются в режиме реального времени, ориджины сразу же ретранслируют контент на пограничные узлы, с которых его загружают ближайшие пользователи. Это и обеспечивает практически мгновенную загрузку тяжелых файлов.
Представим, что ваш основной сервер находится в Перми. Если к вам на сайт зайдет пользователь из Токио, CDN автоматически выберет ближайший к нему сервер и загрузит контент оттуда — так получится куда быстрее, чем запрашивать его из ориджина на Урале. Однако это сработает только в том случае, если кто-то в Токио или окрестностях уже работал с вашим сайтом. В противном случае для первого посетителя из Японии контент будет грузиться с ориджина, и это займет больше времени.
Как CDN снижает нагрузку на сервер
Еще одна полезная опция CDN — оптимизация работы популярных сайтов, на которые поступает много запросов. Например, первый человек в вашем регионе, который захочет посмотреть на YouTube трейлер нового Аватара, потратит на это больше времени, поскольку видео будет грузиться с основного сервера. Зато остальные его «соседи» посмотрят трейлер гораздо быстрее, так как хостинг выдаст им копию, сохраненную в кэше ближайшего сервера CDN.
Если CDN-серверы Google, на которых работает YouTube, исчезнут из России, все видеоролики будут идти с основного сервера, следовательно, загрузка займет больше времени.
Таким образом, CDN-серверы распределяют поток запросов между собой, сохраняя стабильность работы основного сервера. Благодаря этому свойству они также защищают сайты от DDoS-атак.
А как работает сайт без CDN?
Без CDN контент грузится дольше. Скорость загрузки зависит от расстояния между пользователем, который отправляет запрос, и дата-центром, который этот запрос обрабатывает. Хорошо, если они находятся в одном городе, а вот если на разных континентах?
Представьте, что в одном онлайн-кинотеатре вот-вот выйдет долгожданный фильм. Там давно анонсировали премьеру и всячески подогревали интерес пользователей, поэтому ожидаемая посещаемость ресурса в день первого показа стремится к пиковой. Без CDN основной сервер может попросту не выдержать нагрузки и упасть в самый ответственный момент. Легко представить, как это скажется на репутации сервиса.
Если же для сайта онлайн-кинотеатра используется сеть CDN-серверов, нагрузка распределится относительно равномерно, и контент будет грузиться без проблем. Аудитория кинотеатра останется довольной, и можно будет планировать следующую премьеру.
Итак, мы разобрались в принципах работы CDN, а теперь перейдем от теории к практике. Обсудим, как организовать сеть CDN-серверов, и каким сервисам эта технология особенно пригодится.
Как организовать раздачу контента
Посмотрим, как это сделать, на примере услуги CDN в Selectel
- Переходим в раздел CDN в панели управления.
2. Нажимаем Создать CDN-ресурс.
3. Вводим имя ресурса, выбираем провайдера (Selectel также предлагает CDN от Akamai).
4. Указываем источник контента — домен вашего сайта (например, ****.com), откуда CDN будет брать статические файлы.
5. Нажимаем Создать CDN-ресурс. CDN-провайдер создаст домен по умолчанию, с которого будет происходить раздача контента. Далее клиент может поменять домен по умолчанию на персональный домен.
Подробнее о том, как работать с Content Delivery Network в Selectel, читайте в базе знаний.
Вот и все: теперь при загрузке страницы вся статика (прежде всего изображения, анимация, видео) будет подгружаться распределенную инфраструктуру CDN-провайдера.
При этом для загрузки статического контента вовсе не обязательно использовать серверную базу владельца сайта. Куда удобнее настроить раздачу прямо из облачного хранилища (в Selectel также есть такая опция), обеспечивающих более быструю и стабильную загрузку тяжелых файлов.
Попробуйте CDN от Selectel
От 0,35 ₽/ГБ.
Как CDN понимает, где находится ближайший кэширующий сервер
Чтобы перенаправлять пользователей к ближайшим точкам присутствия, существуют два решения — GeoDNS и AnyCast.
Как работает GeoDNS
Когда пользователь запрашивает ваш DNS-сервер, тот ищет местоположение пользователя на основе его общедоступного IP-адреса в пакете запроса и находит ближайшую к этому местоположению точку присутствия.
Технология основана на алгоритме преобразования IP-адреса в географические координаты. Он известен как geo-IP.
Как работает Anycast
Anycast работает немного иначе, но обеспечивает аналогичные результаты. Решение связано с протоколом BGP, по которому передается информация о соседних сетях и о топографическом расстоянии до этих сетей.
Принцип Anycast-рассылки заключается в том, что диапазон IP-адресов объявляется в сообщениях BGP сразу нескольких маршрутизаторов. По мере того, как эта информация распространяется по сети, маршрутизаторы узнают, какой из их соседей обеспечивает кратчайший топографический путь к объявленному IP-адресу и перенаправляют сетевой трафик к этому узлу.
Как кэшируется контент
Часто процесс кэширования запускается при первом обращении к контенту. В этом случае пользователь, первым загружающий какой-нибудь статический файл, затрачивает на его загрузку больше времени. Зато у всех остальных пользователей, которые находятся в одном регионе с «первопроходцем», время загрузки значительно сокращается, поскольку файл уже будет кэширован.
Контент будет кэшироваться только в той точке присутствия, к которой обратился пользователь. Людям из других регионов придется ждать, пока тот же процесс завершится на ближайшем к нему Edge Node.
Для решения этой проблемы узлы CDN настраивают таким образом, чтобы они выполняли обмен кэшированным контентом непосредственно между собой, без обращения к ориджину. При этом такой обмен пограничные узлы выполняют по запросам пользователей.
Вернемся к примеру с городами: пользователь из Владивостока решил заглянуть на петербургский интернет-портал, однако на ближайшей к нему точке присутствия статика с этого портала еще не кэширована. Этот пограничный узел не будет обращаться к ориджину в Санкт-Петербург, а просто запросит кэшированную версию этого контента у соседей — например, в Чите или Хабаровске. В результате время загрузки для пользователя существенно сократится.
Чтобы сервер не сломался от количества запросов, для его защиты используют шилдинг. Он встраивается в сеть между источником и узлами CDN, таким образом защищая источник от перегрузок и атак, повышая его производительность и скорость работы.
Особенности работы с CDN
Одна из возможных трудностей в работе с CDN — это задержки кэширования. Например, если вы изменили файл на ориджине, на кэширующих серверах он может остаться прежним. Чтобы пользователи видели актуальные файлы, необходимо периодически чистить кэш.
Кроме того, следует держать в уме, что если вдруг другой сайт на вашем IP-адресе окажется заблокирован, блокировка коснется и вас. Так иногда бывает, но, к счастью, эту проблему можно решить — достаточно попросить CDN-провайдера изменить ваш IP-адрес.
Каким веб-сайтам лучше использовать технологию CDN
Целевыми клиентами CDN-провайдеров являются стриминговые сервисы и сайты с обилием тяжелого статического контента. Скорость загрузки ресурсов в этом случае серьезно влияет на опыт пользователей, которые при ощутимом замедлении работы просто покинут сайт или сервис.
Однако есть и другие ресурсы, которым технология CDN будет полезна. В первую очередь, это проекты с критически важным для клиентов контентом — например, банки, онлайн-школы и файлообменники. В случае неполадок на сервере их пользователи могут лишиться доступа к нужным материалам, а компания понесет не только финансовые, но и серьезные репутационные потери. CDN в этом случае позволит поддерживать доступ к важным файлам настолько долго, насколько это потребуется техподдержке сайта для восстановления основных серверов.
Также CDN помогает удерживать лояльность клиентов интернет-магазинов и маркетплейсов. В данном случае скорость работы сайта влияет не только на репутацию ресурса, но и на продажи.
Кроме того, сети доставки контента ощутимо ускоряют загрузку мобильного трафика. Сегодня это очень важно, ведь по статистике со смартфонов в сеть выходят чаще, чем с компьютеров.
Особенность состоит в том, что данные по сети мобильного интернета передаются с небольшой задержкой. По умолчанию мы ее практически не замечаем, и пока нет дополнительных «отягчающих обстоятельств», с ней можно просто смириться.
Однако как только появляется еще хотя бы один замедляющий фактор, низкая скорость загрузки становится заметной и может значительно сократить количество посетителей, а также уронить их лояльность. Таким фактором может быть географическая удаленность пользователя от основного сервера при условии, что сайт не подключен к сети CDN.
Для каких проектов и задач необходим CDN
Подробный разбор технологии для бизнеса.
СDN и SEO
Скорость загрузки страницы влияет на ее позицию в поисковой выдаче. Дело в том, что чем быстрее грузится страница, тем проще посетителям с ней взаимодействовать, и тем чаще они посещают ее. Это напрямую влияет на рейтинг сайта в выдаче. Кроме того, CDN автоматически сжимает текст и изображения на сайте, и это тоже ускоряет загрузку и улучшает SEO-показатели.
Однако следует помнить, что данные на пограничных узлах повторяют друг друга, и такие дубли могут восприниматься поисковыми системами негативно. Чтобы не допустить снижения рейтинга, следует использовать каноническую ссылку для основного сервера, а информацию на CDN-серверах обозначить как версию контента из основного источника.
Что если 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 брал на себя ответственность за обеспечение безопасности контента, который не предназначен для всех пользователей.
Чтобы CDN работал на пользу сайта или сервиса, нужно проанализировать пользователей и убедиться, что они:
- Загружают один и тот же контент.
- Часто и массово заходят на сайт; если он не очень популярный, кэширования данных не произойдет.
- Находятся в разных локациях; если вы получаете весь трафик из одной географической точки, CDN станет лишней строчкой в бюджете.
На что обратить внимание: чек-лист по выбору CDN-провайдера
Перечисленные выше риски означают, что нужно тщательно выбирать провайдера. Не ошибиться с выбором вам поможет примерный список характеристик:
- располагает разветвленной структурой пограничных узлов в регионах, приносящих сайту наибольший трафик;
- имеет резервные схемы обхода блокировок по домену или IP-адресу;
- гарантирует полную безопасность передачи ценной информации клиента;
- имеет безупречный «послужной список», то есть работает долго и без нареканий. У такого сервиса отзывчивая служба поддержки, а клиент уверен, что его сайт будет доступен 24/7;
- предлагает услуги по разумным ценам.
Конечно, можно не обращаться к провайдерам, а вместо этого настроить и подключить собственную CDN-сеть. Однако стоимость создания и обслуживания такой инфраструктуры будет значительно выше, если вы хотите обеспечить приемлемую скорость передачи данных через свой CDN-сервис.
Поэтому создать собственные эффективные сети доставки и распределения контента по силам только крупным компаниям. Среди них WordPress и конструктор Wix.com, использующие собственные CDN для поддержки сайтов своих клиентов. Разумеется, CDN-сети есть и у таких IT-гигантов, как Google, Microsoft, крупных облачных сервисов и большинства ведущих корпораций в других отраслях (Amazon, Alibaba).
Статистика пользователей CDN
Понимаем, что статистика — вещь довольно скучная, однако это самый наглядный способ продемонстрировать преимущества продукта или технологии.
В заключение добавим несколько говорящих цифр по CDN:
- По итогам 2022 года среднее количество запросов через CDN составило 47,6% от общего числа. При этом в сегменте данных Third party (информация, получаемая из сторонних источников) процент CDN-запросов составил значительно больше половины — 67%.
- Число сайтов из топ-1000 (по количеству посетителей), так или иначе использующих сервисы CDN, в прошлом году достигло 64% от общего количества в мобильных версиях.
- Сайты, входящие в первый миллион рейтинга популярности, тоже активно задействовали технологию Content Delivery Network — по данным 2022 года сетями доставки контента пользовались 37% таких сайтов в мобильных версиях.
Если подвести итог, то технология CDN будет полезна крупным ресурсам с большой аудитории, а также тем, кто размещает у себя большой объем статического контента. Кроме ускорения загрузки страниц эта технология обеспечивает защиту от DDoS-атак и позволяет подстраховаться от падений в моменты пиковой нагрузки.
Собственную сеть доставки контента могут позволить себе крупные компании, остальным будет вполне достаточно услуг CDN-провайдеров. Настройка сети не займет много времени, и ее можно будет отключить в любой момент.