Кеширование CDN

Mutt

Professional
Messages
1,057
Reputation
7
Reaction score
580
Points
113
Основное руководство по CDN, глава 3:

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

diagram-31@3x.png

Руководство Imperva CDN: Кэширование CDN

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

Например: статический шаблон электронного магазина с динамически генерируемой информацией о товарах. Типичные статические файлы:
  • Шаблоны изображений
  • Видео
  • Музыка
  • JavaScript
  • CSS файлы

Что для вас может сделать кеширование cdn?
mdf@3x.png

Руководство Imperva CDN: сокращение затрат на пропускную способность

1. Сократите расходы на полосу пропускания.
Доставка контента через прокси-серверы CDN снимает нагрузку с исходного (внутреннего) сервера, значительно сокращая затраты на полосу пропускания, связанные с обслуживанием контента многочисленным посетителям. Для большинства сайтов затраты на полосу пропускания можно снизить на 40–80%, в зависимости от процента кэшируемого содержимого.

person-at-monitor@3x.png

Руководство по CDN: Улучшение взаимодействия с пользователем

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

application-delivery@3x.png

Руководство Imperva CDN: обеспечение надежной доставки контента

3. Обеспечьте надежную доставку контента.
Современные сети CDN имеют пропускную способность, намного превышающую возможности большинства обычных корпоративных сетей. Там, где самостоятельно размещенный веб-сайт может быть легко нарушен из-за неожиданных пиков трафика или атак типа «отказ в обслуживании», кэш-серверы CDN обладают высокой устойчивостью и безопасностью. В результате они стабильны во время пиковых нагрузок.

Как работают кеш-серверы
Прокси-кеш-серверы - это строительные блоки сетевых центров обработки данных CDN, которые стратегически расположены по всему миру. Эти точки присутствия (PoP) выбираются на основе моделей трафика в отдельных регионах.
В высокоактивных локациях с большим количеством пользователей может быть несколько центров обработки данных. С другой стороны, в удаленных местах с небольшим количеством пользователей может быть только один PoP для покрытия большого географического региона.

diagram-32@3x.png

Руководство по CDN: как работают кеш-серверы

После установки кэш-серверы действуют как репозиторий для содержимого веб-сайтов, обеспечивая локальным пользователям ускоренный доступ к кэшированным файлам. Чем ближе кэш-сервер находится к конечному пользователю, тем короче время соединения, необходимое для передачи данных веб-сайта.
С аппаратной точки зрения типичный индивидуальный кэш-сервер является мощным центром доставки контента с увеличенными ресурсами ОЗУ и SSD. ОЗУ является более быстрым вариантом: для высокоприоритетных ресурсов используется ОЗУ, а для наименее запрашиваемых, но все же кэшируемых веб-файлов - SSD.

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

Среднее время обращения к памяти (T) =
stacked-group@3x.png

Руководство по CDN: Среднее время обращения к памяти в режиме планшета

Для обеспечения высокого коэффициента попадания используются несколько алгоритмов, в том числе:
  • Алгоритм Белади
    Всегда отбрасывает информацию, которая больше не понадобится в будущем. Этот подход, который слишком хорош, чтобы быть правдой, возможен только в том случае, если можно предсказать, насколько далеко в будущем потребуется информация. В результате этот алгоритм редко используется на практике.
  • Наименее недавно использованные (LRU)
    Сначала отбрасывает наименее использованные предметы. Этот алгоритм реализуется путем присвоения счетчика возраста каждому кэшируемому ресурсу и отбрасывания тех, у которых счетчики низкие. Как правило, это наиболее эффективный метод управления кешем.
  • Самые последние использованные (MRU)
    В отличие от LRU, здесь сначала отбрасываются самые недавно использованные элементы. Этот алгоритм наиболее полезен в ситуациях, когда чем старше элемент, тем выше вероятность доступа к нему.

Заголовки кеша объяснены
Веб-разработчики используют заголовки кэша HTTP, чтобы отмечать кэшируемое веб-содержимое и устанавливать продолжительность кеширования. Используя заголовки кеша, вы можете контролировать свою стратегию кэширования, устанавливая оптимальные политики кеширования, которые гарантируют свежесть вашего контента.
Например: «Cache-Control: max-age = 3600» означает, что файл можно кэшировать не более чем на час, прежде чем его нужно будет повторно загрузить из исходного содержимого.

diagram-33@3x.png

Руководство по CDN: объяснение заголовков кеша

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

