Все, что нужно знать о технологии CDN

Все, что нужно знать о технологии CDN 13 Января 2022

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

Что такое CDN и его преимущества

CDN (Content Delivery Network) представляет собой IT-инфраструктуру в виде сети, при помощи которой пользователи веб-сервисов и сайтов получают контент на более высокой скорости. При этом сервера, относящиеся к этой сети, распределяются территориально таким образом, чтобы свести время ответа от сервиса или сайта к минимуму.

С понятием CDN также взаимосвязан ряд терминов:

  • ориджин (origin) - сервер хранения исходных данных или файлов, передаваемых через CDN;
  • PoP (point of presence, точка присутствия) - кэширующие серверы, входящие в CDN и относящиеся к конкретным географическим локациям. Также эти серверы обозначаются термином edge;
  • динамический контент - контент, который генерируется на сервере при получении запроса. Данный контент может изменяться самим пользователем или загружаться из базы данных;
  • статический контент - бинарные файлы, аудио- и видеоматериалы, JS и CSS, которые хранятся на сервере в неизменном виде.

Применение Content Delivery Network дает ряд преимуществ, к которым относятся:

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

Также к преимуществам данной сети относится простота работы CDN и сравнительно невысокая стоимость услуг CDN-провайдеров.

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

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

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

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

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

Из CDN контент подгружается при помощи двух популярных технологий - GeoDNS и AnyCast. GeoDNS позволяет связать одно доменное имя с несколькими IP-адресами и перенаправлять пользователя на ближайший по географической точке сервер (который определяется по IP-адресу).

Технология AnyCast задействует общие адреса с проведением маршрутизации на серверы в границах конкретного региона. Переадресация на ближайшую точку присутствия проводится при обращении пользователя на адрес www.example.com. Разные сети, в которых есть точка присутствия, отправляют анонс провайдеру пользователя, и маршрутизатором выбирается ближайшая из них, и ответ также направляется кратчайшим маршрутом.

Как настроить CDN

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

  • создать origin, разместив статику сайта на отдельном домене (например, на static.example.ru или static.example.com);
  • для работы через CDN создать домен cdn.example.ru или cdn.example.com;
  • подключить CDN у провайдера, сообщив ему адреса доменов размещения статики и раздачи контента;
  • провести у своего DNS-регистратора настройку CNAME-записи с cdn.example.ru (com) на выделенный CDN-провайдером при подключении домен (который генерируется автоматически);
  • изменить на своем сайте имя домена на cdn.example.ru (com) - для статики, раздаваемой через CDN.

Статический контент, как правило, размещается в объектных хранилищах, которые интегрируются с облачными сервисами, а его раздача через CDN проводится при помощи плагинов и расширений для CMS (1С Битрикс, Drupal, Wordpress, Joomla и других). Работа веб-сервиса после подключения CDN продолжается на оригинальном сервере, а на серверах CDN размещаются части сайта, предназначенные для кэширования. При этом такой контент периодически актуализируется.

Недостатки и альтернативные варианты

Несмотря на удобство технологии CDN, она имеет некоторые недостатки:

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

Альтернативным вариантом сети распределения контента может стать облачный VPS/VDS-хостинг, обладающий большими возможностями масштабирования, высокой безопасностью и отказоустойчивостью. Но обслуживание облачного хостинга требует работы профессиональных программистов, поэтому затраты на это решение будут выше.

На что обратить внимание при выборе CDN-провайдера

Выбирая CDN-провайдера, стоит обратить внимание на:

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

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