Динамическое ускорение сайтов с помощью Azure CDN

В связи со стремительным развитием социальных сетей, электронной коммерции и невероятной персонализацией Интернета все большая часть предоставляемого пользователям содержимого создается в режиме реального времени. Пользователям необходимы быстрые, надежные и настраиваемые решения, которые не зависят от браузера, расположения, устройства или сети. Однако сами же инновации, при всей привлекательности новых возможностей, замедляют загрузку страниц и создают неудобства в работе пользователя.

Стандартная поддержка сети доставки содержимого (CDN) позволяет кэшировать файлы ближе к пользователям, что ускоряет доставку статических файлов. Тем не менее, с развитием динамических веб-приложений кэширование содержимого в граничных расположениях невозможно, так как сервер создает содержимое в ответ на действия пользователей. Ускорить доставку такого содержимого сложнее, чем в традиционном пограничном кэшировании. Для этого требуется комплексное решение, которое точно настроит каждый элемент на протяжении всего пути данных — с момента их создания до доставки. Оптимизация динамического ускорения сайтов (DSA) в сети CDN Azure значительно улучшает производительность веб-страниц с динамическим содержимым.

Azure CDN от Akamai и от Verizon позволяют выбрать функцию оптимизации DSA в меню Optimized for (Оптимизировано для) во время создания конечной точки. Динамическое ускорение сайтов от Майкрософт доступно через службу Azure Front Door Service.

Важно!

Для профилей Azure CDN от Akamai доступна возможность изменения оптимизации конечной точки CDN после ее создания.

Для профилей Azure CDN от Verizon возможность изменения оптимизации конечной точки CDN после ее создания недоступна.

Настройка конечной точки CDN для ускорения доставки динамических файлов

Чтобы настроить конечную точку CDN для оптимизации доставки динамических файлов, можно использовать портал Azure. То же самое можно сделать программным образом с помощью REST API или любого клиентского пакета SDK.

Чтобы настроить конечную точку CDN для оптимизации DSA с помощью портала Azure, сделайте следующее:

  1. На странице Профиль CDN выберите Конечная точка.

    Добавление конечной точки CDN

    Появится диалоговое окно Добавить конечную точку.

  2. В разделе Optimized for (Оптимизировано для) выберите Динамическое ускорение сайтов.

    Создание конечной точки CDN с поддержкой DSA

  3. В поле Путь пробы введите допустимый путь к файлу.

    Путь пробы — это функция DSA. Для создания необходим допустимый путь. DSA использует небольшой файл пути пробы, размещенный на сервере-источнике, чтобы оптимизировать конфигурации сетевой маршрутизации для CDN. Вы можете скачать и передать на свой сайт пример файла или использовать в качестве пути пробы имеющийся ресурс на своем сервере-источнике, который имеет размер около 10 КБ.

  4. Введите другие необходимые параметры конечной точки (дополнительные сведения см. в разделе Создание новой конечной точки сети CDN), а затем нажмите кнопку Добавить.

    После создания конечной точки CDN оптимизация DSA применяется для всех файлов, соответствующих определенным условиям.

Чтобы настроить имеющуюся конечную точку для DSA (только для профилей Azure CDN от Akamai), сделайте следующее:

  1. На странице профиля CDN выберите конечную точку, которую вы хотите изменить.

  2. В левой области выберите Оптимизация.

    Откроется страница оптимизации.

  3. В разделе Optimized for (Оптимизировано для) выберите Динамическое ускорение сайтов, а затем нажмите кнопку Сохранить.

Примечание

За использование DSA взимается дополнительная плата. Дополнительные сведения см. на странице Цены на сеть доставки содержимого.

Оптимизация DSA с помощью Azure CDN

Динамическое ускорение сайтов в Azure CDN ускоряет доставку динамических ресурсов с помощью следующих приемов:

Оптимизация маршрутов

Оптимизации маршрутов важна, так как Интернет — это динамичная среда, в которой топология сети постоянно меняется под действием трафика и временных простоев. Протокол пограничного шлюза (BGP) — это Интернет-протокол маршрутизации, но при использовании промежуточных серверов точек подключения возможны более быстрые маршруты.

