к.э.н. Лавлинский Николай Евгеньевич, технический директор ООО «Метод Лаб»
Каждый владелец сайта хочет, чтобы он работал быстро. Это не прихоть технических специалистов, а реальная потребность бизнеса. Скорость напрямую влияет на экономические показатели: конверсию, вовлечённость, отказы, подписки, процент возвратов.
Конечно, хочется иметь волшебную кнопку, нажав которую мы получаем быстрый сайт сразу и без проблем. Именно такой кнопкой называет себя сервис Cloudflare. Более того, вы получаете не только скорость, но и безопасность «из коробки». Давайте посмотрим, что нам предлагает Cloudflare с точки зрения скорости сайтов.
Cloudflare — это распределённая сеть (CDN), обладающая набором услуг по ускорению сайтов и безопасности. Сеть имеет более 100 точек присутствия по миру и более 15 Тбит суммарной пропускной способности.
Принцип работы аналогичен другим CDN — все запросы пользователей проксируются через точки (сервера) Cloudflare и либо обслуживаются напрямую из сети (если ресурс закеширован), либо производится запрос на исходный сервер (где работает ваш сайт) и затем отправляется ответ пользователю.
Так как сайт обслуживается через сервера Cloudflare, есть возможность сохранять и изменять копии статического и динамического контента сайта.
Как использование Cloudflare и других CDN поможет нам ускорить сайт?
Ускорение сайта в этом случае можно разделить две части: сетевые и контентные оптимизации.
Сетевые оптимизации заключаются в сокращении задержек между сервером и пользователем за счет использования географически распределённой сети и маршрутизации трафика через ближайший узел. Кроме того, узлы CDN как правило специально настроены на высокую скорость отдачи контента: TCP/IP тюнинг, быстрый TLS, поддержка современных протоколов, быстрое подключение к сети, скоростные диски и т. д.
Контентные оптимизации могут включать в себя: оптимизацию изображений, сжатие текстовых ресурсов, кеширующие заголовки, минификацию кода, отложенную загрузку элементов. Часть из этих оптимизаций прозрачны и не требуют внимания со стороны разработчиков (например, сжатие), другие — могут приводить к ошибкам в работе сайта (например, асинхронная загрузка JS-кода) и требуют осторожности в применении.
При подключении к Cloudflare у вас есть выбор тарифных планов: бесплатный, Pro ($20 в месяц), Business ($200 в месяц) или Enterprise (индивидуальный).
Ускорение нам обещают на планах от Pro и выше. Бесплатный план предполагает только использование CDN, без возможностей по оптимизации контента.
В план Pro включены почти все возможности по ускорению: оптимизация изображений (Polish и Mirage), кеширование контента, асинхронная загрузка JS (Rocket loader). Не хватает только Railgun (оптимизация соединения между вашим сервером и сетью Cloudflare), время минимального кеширования 1 час (в Business — 30 минут).
Однако есть важное уточнение, которое не указано напрямую в тарифных планах, но рассмотрено в форуме поддержки: на тарифных планах ниже Business пользователь обслуживается не с ближайшего хоста Cloudflare, а с наиболее дешевого для Cloudflare. Это значит, что весь смысл использования CDN теряется.
Для российских ресурсов возможности CDN Cloudflare на сегодня представляют собой единственную точку присутствия в Москве. Так что, если вы используете хостинг в Москве, то сокращения дистанции до пользователя скорее всего не будет.
Мы рассмотрели, какие возможности по ускорению сайта могут предоставлять CDN, какие реализованы в Cloudflare и на каких тарифных планах. Какого эффекта можно ожидать от такого ускорения и кому оно будет действительно полезно. А для наглядности мы посмотрим на альтернативные способы решения проблем скорости и их трудоёмкость.
Сетевые оптимизации. Основная оптимизация — географически распределённая сеть для снижения задержек. В реализации Cloudflare имеет смысл только при наличии международной аудитории сайта и использования планов, начиная с Business. Альтернативные решения: собственная реализация распределённой системы (крайне трудоёмко), использование CDN с большим количеством точек в России (низкая трудоёмкость), раздача контента с собственного оптимизированного сервера (средняя трудоёмкость).
Контентные оптимизации. Оптимизации картинок, сжатие текста, кеширование контента может быть полезно для многих сайтов, которые не внедряют эти технологии на своей стороне. Наиболее полезной будет функция оптимизации изображений, остальные оптимизации гораздо проще во внедрении. Альтернативные решения: настройка сервера (сжатие) — низкая трудоёмокость, оптимизация изображений сторонними сервисами (средняя трудоёмкость), самостоятельная оптимизация (высокая трудоёмкость).
Оптимизация процесса рендеринга. Этот тип оптимизации отсутствует в Cloudflare, хотя может оказывать значительное влияние на реальную скорость сайта. К этому типу относятся оптимизации размещения CSS, JS-кода, отложенная загрузка элементов, оптимизация приоритетов элементов страницы. Дело в том, что этот процесс сложно автоматизируется и требует ручной работы. Трудоёмкость этой работы может варьироваться от средней до высокой, в зависимости от проекта.
Ускорение генерации HTML на сервере. Этот аспект также не учитывается Cloudflare, так как требует вмешательства в серверное окружение. Частичное решение этой проблемы — кеширование динамического контента (страниц) легко реализуемо как с Cloudflare, так и без. Однако для серьезных проектов полное кеширование динамики невозможно. При этом скорость генерации HTML является ограничивающим фактором для всего сайта. Если страница отдаётся с сервера за 10 секунд, уже неважно, какой CDN используется и как оптимизирован контент — пользователь уже закрыл вкладку браузера.
Итак, мы рассмотрели возможности применения сервиса Cloudflare для ускорения сайтов. Краткий вывод: он может быть полезен для сайтов с распределённой аудиторией за пределами России, у которых нет проблем с серверной скоростью (время генерации страницы).
Также не стоит забывать о возможных рисках использования Cloudflare: возможность получить заблокированный в России IP-адрес, ограничения тарифных планов (когда вас настоятельно попросят перейти на более старший) и практику совмещённых SSL-сертификатов.
К сожалению, пока не существует единой кнопки «сделать сайт быстрым», несмотря на все маркетинговые заявления.