Встречайте заголовки
  • Управление кешем
    Заголовки, представленные в HTTP / 1.1, обрабатывают множество функций кеширования. Cache Control поддерживается всеми современными браузерами и заменяет все заголовки предыдущего поколения (например, Expires).
    Cache-Control: public - включает кеширование общедоступными платформами, такими как CDN.
    Cache-Control: private - зарезервировано для частной информации, которая не является кешируемой.
    Cache-Control: no-cache - требует проверки перед кешированием.
    Cache-Control: no-store - полностью запрещает кеширование.
    Cache-Control: public, max-age = [секунды] - устанавливает максимальный предел (в секундах) для времени, в течение которого контент может быть кэширован перед очисткой.
  • Истекает
    Подобно Cache-Control: max-age, устанавливает время истечения срока действия и удаления контента.
  • Суррогат
    Предоставляет вам повышенный контроль над политиками кеширования, действуя с полномочиями исходного сервера.
  • Etag
    Предоставляет вашему кэшированному веб-контенту уникальные идентификаторы, обеспечивая индивидуальную маркировку и более сложную сортировку.
  • Прагма
    Практически вытесненная Cache Control, Pragma ранее использовалась для обработки инструкций кеширования для браузеров.
  • Варьировать (использовать с осторожностью)
    Некоторые браузеры все еще не могут поддерживать заголовок Vary. При правильном использовании Vary может стать мощным инструментом для управления доставкой нескольких версий файлов, особенно для сжатых файлов, кэшированных вместе с их несжатыми аналогами.

Умное управление кешем
На сегодняшний день кэширование CDN в большинстве случаев является практическим процессом. Однако современные сети CDN разрабатывают новые процессы для мониторинга, категоризации и кэширования более широкого диапазона контента, что экономит ваше время и обеспечивает более высокую общую эффективность.

Этот основанный на обучении подход основан на способности CDN отслеживать шаблоны использования контента для автоматической оптимизации хранения и доставки. Преимущества использования таких интеллектуальных элементов управления кешем включают:
  • best-in-class@3x.png

    Регулировка кеширования для популярного в регионе контента
  • automation@3x.png

    Автоматизированные правила кеширования для часто используемых материалов
  • files@3x.png

    Продуктивная репликация для контента с высоким спросом
  • time@3x.png

    Зависящие от времени архивы и политики истечения срока действия
Одним из основных преимуществ интеллектуальных элементов управления кешем является способность определять новые возможности кэширования для динамически генерируемых объектов. Эти фрагменты контента, которые создаются заново при каждом посещении, могут не изменяться, но по-прежнему считаются «динамическими» из-за технических особенностей.

Прогнозирование через обучение
Интеллектуальные алгоритмы кеширования могут автоматически определять динамический контент, просто наблюдая за моделями использования. Например, когда система замечает, что одна и та же HTML-версия страницы вашего продукта обслуживается снова и снова, она помечает ее как статическую, даже если она создается динамически.
С этого момента объект HTML считается «кешируемым» и обслуживается непосредственно прокси-серверами CDN для повышения скорости загрузки страницы и скорости отклика. С другой стороны, алгоритмы отслеживают объект и постоянно переоценивают его статус, отмечая его как динамический, как только он видит, что он был изменен.
Масштабирование может значительно улучшить производительность веб-сайта без ущерба для свежести контента.

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

1. Очистить кеш
Дает вам возможность обновлять кэшированные файлы по вызову. Обратите внимание, что некоторые провайдеры позволяют обновлять только все хранилище кеша. Кроме того, в некоторых случаях ваш провайдер CDN ограничивает количество чисток в течение определенного периода времени. Эффективность запроса на очистку измеряется временем, которое требуется для его распространения по всей сети.

2. Всегда / никогда не кешировать
Помогает вам вручную переопределить заголовки кеша, помечая файлы, которые должны всегда обслуживаться или никогда не обслуживаться из кеша. Это эффективный инструмент для управления кешем, особенно в сочетании с опциями массового управления, которые позволяют применять эти директивы ко всем группам файлов (например, ко всем файлам JPG в папке / template / images /).

3. Кеш на период
Усовершенствованная опция Всегда кэшировать, это позволяет вам установить определенный период, в течение которого объект должен обслуживаться из кеша перед обновлением. Доступ к нему осуществляется через графический интерфейс CDN, что упрощает управление определенными файлами. Однако этот параметр наиболее полезен при использовании для массового управления файлами (например, для всех файлов JS, которые кэшируются в течение пяти дней).

Следующая:
Глава 4: Оптимизация внешнего интерфейса >
 
Top