Принято считать, что CDN идеально подходит для быстрой доставки статического контента и не очень помогает ускорять динамические приложения.
CDN заставляет веб-ресурсы работать быстрее главным образом за счёт кеширования. Контент сохраняется на ближайших к пользователям кеш-серверах, и следующие запросы уже не идут к источнику, а забирают информацию с ближайших точек присутствия.
А динамический контент уникален для каждого пользователя, и его нельзя кешировать. Значит, и ускорить доставку не получится?
На самом деле, если CDN поддерживает определённые функции, она отлично справится и с ускорением динамики. У EdgeЦентр CDN есть всё необходимое для этого.
Рассказываем о 8 технологиях, которые помогают нам доставлять динамический контент так же быстро, как и статический.
Быстрая доставка контента во многом зависит от связности сети.
Чем больше у CDN пиринг-партнёров, тем лучше связность и тем более короткий маршрут от источника до пользователя может быть построен. А чем короче маршрут, тем быстрее данные будут доставлены.
У нас более 6 000 партнёров по пирингу. Это значит, что мы можем построить лучший маршрут и передать информацию от источника до юзера максимально быстро.
HTTP/2 — это последняя версия протокола HTTP. Она была выпущена в 2015 году.
Использование этой версии во многом помогает ускорить отдачу контента — главным образом за счёт мультиплексирования, то есть передачи нескольких потоков данных по одному каналу.
Чтобы отправить информацию, HTTP сначала должен установить TCP-соединение. Для этого требуется «тройное рукопожатие»:
Только после этих трёх шагов соединение считается установленным.
В предыдущих версиях HTTP для передачи каждого элемента (JаvaScript, CSS, изображения и другое) открывалось отдельное TCP-соединение. «Тройное рукопожатие» нужно было проводить каждый раз, и это сильно замедляло доставку.
В HTTP/2 для всех этих данных устанавливается единое TCP-соединение. При этом разные типы информации могут отдаваться параллельно. Это значительно экономит время на передачу контента.
Как ещё HTTP/2 помогает ускорить доставку:
Мы заботимся не только о скорости доставки, но и о безопасности. На нашей CDN есть функция принудительного редиректа на HTTPS. Включить её можно в панели управления, в настройках ресурса.
Это значит, что даже если передача по HTTPS не настроена на источнике, то вы всё равно можете доставлять контент безопасно с помощью нашей сети.
Вы можете использовать собственные SSL-сертификаты. А можете получить бесплатный Let’s Encrypt — сертификат у нас.
При этом благодаря использованию HTTP/2 и TLS 1.3 безопасное подключение не будет замедлять отдачу контента. Ваше веб-приложение будет работать быстро и безопасно.
WebSocket — это независимый протокол на основе TCP. Он даёт возможность обмениваться сообщениями между клиентом и сервером в режиме реального времени.
Его принципиальное отличие от HTTP в том, что для получения информации клиенту не нужно каждый раз посылать запрос на сервер.
Возьмём для примера, допустим, чат. Чтобы клиент узнал, что ему пришло новое сообщение, браузер должен периодически отправлять запросы на сервер и узнавать, нет ли новой информации.
Минусы такого подхода:
WebSocket же устанавливает постоянное соединение. И когда появится новое сообщение, сервер сразу отправит его клиенту.
Это сокращает количество запросов и увеличивает скорость отдачи данных.
Если вы хотите быстро доставлять часто меняющийся динамический контент (сообщения в чатах, push-уведомления и любые другие данные, которые постоянно обновляются на сайте), без WebSocket вам не обойтись.
Протокол, с помощью которого будут передаваться данные, можно выбрать в панели управления нашей CDN.
IPv6 — более современная версия протокола IP. Он был разработан главным образом для того, чтобы решить проблему нехватки IP-адресов. Если в IPv4 для создания адреса используется 32-битная система, то в IPv6 — 128-битная.
Адрес IPv6 — это восемь 16-битных блоков, разделённых двоеточием. И общее количество IP-адресов, которые можно создать, составляет 2128 — это более 300 млн адресов на каждого жителя планеты. Такого количества должно хватить каждому устройству.
Но, кроме записи IP-адресов, в обновлённую версию протокола внесли и другие изменения, сделав его более эффективным для передачи информации.
Меньшая нагрузка на сетевое оборудование. Эта версия протокола не использует NAT — технологию для преобразования приватных адресов в публичные.
NAT был нужен в IPv4, так как там существовала проблема нехватки адресов. Внутри локальной сети у каждого устройства был приватный IP-адрес, который использовался для локальной передачи данных, например между устройствами внутри одной компании. Но для взаимодействия с другими ресурсами через глобальный интернет нужен был публичный, общедоступный адрес.
NAT преобразовывал приватный адрес в публичный — этот процесс называется трансляцией. При этом нужно было не только преобразовывать адреса, но и хранить информацию об установленных соединениях. Это увеличивало нагрузку на оборудование, и во время пиковых скачков трафика скорость падала.
В IPv6 нет необходимости в трансляции, не нужно хранить информацию о соединениях, а значит, нагрузка на оборудование меньше и скорость остаётся стабильной.
Более простые заголовки пакетов. В новой версии из них убрали несущественные элементы. Это упростило обработку, снизило нагрузку на маршрутизаторы и в целом сократило объём передаваемых данных.
Более быстрая маршрутизация. Структура адреса IPv6 устроена так, что маршрутизаторы на каждом уровне сети (крупные провайдеры, подсети, сети организаций) обрабатывают не весь адрес, а его часть. Это уменьшает размер таблицы маршрутизации, а значит, сокращает время на обработку.
Определяет чувствительные к задержкам пакеты и передаёт их в первую очередь. Такую возможность даёт функция QoS (Quality of Service). Это специальная технология, которая умеет определять тип трафика и приоритизировать его на основании этого.
Получается, IPv6 во многом более эффективен, чем IPv4, передаёт данные быстрее. Однако, чтобы перейти на него, нужно серьёзно модернизировать свою инфраструктуру.
Но если вы подключены к нашей CDN, то в этом нет необходимости. Мы используем IPv6 при доставке, даже если ваше оборудование ещё не обновлено до этого протокола.
Динамический контент доставляется быстро, а вы не тратите ресурсы на апгрейд.
Чем меньше весит контент, тем быстрее он будет доставлен пользователям. Но и жертвовать важными элементами в угоду размеру — не лучшая идея.
Эту проблему решает использование современных алгоритмов сжатия: Gzip, Brotli и WebP.
Gzip предназначен для сжатия текстового контента. Он находит в файлах одинаковые строки и объединяет их. За счёт этого размер данных уменьшается на 60–70%.
Brotli уменьшает размер любого контента. Для сжатия он использует уже встроенный в браузеры пользователей словарь из более чем 100 000 самых часто встречающихся в интернете элементов. Алгоритм находит эти элементы в передаваемых данных, вычисляет уникальные фрагменты и передаёт только их, а неуникальные добавляет из словаря. Brotli на 20–25% эффективнее Gzip.
WebP — новый алгоритм для сжатия изображений. Он на 26% лучше PNG сжимает изображения без потерь и на 25–34% эффективнее JPG при сжатии изображений с потерями.
Но главное преимущество этих алгоритмов в том, что они умеют сжимать файлы на лету, то есть прямо в процессе доставки пользователям.
А если вы используете нашу CDN, вам не нужно ничего настраивать и программировать на своей стороне. Вы загружаете файлы на источник в исходном виде, а их размер будет изменён на CDN во время отдачи пользователям.
Не весь динамический контент нельзя кешировать. Некоторые данные можно сохранять на короткий срок, и они не потеряют свою актуальность для пользователей.
Очень важно настроить кеширование точно в соответствии с особенностями вашего веб-ресурса. И наша CDN даёт такую возможность.
Вы можете установить любое время кеширования или отключить его совсем.
А ещё у нас доступна функция очистки кеша — полная или выборочная, для одного файла или для группы. Её можно настроить в панели управления или через API.
Если вам нужно предоставлять ограниченный доступ к контенту, вы можете перенести функции аутентификации на CDN. Это позволит избавить сервер от дополнительной нагрузки, а значит, и увеличить скорость.
На нашей CDN доступна опция Secure Token. Вы создаёте персональные временные ссылки, которые содержат специальный хеш-ключ, и контент может быть загружен только по запросам, содержащим этот ключ.
Это защищает контент от нежелательных загрузок, помогает исключить нелегальные подключения и копирование.
Доступ к ресурсу получают только те, кто имеет на это право. А проверка личности осуществляется на CDN, что избавляет ваш сервер от лишней нагрузки.
Контент важно не только эффективно доставлять, но и хранить. Возьмём, например, интернет-магазин. Чтобы отобразить покупателю индивидуальную подборку рекомендуемых товаров, вместе с остальными данными нужно загрузить и фото товаров. Для хранения такого контента требуются большие объёмы памяти. А при запросе клиента нужно быстро извлечь нужные файлы, сформировать ответ и отдать в нужном виде.
Хранение контента — это большая нагрузка и крупные затраты на вычислительные мощности. Поэтому эффективнее будет не размещать файлы на своих серверах, а арендовать облачное объектное хранилище.
В отличие от других типов, в объектных хранилищах нет иерархии — файлы извлекаются напрямую, за счёт чего сокращается время на их отдачу.
Как это относится к CDN? У EdgeЦентр есть объектное хранилище, в которое можно поместить данные практически любого объёма, максимально быстро извлекать и доставлять их. Хранилище оптимизировано под работу с динамическими веб-ресурсами. Подключить его можно вместе с CDN и управлять через единую панель.
Доставляйте динамический контент быстрее конкурентов с помощью нашей CDN. Подключите бесплатный тариф или воспользуйтесь бесплатным пробным периодом на любом плане, чтобы убедиться в отличной скорости.
А если не знаете, какой тариф выбрать, воспользуйтесь бесплатной консультацией.