Обычно CDN используются для ускорения доставки статического контента.
Вопрос в том, почему бы не использовать сеть для динамических приложений? Проблема в том, что не каждый CDN для этого подходит. Как выбрать среди них подходящий и на какие технологии обратить внимание – в нашем обзоре.
CDN ускоряет работу веб-ресурсов, в основном за счет кэширования.
Со статическим контентом все просто: он хранится на ближайших к пользователям кэш-серверах, и последующие запросы уже не идут к источнику, а берут информацию из ближайших точек присутствия.
С динамическим контентом все сложнее, поскольку он уникален для каждого пользователя и не подлежит кэшированию.
Значит, ускорить доставку не получится? Получается: если CDN соответствует ряду критериев, то она справится и с ускоряющейся динамикой.
1. Отличная связь
Быстрая доставка контента во многом зависит от сетевого подключения.Чем больше пиринговых партнеров имеет CDN, тем лучше соединение и тем короче маршрут от источника к пользователю.
И чем короче маршрут, тем быстрее будут доставлены данные.
На это обязательно нужно обратить внимание при выборе сети доставки контента, говорим ли мы о статической или динамической.
2. Поддержка HTTP/2
HTTP/2 — последняя версия протокола HTTP. Использование этой версии существенно помогает ускорить доставку контента – в основном за счет мультиплексирования, то есть передачи нескольких потоков данных по одному каналу.Чтобы отправить информацию, HTTP должен сначала установить TCP-соединение.
Для этого требуется «тройное рукопожатие»:
- Отправитель отправляет запрос на установление соединения — SYN-сообщение и порядковый номер передаваемого байта.
- Получатель отвечает отправкой сообщения SYN, подтверждая получение данных сообщением ACK и отправляя номер байта, который должен быть получен следующим.
- Отправитель также подтверждает, что он получил информацию, и отправляет номер следующего ожидаемого байта.
В предыдущих версиях HTTP для передачи каждого элемента (JavaScript, CSS, изображений и других данных) открывалось отдельное TCP-соединение.
«Тройное рукопожатие» приходилось делать каждый раз, и это сильно замедляло доставку.
В HTTP/2 для всех этих данных устанавливается одно TCP-соединение.
При этом разные типы информации могут передаваться параллельно.
Это существенно экономит время на передачу контента.
HTTP/2 помогает ускорить доставку по другим причинам:
- Это двоичный протокол.
- Возможность сжимать заголовки.
И чем больше данных передается, тем медленнее они доходят до пользователя.
HTTP/2 сжимает заголовки Алгоритм Хаффмана и опускает повторяющиеся.
- Доступна приоритезация запросов.
Первый приоритет может быть отдан наиболее важным элементам страницы, которые должны отображаться пользователю в первую очередь.
- Есть функция Server Push. Он позволяет спрогнозировать, какие данные потребуются клиенту, и отправить их еще до получения запроса.
Это ускоряет загрузку, уменьшает количество запросов, а значит снижает нагрузку на источник.
Поэтому в CDN G-Core Labs Есть функция принудительного перенаправления на HTTPS. Это означает, что даже если HTTPS не настроен в источнике, вы все равно можете безопасно доставлять контент. Благодаря использованию HTTP/2 и TLS 1.3 безопасное соединение не замедлит доставку контента, а это значит, что приложение будет работать быстро и безопасно.
3. Поддержка веб-сокетов.
WebSocket — это независимый протокол, основанный на TCP. Это дает возможность обмениваться сообщениями между клиентом и сервером в режиме реального времени.
Его принципиальное отличие от HTTP в том, что для получения информации клиенту не нужно каждый раз отправлять запрос на сервер.
В качестве примера возьмем чат. Чтобы клиент знал, что он получил новое сообщение, браузер должен периодически отправлять запросы на сервер и узнавать, есть ли новая информация.
Недостатки такого подхода:
- Увеличивается количество запросов к серверу.
- Данные обновляются медленнее.
Это приводит к задержкам в доставке контента.
А когда появится новое сообщение, сервер тут же отправит его клиенту.
Это уменьшает количество запросов и увеличивает скорость доставки данных.
Если вы хотите быстро доставлять часто меняющийся динамический контент (сообщения чата, push-уведомления и любые другие данные, которые постоянно обновляются на сайте), WebSocket просто необходим.
4. Использование IPV6
IPv6 — более современная версия протокола IP. Он был разработан в основном для решения проблемы нехватки IP-адресов.В то время как IPv4 использует 32-битную систему для создания адреса, IPv6 использует 128-битную систему.
Адрес IPv6 состоит из восьми 16-битных блоков, разделенных двоеточием.
А общее количество IP-адресов, которые можно создать, составляет 2128 — это более 300 миллионов адресов на каждого жителя планеты.
Этого количества должно хватить на каждое устройство.
Но, помимо записи IP-адресов, в обновленную версию протокола были внесены и другие изменения, делающие его более эффективным для передачи информации.
- Меньше нагрузка на сетевое оборудование.
NAT был нужен в IPv4, потому что была проблема с нехваткой адресов.
Внутри локальной сети каждое устройство имело частный IP-адрес, который использовался для локальной передачи данных, например, между устройствами внутри одной компании.
Но для взаимодействия с другими ресурсами через глобальную сеть Интернет был необходим публичный, общедоступный адрес.
NAT преобразовал частный адрес в публичный — этот процесс называется трансляцией.
При этом необходимо было не только конвертировать адреса, но и хранить информацию об установленных соединениях.
Это увеличивало нагрузку на оборудование, а в пиковые нагрузки скорость падала.
В IPv6 нет необходимости в вещании, нет необходимости хранить информацию о соединениях, а значит нагрузка на оборудование меньше и скорость остается стабильной.
- Упрощенные заголовки пакетов.
Это упростило обработку, снизило нагрузку на маршрутизаторы и в целом уменьшило объем передаваемых данных.
- Более быстрая маршрутизация.
Это уменьшает размер таблицы маршрутизации, что означает более быстрое время обработки.
- Идентифицирует пакеты, чувствительные к задержке и передает их первым.
Эту возможность предоставляет функция QoS (Quality of Service).
Это специальная технология, которая умеет определять тип трафика и на основании этого расставлять ему приоритеты.
Чтобы перейти на него, вам необходимо серьезно модернизировать свою инфраструктуру.
Но если вы подключены к наш CDN , то это не обязательно.
Для доставки мы используем IPv6, даже если ваше оборудование еще не обновлено до этого протокола.
Таким образом, динамический контент доставляется быстро, и вы не тратите ресурсы на обновления.
5. Сжимайте на лету
Чем легче контент, тем быстрее он будет доставлен пользователям.Но жертвовать важными элементами ради размера – не лучшая идея.
Эта проблема решается использованием современных алгоритмов сжатия: Gzip, Бротли и ВебП.
- Gzip предназначен для сжатия текстового содержимого.
Он находит одинаковые строки в файлах и объединяет их.
За счет этого размер данных уменьшается на 60–70%.
- Бротли Уменьшает размер любого контента.
Для сжатия он использует уже встроенный в браузеры пользователей словарь, содержащий более 100 000 наиболее часто встречающихся в Интернете элементов.
Алгоритм находит эти элементы в передаваемых данных, вычисляет уникальные фрагменты и передает только их, а неуникальные фрагменты добавляет из словаря.
Brotli на 20-25% эффективнее Gzip.
- ВебП - новый алгоритм сжатия изображений.
Он на 26 % лучше, чем PNG при сжатии изображений без потерь, и на 25–34 % эффективнее, чем JPG при сжатии изображений с потерями.
6. Гибкие настройки кэширования.
Не весь динамический контент нельзя кэшировать.
Некоторые данные могут храниться непродолжительное время и не потеряют своей актуальности для пользователей.
Однако для этого важно настроить кеширование точно в соответствии с особенностями вашего веб-ресурса.
Поэтому вам нужно выбрать CDN, который позволит вам установить любое время кэширования или полностью отключить его.
Также была бы полезна возможность очистки кэша - полной или выборочной, для одного файла или для группы.
7. Функции аутентификации на стороне провайдера
Если вам необходимо предоставить ограниченный доступ к контенту, вы можете перенести функцию аутентификации в CDN. Это избавит сервер от дополнительной нагрузки, а значит, увеличит скорость.В нашем CDN для этого доступна опция Secure Token. Он позволяет создавать временные ссылки, содержащие специальный хеш-ключ, а загрузка контента возможна только по запросам, содержащим этот ключ.
Это защищает данные от нежелательных загрузок и помогает предотвратить незаконные подключения и копирование.
Доступ к ресурсу предоставляется только тем, кто имеет на это право, а проверка личности осуществляется с помощью CDN, что освобождает сервер от лишней нагрузки.
8. Облачное хранилище объектов
Важно не только эффективно доставлять контент, но и хранить его.Возьмем, к примеру, интернет-магазин.
Для отображения покупателю индивидуального выбора рекомендуемых товаров необходимо загрузить фотографии товаров вместе с другими данными.
Для хранения такого контента требуются большие объемы памяти.
А когда клиент запрашивает, нужно быстро извлечь нужные файлы, сформировать ответ и доставить его в нужном виде.
Хранение контента — это большая рабочая нагрузка и большие инвестиции в вычислительную мощность.
Поэтому эффективнее будет не размещать файлы на своих серверах, а арендовать облачное объектное хранилище.
В отличие от других типов, в объектном хранилище нет иерархии — файлы извлекаются напрямую, что сокращает время, необходимое для их получения.
Как это связано с CDN? G-Core Labs имеет хранилище объектов , в который можно поместить данные практически любого размера, извлечь и доставить их максимально быстро.
Хранилище оптимизировано для работы с динамическими веб-ресурсами.
Вы можете соединить его вместе с CDN и управлять ими через единую панель.
Давайте подведем итоги
- Существует мнение, что CDN может ускорить доставку только статического контента и плохо работает с динамикой.
Но на самом деле, если сеть поддерживает определенные функции, она отлично справится с ускорением динамики.
- Чтобы CDN мог построить лучший маршрут для доставки данных, он должен иметь отличное соединение.
G-Core Labs CDN имеет более 6000 пиринговых партнеров, поэтому позволяет передавать данные максимально быстро.
- CDN должен поддерживать HTTP/2, поскольку он намного эффективнее предыдущих версий HTTP. Его главное преимущество заключается в том, что он устанавливает только одно TCP-соединение для передачи файлов любого типа.
- CDN должна иметь поддержку WebSocket — этот протокол передачи данных в реальном времени упрощает доставку часто меняющегося динамического контента, поэтому без него не обойтись.
- Для более быстрой доставки контента важно, чтобы CDN поддерживала IPv6. Желательно, чтобы сеть позволяла использовать данную версию протокола, даже если оборудование пользователя ее еще не поддерживает.
- Важно, что провайдер имеет возможность сжимать контент на лету непосредственно на стороне CDN, во время доставки с использованием алгоритмов Brotli, Gzip и WebP.
- CDN должен иметь гибкие настройки кэширования.
Желательно, чтобы провайдер мог взять на себя функции аутентификации пользователей, чтобы снизить нагрузку на ваши ресурсы.
- Объектное хранилище можно подключить к CDN для эффективной доставки и хранения данных.
За производительность сети отвечают технологии Intel: в апреле 2021 года мы одними из первых в мире начали интеграцию масштабируемых процессоров Intel Xeon 3-го поколения (Ice Lake) в серверную инфраструктуру наших сервисов.
Вы можете бесплатно убедиться в высокой скорости доставки динамического контента с помощью нашей CDN — для этого у нас есть бесплатный тариф, а также бесплатный пробный период на любом тарифном плане.
Теги: #Сетевые технологии #ИТ-инфраструктура #облачные сервисы #cdn #Распределенные системы #сетевая инфраструктура #cdn-провайдер #cdn-сервис #сеть доставки контента #cdn-провайдеры #g-core labs #сеть доставки контента #cdn с низкой задержкой # динамический контент
-
Кое-Что О Crysis 2
19 Oct, 24 -
Хабра.линч - Почему?
19 Oct, 24 -
Эффективность Рабочего Дня Одного Пм
19 Oct, 24 -
Вы Используете Антивирус?
19 Oct, 24 -
Красивые Текстуры Фона В Ios
19 Oct, 24 -
Побег Джедая: Да Пребудет С Тобой Гироскоп
19 Oct, 24