Чтобы обеспечить качественную работу сайта, необходимо использовать надежную CDN (content distribution network – сеть доставки контента). Базовая услуга, которую предоставляют CDN-провайдеры, – это обеспечение более быстрой загрузки сайта за счет отправки пользователю статичных файлов с контентом со своих серверов. CDN-провайдеры оказывают и другие услуги по ускорению сайтов, которые выходят за рамки отправки статичных файлов с контентом.
CDN-провайдеры не только пользуются более мощными каналами, обладают большим количеством серверов по всему миру и лучшим сетевым пирингом, чем вы сможете организовать. Они также ведут постоянную работу над оптимизацией своего стека используемых решений и инфраструктуры. Другими словами, CDN-провайдеры используют экономию на масштабе, чтобы предоставить вам услугу, которая быстрее, лучше и более экономична, чем если бы вы попробовали сделать такое решение самостоятельно.
Однако провайдеров CDN сейчас достаточно много. Как же потенциальному клиенту сделать правильный выбор?
Постановка задачи
Начать стоит с ваших собственных требований.
Что должна делать CDN
Некоторые вещи могут считаться базовой функциональностью, такие как Origin-Pull или Gzip-сжатие. Но бывает необходимость и в более сложных функциях, например, назначение специальных CNAME для безопасных страниц.
Что должны быть в состоянии сделать вы, как пользователь CDN?
Список может быть приблизительно таким:
- Просматривать в реальном времени статистику использования CDN.
- Загружать файлы по FTP.
- Выполнять команду Purge-All через API.
- Изменять заголовки кэширования браузера, которые отправляет ваш сервер
Насколько CDN производительна?
Далее стоит перейти к рассмотрению производительности CDN. С самого начала есть несколько базовых моментов, на которые надо обратить внимание, и, если они не выполняются, то данного CDN-провайдера можно сразу отбросить.
- Убедитесь, что CDN работает быстрее, чем сервер в вашем исходном месторасположении.
- CDN должна одинаково хорошо справляться с отправкой как мелких файлов (менее 5 КБ), так и больших объемов.
- CDN должна уменьшить влияние географии пользователя на задержку в загрузке страниц. При оценке этого фактора, конечно, полезно изначально узнать распределение посетителей сайта.
Поскольку современные сайты обслуживаются все более сложной инфраструктурой, есть и другие параметры, которые нужно оценить в процессе выбора CDN-провайдера.
Время ответа DNS
CDN различаются по сложности своих настроек DNS, и это может давать проблемы со скоростью. Достаточно часто бывает, что более короткое время ожидания (wait time) просто «убивается» более длительным временем ответа DNS (response time).
Также имейте в виду, что производительность DNS на последней миле у конечного пользователя будет сильно отличаться от ваших тестов. Конечные пользователи полагаются на обработку DNS их провайдерами интернет, или публичными DNS-серверами, в то время как внутренний мониторинг CDN работает с DNS-серверами, которые «рядом» с той машиной, на которой выполняется тест.
Время соединения
Проверьте время соединения (connect time) и убедитесь, что у вашего CDN-провайдера мощный канал, низкая задержка и отсутствуют потерянные пакеты. Также стоит проверить, что скорость не упадет в пиковые часы, и что ваши соединения направляются на правильный пиринг. Например, если ваши конечные пользователи находятся на Verizon FIOS, то бессмысленно идти через пять других сетей только потому, что у вашей CDN нет прямого пиринга с Verizon.
Время ожидания
Этот параметр помогает вам оценить, отдается ли ваш контент сразу с CDN, или сначала CDN «достает» его с вашего исходного сервера. Большое время ожидания (wait time) также является индикатором потенциальных проблем с загрузкой или неправильного конфигурирования на уровне CDN или вашего сервера, например, неправильные установки устаревания кэша.
CDN будет отдавать гораздо быстрее тот контент, который является «горячим», то есть запрашивался 100 000 раз и более за прошедший час, чем тот, к которому обращаются всего несколько раз в час.
Если контент находится в памяти, он отдается быстрее, если же для доступа к нему CDN должна обратиться к обычному жесткому диску, это будет гораздо медленнее. Поэтому одна из рекомендаций – выбирать CDN, которые работают на твердотельных накопителях. В этом случае CDN будет способна обрабатывать больше запросов в секунду. Это означает, что пользователи будут получать свой контент быстрее.
Небольшая подсказка: убедитесь, что указанные выше параметры стабильны во времени, не рассматривайте только средние значения! Помните, что хорошая производительность заключается не только в скорости, но и в постоянстве. Хорошие средние значения могут иметь очень неприятные пики.
Пропускная способность
Убедитесь, что пропускная способность CDN выше вашего исходного сервера, независимо от размера файлов.
Контроль прохождения по сети (traceroutes)
Вам нужно проверить, каким путем осуществляется соединение. Многие CDN используют коммерческие базы геолокаций по IP, и эти данные могут быть неверными. Если ваша CDN отправляет запрос в Англию при запросе из Лос-Анджелеса, тут что-то не так!
Другие моменты производительности CDN
Большинство CDN дает вам доступ к статистике, поэтому вам стоит отслеживать процент попадания в кэш (cache hit/miss rate), то есть насколько часто CDN приходится обращаться к вашему исходному серверу, если она не может найти нужный контент у себя. Если CDN настроена правильно, это не должно происходить слишком часто.
Также нужно обратить внимание на то, что будет происходить, если CDN не находит у себя контент. Сколько времени занимает загрузка файла в CDN? Сколько времени проходит, пока Cname станет активным?
Насколько хорошо CDN работает с публичными DNS-серверами, такими как OpenDNS, Dyn или Google? Все больше DNS-трафика проходит через них, и это может повлиять на то, как работает CDN в части балансирования нагрузки из разных геолокаций.
Изучите открытые данные по производительности CDN
Существует ряд сервисов, публикующих данные о производительности CDN на основе данных реальных пользователей. Например, Cedexis измеряет производительность десятков различных CDN. Другой источник – Conviva.
Поддержка
Многие CDN-провайдеры обеспечивают поддержку в режиме 24/7/365, но есть также и другие факторы:
- Уровень квалификации и дружелюбности специалистов поддержки.
- Как быстро решаются проблемы.
- Доступность вашего аккаунт-менеджера, к которому можно эксалировать проблему.
Цена
Цена всегда важна. Однако имейте в виду, что на рынке CDN зачастую используются индивидуальные тарифные планы под конкретного клиента, поэтому не надо полагаться на информацию только из официального прайс-листа на сайте провайдера.
Разбираясь с информацией по цене за услуги, CDN важно четко понять все аспекты и параметры, которые на нее влияют:
- Доставка контента: как правило, это самая большая статья затрат, измеряется обычно или в гигабайтах, или в скорости трафика в Mbps. Для большинства клиентов расчеты за гигабайт наиболее приемлемы, если при этом отсутствует дополнительная оплата за пиковые нагрузки.
- Хранение: CDN будет взымать с вас плату за хранение вашего контента в зависимости от объема.
- Поддержка: стандартная поддержка и SLA должны быть доступны по умолчанию, хотя последнее время наблюдается тренд к тому, что провайдеры CDN стараются брать дополнительную плату даже за базовую поддержку.
- Дополнительные услуги: в зависимости от вашего провайдера, десятки различных дополнительных услуг могут предлагаться за дополнительную плату. Важно с самого начала разобраться, что включено в ваш пакет, а что будет оплачиваться дополнительно.
Заключение
После рассмотрения всех указанных факторов вы и ваша IT-команда должны быть в состоянии ответить на следующие вопросы:
- Может ли CDN улучшить скорость нашего сайта или сервиса в тех ключевых рынках, где мы не присутствуем физически?
- Если да, то насколько? Это ускорение на 5%, на 20%, на 200%?
- Как это ускорение будет транслироваться в улучшение выручки? Необходимо обеспечить способ отслеживания влияния CDN на выручку в долгосрочной перспективе. Мы знаем, что ускорение сайта обычно приводит к улучшению конверсии, но нужны конкретные цифры, которые можно показать руководству компании, чтобы подтвердить правильность решения работы через CDN.
Кроме ускорения сайта, CDN приносит ряд дополнительных выгод:
- Перенос статичных файлов в CDN высвобождает часть мощностей ваших серверов и каналов.
- CDN может помочь вам в преодолении DDOS-атак.
- CDN хорошо подготовлены, чтобы справиться с сезонными пиками трафика.
После того, как вы выбрали CDN-провайдера и начали с ним работать, необходимо продолжать отслеживание производительности CDN и ваших исходных серверов. Это позволит вам вовремя обнаружить возможные проблемы и устранить их.