Оптимизация маршрутов выбирает самый оптимальный путь к серверу-источнику, чтобы сайт был постоянно доступен, а динамическое содержимое доставлялось пользователям по наиболее быстрому и надежному маршруту.

Сеть Akamai использует методы сбора данных в режиме реального времени и сравнения различных путей с помощью разных узлов на сервере Akamai. Она также использует маршрут BGP по умолчанию в открытом Интернете для определения самого быстрого маршрута между сервером-источником и пограничным сервером CDN. Это позволяет избегать длинных маршрутов и точек перегрузки в Интернете.

Аналогичным образом сети Verizon используют сочетание произвольной рассылки DNS, поддерживающей точки подключения большой емкости и проверку работоспособности для определения самых оптимальных шлюзов для эффективной маршрутизации данных от клиента к источнику.

В результате полностью динамическое и транзакционное содержимое доставляется пользователям быстрее и надежнее, даже когда оно не кэшируется.

Оптимизация TCP

Протокол TCP — это стандартный протокол из набора Интернет-протоколов, который используется для обмена данными между приложениями и сетью IP. По умолчанию для установки TCP-подключения необходимо выполнить несколько входящих и исходящих запросов. Кроме того, существуют ограничения, которые позволяют избежать перегрузок в сети, снижающих эффективность масштабирования. Azure CDN от Akamai решает эту проблему путем оптимизации в трех областях:

Устранение медленного запуска протокола TCP

Медленный запуск TCP — это алгоритм протокола TCP, который предотвращает перегрузки в сети за счет ограничения объема данных, передаваемых по сети. При запуске между отправителем и получателем используются окна небольшого размера, чтобы избежать перегрузок. Постепенно размер увеличивается, пока не достигается максимум или не обнаруживается потеря пакетов.

Профили Azure CDN от Akamai и Azure CDN от Verizon устраняют медленный запуск протокола TCP с помощью следующих трех шагов.

  1. Мониторинг работоспособности и пропускной способности используется для измерения пропускной способности соединений между пограничными серверами точек подключения.

  2. Метрики являются общими для пограничных серверов конечных точек, чтобы каждый сервер "знал" о состоянии сети и работоспособности сервера точек подключения.

  3. Пограничные серверы CDN могут делать выводы о некоторых параметрах передачи. Например, какой размер окна будет оптимальным при взаимодействии с соседними пограничными серверами CDN. Это означает, что начальный размер окна перегрузки можно увеличить, если состояние подключения между пограничными серверами CDN способно передать больше пакетных данных.

Использование постоянных подключений

При использовании CDN к серверу-источнику напрямую подключается меньше уникальных компьютеров, чем когда к нему напрямую подключаются пользователи. Azure CDN также объединяет запросы пользователей в пулы, чтобы реже подключаться к серверу-источнику.

Как упоминалось ранее, чтобы установить TCP-подключения, необходимо выполнить несколько запросов на подтверждение. Постоянные подключения, которые реализуются с помощью заголовка HTTP Keep-Alive, повторно используют имеющиеся TCP-подключения для нескольких HTTP-запросов, чтобы сократить время кругового пути и ускорить доставку.

Azure CDN от Verizon также периодически отправляет пакеты проверки активности через TCP-соединение, чтобы открытое соединение не было закрыто.

Настройка параметров TCP-пакетов

Azure CDN от Akamai позволяет настроить параметры, которые управляют подключениями между серверами, и сократить дальность круговых путей, используемых для получения встроенного в сайт содержимого. Для этого необходимо выполнить следующие действия:

  • Увеличить начальное окно перегрузки, чтобы больше пакетов отправлялось, не ожидая подтверждения.
  • Уменьшить начальное время ожидания повторной передачи, чтобы обнаруживалась потеря и повторная передача выполнялась быстрее.
  • Уменьшить минимальное и максимальное время ожидания повторной передачи, чтобы быстрее предположить, что пакеты были потеряны при передаче.

