Что такое CDN: как устроена и кому нужна сеть доставки контента
Oscar Nord / UNSPLASH
Content Delivery Network (CDN) влияет на вашу жизнь в сети больше, чем вы подозреваете. Вы можете оценить ее влияние при загрузке любого контента на сайте и приложениях: аудио, видео, стриминг, изображения, тексты, графика. CDN помогает быстро доносить контент для пользователя, что важно во многих сферах. Например, из-за долгой загрузки страницы интернет-магазина клиент уйдет к конкурентам, а если сайт медиа долго загружается, то читатель выберет другое интернет-СМИ.
В материале вместе со специалистами ITGLOBAL.COM рассказываем про устройство CDN и его важность для бизнеса и пользователей.
Что такое CDN
CDN — распределенная сетевая архитектура, созданная для ускорения доставки контента пользователям. При обычном хостинге клиент запрашивает контент у сервера, хранящего данные. Сервер обрабатывает запрос и передает пакет данных, после чего сайт или приложение загружается. CDN-хостинг включает в цепочку дополнительные серверы, отвечающие за кэширование контента.
Сеть доставки контента имеет свои серверы в максимальном количестве географических точек. За счет распределенной сети CDN-серверов расстояние между исходным сервером и пользователем не влияет на скорость передачи данных.
История CDN
Компания Akamai запустила первую CDN в 1998 году, методы которой служат основой для современных сетей доставки контента. CDN первого поколения были ориентированы на статический контент: ПО, изображения, архивы.
По мере распространения облачных и мобильных вычислений, развивались услуги CDN второго поколения. Они обеспечили эффективную доставку более сложного динамического мультимедийного и веб-контента. С ростом числа пользователей интернета увеличивалось число провайдеров CDN и предлагаемых ими услуг.
Некоторые бизнес-модели CDN основаны на объеме доставленного контента. Другие провайдеры предоставляют базовые услуги за фиксированную плату или даже бесплатно, взимая дополнительную плату за повышение производительности и оптимизацию.
Принципы работы CDN
Архитектура CDN включает в себя:
- сервер-источник — на нем хранятся исходные данные, которые извлекают пограничные узлы. Исходным сервером выступает облачное хранилище или выделенный сервер. CDN может включать в себя несколько подобных серверов;
- пограничный узел, или точка присутствия — географически распределенный локальный сервер. Пограничные узлы доставляют кэшированный контент пользователям.
Размещенный на сервере-источнике контент дублируется на точках присутствия. Когда пользователь заходит на сайт, контент загружается с ближайшего промежуточного узла. При отсутствии CDN посетители сайта запрашивают информацию и получают ответы непосредственно от первичного источника. Подобный метод увеличивает требования к серверу-источнику: каждый запрос наращивает нагрузку, а удаленное от источника расположение пользователя увеличивает время загрузки страниц.
Пограничный узел — основной компонент CDN. На нем хранят копии или кэшированные версии контента веб-сайта, полученного от исходного сервера, пограничный узел предоставляет контент по запросу. Кэширующие серверы работают как обратные прокси-серверы — точки подключения, расположенные перед веб-серверами, они работают как посредники для запросов конечных пользователей. Обратные прокси-серверы перехватывают запросы, направляют их на веб-серверы и передают ответы обратно посетителям сайта.
Помимо этого, в архитектуре CDN могут быть добавлены экранирующие серверы (origin shields). Они также функционируют как обратный прокси и защищают сервер происхождения от перегрузок.
Главная функция экранирующего сервера — разгрузить сервер-источник от всплесков трафика, он проксирует запросы, добавляя еще один уровень защиты.
Механизмы CDN
Существует несколько механизмов, благодаря которым работает CDN:
- правило кэширования — определяет, как долго контент остается в кэше на пограничном уровне;
- время жизни (Time to Live, TTL) — временной период кэширования на пограничном узле до нового извлечения данных из сервера-источника;
- очистка — механизм и процесс очистки контента на точках присутствия;
- ограничение — правило, регулирующее доступ к содержимому из кэша, например, разрешение запросов только из определенных географических или доменных зон.
Типы контента
Контент, обрабатываемый CDN, делится на два типа.
Статический контент — файлы на сервере, которые не меняются во время загрузки: HTML-файлы, изображения, видео.
Динамический контент — данные, которые меняются в зависимости от пользователя. На динамический контент влияет пол, история просмотра, время сеанса, местоположение, устройство пользователя и другие факторы.
Динамические данные генерируются скриптами, изменяющими содержимое веб-страницы. Один и тот же сайт будет выглядеть по-разному для пользователей, из-за чего он становится персонализированным и более интерактивным. Самый яркий пример — ленты соцсетей, реагирующие на лайки, комментарии и репосты пользователей.
Статический и динамический контент по-разному нагружают серверы. Статический контент использует оперативную память, а динамический — скорость сети. Оба типа контента на одном сервере создают на него двойную нагрузку.
Инструменты CDN
Чтобы понять, где находится ближайший пограничный узел, и верно направить пользователя, существует два инструмента CDN.
GeoDNS — инструмент основан на алгоритме преобразования IP-адреса в геокоординаты. После поступившего запроса DNS-сервер определяет местоположение пользователя по IP-адресу и находит ближайшую точку присутствия.
Anycast — инструмент работает с протоколом BGP, по которому передается информация о соседних сетях и расстоянии до них. По функциям Anycast аналогичен GeoDNS.
Какие задачи решает CDN
На производительность веб-сайта или приложения влияет много факторов: DNS и настройки хост-сервера, качество и оптимизация кода, а также расстояние между веб-сервером и местоположением пользователей — эту проблему решает CDN.
Время отклика контента, размещенного в сети CDN, существенно ниже по отношению ко времени отклика (загрузки) контента пользователем напрямую с сайта контент-генератора. CDN позволяет мгновенно загружать контент вне зависимости от нахождения сервера-источника. Пользователь может находиться в Белграде, а сервер — в Бангкоке. CDN-серверы позволяют получить доступ большему количеству одновременных посетителей из разных стран.
CDN помогает распределить нагрузку на серверы и защитить пользователей от скачков трафика. Вычислительные ресурсы и пропускная способность исходного сервера ограничены, если поступает больше клиентских запросов, чем может обработать веб-сервер, сайт или приложение могут оказаться недоступными. За счет кэширующих серверов потребление полосы пропускания на исходном сервере снижается, что позволяет экономить сетевые ресурсы.
Если в архитектуре функционирует несколько исходных серверов, CDN работает как инструмент балансировки нагрузки, распределяя входящие запросы. Балансировка помогает справиться с перегрузкой трафика и оптимизирует мощности серверов.
CDN повышает безопасность инфраструктуры. Поддерживать локальные решения по борьбе с DDoS-атаками дорого и сложно. CDN-серверы распределены по континентам и предоставляют широкую полосу пропускания, за счет чего DDoS-атака на сайт будет распределена на несколько серверов. Многие CDN также используют дополнительные механизмы фильтрации и безопасности, которые улучшают и совершенствуют стратегии защиты от кибератак.
Сеть доставки контента повышает безопасность приложений, CDN могут быть оснащены WAF (брандмауэром веб-приложений). Этот инструмент предназначен для защиты приложений от уязвимостей: блокировки кибератак и распространенных эксплойтов.
CDN обеспечивает шифрование трафика. Использование шифрования SSL/TLS повышает безопасность. CDN шифрует трафик, когда он проходит через пограничные серверы, что особенно важно, если у сайта нет собственного SSL-сертификата.
Кому нужен CDN
Локальному интернет-магазину или сайту с легкими статистическими данными, скорее всего, не понадобится CDN для оптимизации. Компаниям, работающим с большим количеством данных, особенно динамического контента, CDN поможет сформировать и удержать аудиторию. Как правило, сетью динамического контента пользуются:
- крупные интернет-магазинам с распределенной аудиторией и пиковыми нагрузками;
- стриминговые сервисы с потоковой трансляцией аудио- и видеоконтента;
- компании, активно использующие мобильные приложения;
- игровые порталы: дистрибьюторы и поставщики услуг облачного гейминга.
Текущее положение CDN на рынке
CDN — неотъемлемая часть современной интернет-архитектуры. Сети доставки контента родились из необходимости поддерживать эффективную работу веб-сайтов и служат этой цели по сей день.
С каждым годом набирает популярность «тяжелый» контент: соцсети обрастают дополнительными функциями, а стриминговые аудио- и видеосервисы приобретают все большую массовость.
Исследование, проведенное компанией Portent в 2022 году, показало, что даже небольшое увеличение скорости загрузки страниц оказывает значительное влияние на коэффициент конверсии:
- время загрузки в 1 секунду приводит к повышению конверсии на 40%;
- загрузка страницы за 1 секунду имеет в 3 раза более высокий коэффициент конверсии, чем загрузка за 5 секунд;
- страница с загрузкой за 10 секунд имеет в 10 раз меньший коэффициент конверсии, чем та, которая загружается за 1 секунду.
Основные термины
В небольшом глоссарии напомним основные термины CDN.
Content Delivery Network (CDN) — сеть доставки контента, распределенная сетевая архитектура, созданная для ускорения доставки контента пользователям.
Сервер-источник — на нем хранятся исходные данные, которые извлекают пограничные узлы. Исходным сервером может быть облачное хранилище или выделенный сервер. CDN может включать в себя несколько подобных серверов.
Пограничный узел или точка присутствия — географически распределенный локальный сервер. Пограничные узлы доставляют кэшированный контент пользователям.
Статический контент — файлы на сервере, которые не меняются во время загрузки. Например, HTML-файлы, изображения, видео.
Динамический контент — данные, которые меняются в зависимости от пользователя. На динамический контент влияет пол, история просмотра, время сеанса, местоположение, устройство пользователя и другие факторы.
Заключение
CDN повышает скорость загрузки сайтов и приложений. Этот фактор является ключевым для всех пользователей. Для компании, работающей на широкую аудиторию, CDN поможет оказывать качественные услуги и продвигать свои товары, но важно выбрать провайдера, который сможет удовлетворить всем требования качественного CDN.
ITGLOBAL.COM размещает CDN-серверы в 5 странах в трех частях света: Казахстан, Россия, Нидерланды, США и Канада. При использовании CDN время отклика веб-сервера редко превышает 10 мс, что позволяет максимально быстро доставлять контент всем пользователям интернета. CDN — необходимая часть инфраструктуры для любого проекта с большой аудиторией.
Полный текст статьи читайте на Компьютерра