В последние годы пользователи Интернета все чаще сталкиваются с проблемой «тяжелого» контента, вызывающего снижение скорости загрузки веб-сайтов и сервисов. Это не лучшим образом сказывается на деятельности компаний с широко распределенной по регионам или странам аудиторией и разработчиков мобильных приложений и мультимедийных проектов. Решить подобную проблему помогают сети доставки контента - 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-провайдера влияет специфика бизнес-задач фирмы. Поэтому, при необходимости поиска оптимального решения в данной сфере, обращайтесь к специалистами нашей компании.