Предварительная выборка объектов (только Azure CDN от Akamai)

Большинство веб-сайтов состоит из HTML-страницы, которая ссылается на другие ресурсы, такие как изображения и сценарии. Как правило, когда клиент запрашивает веб-страницу, браузер сначала скачивает и анализирует HTML-объект, а затем выполняет дополнительные запросы к связанным ресурсам, необходимым для полной загрузки страницы.

Предварительная выборка — это метод извлечения изображений и сценариев, встроенных в HTML-страницу, когда HTML-код передается в браузер. Извлечение происходит еще до того, как браузер запрашивает эти объекты.

Если функция предварительной выборки включена, когда CDN передает базовую HTML-страницу в браузер клиента, то CDN проанализирует HTML-файл и выполнит дополнительные запросы на получение связанных ресурсов, а также сохранит их в своем кэше. Когда клиент запросит связанные ресурсы, на пограничном сервере CDN уже будут запрашиваемые объекты, и он сможет передать их немедленно, не отправляясь по круговому пути к серверу-источнику. Такая оптимизация полезна как для кэшируемого, так и для некэшируемого содержимого.

Адаптивное сжатие изображений (только Azure CDN от Akamai)

На некоторых устройствах, особенно мобильных, периодически наблюдается снижение скорости сети. В таких сценариях пользователю выгоднее быстро просмотреть веб-страницу с небольшими изображениями, чем долго дожидаться загрузки изображений в полном разрешении.

Эта функция автоматически отслеживает качество сети и задействует стандартные методы сжатия JPEG, чтобы ускорить доставку, когда скорость сети снижается.

Адаптивное сжатие изображений Расширения файлов
Сжатие JPEG .jpg, .jpeg, .jpe, .jig, .jgig, .jgi

Кэширование

С DSA кэширование по умолчанию отключено в CDN, даже если сервер-источник включает в ответ заголовки Cache-Control или Expires. DSA обычно используется для динамических ресурсов, которые не нужно кэшировать, так как они уникальны для каждого клиента. Кэширование может нарушить работу.

Если на вашем веб-сайте есть статические и динамические ресурсы, для достижения оптимальной производительности лучше всего использовать гибридный подход.

Для профилей Azure CDN уровня "Стандартный" от Verizon и Azure CDN уровня "Стандартный" от Akamai можно включить кэширование для определенных конечных точек DSA с помощью правил кэширования.

Чтобы перейти к правилам кэширования, сделайте следующее.

  1. На странице Профиль CDN в разделе "Параметры" выберите Правила кэширования.

    Кнопка "Правила кэширования" CDN

    Откроется страница Правила кэширования.

  2. Создайте глобальное или пользовательское правило кэширования, чтобы включить кэширование для конечной точки DSA.

Только для профилей Azure CDN уровня "Премиум" от Verizon можно включить кэширование для конкретных конечных точек DSA, используя обработчик правил. Все созданные правила влияют только на те конечные точки профиля, которые оптимизированы для DSA.

Вот как можно перейти к обработчику правил.

  1. На странице профиля CDN выберите Управление.

    Кнопка управления для профиля CDN

    Откроется портал управления CDN.

  2. На портале управления CDN выберите ADN, а затем — Rules Engine (Обработчик правил).

    Обработчик правил для DSA

В качестве альтернативы можно также использовать две конечные точки CDN: одну с DSA для доставки динамических ресурсов, а вторую со статической оптимизацией (например, общая веб-доставка) для доставки кэшируемых ресурсов. Измените URL-адреса веб-страниц для связывания с ресурсами в конечной точке CDN, которую планируется использовать.

Например, mydynamic.azureedge.net/index.html — это динамическая страница, загружаемая из конечной точки DSA. HTML-страница ссылается на несколько статических ресурсов, таких как библиотеки JavaScript и изображения, загружаемые из статической конечной точки CDN, например mystatic.azureedge.net/banner.jpg и mystatic.azureedge.net/scripts.js.