Введение в сеть доставки контента Akamai

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

Другие CDN включают Cloudflare, Fastly, MaxCDN, Incapsula и Rackspace.

Здесь мы рассмотрим, что такое CDN, а затем рассмотрим некоторые особенности реализации Akamai, в том числе:

  • Интеллектуальная платформа и пограничные серверы Akamai
  • Интерфейс Akamai и менеджер свойств
  • Производительность маршрутизации
  • Кеширование

Что такое CDN?

Пользовательский запрос контента в общедоступном Интернете может показаться простым: подключение к серверу, содержащему контент («источник контента»), и возвращение его пользователю, но на самом деле это очень сложно.

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

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

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

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

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

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

Интеллектуальная платформа Akamai

Akamai поддерживает глобальную сеть из более чем 240 000 «пограничных серверов». Они расположены на «краю» Интернета, как можно ближе к конечным пользователям. Для достижения этой цели многие пограничные серверы даже располагаются непосредственно у интернет-провайдеров или в башнях мобильной передачи данных, чтобы еще больше сократить задержку между подключением к интернет-провайдеру пользователя перед переходом в сеть Akamai.

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

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

Сайт добавляется в Akamai путем добавления записи CNAME в DNS, которая указывает от имени хоста, скажем, «community.akamai.com», на имя пограничного хоста Akamai, «community.akamai.com.edgekey.net», где Akamai контролировал Сопоставление пограничных серверов берет на себя задачу назначения наилучшего доступного пограничного сервера. Если вы «копаете» имя хоста и видите «edgekey.net», значит, вы знаете, что Akamai используется поставщиком контента.

Интерфейс Akamai

Akamai предоставляет веб-интерфейс под названием «Центр управления Luna», несколько API-интерфейсов и интерфейс командной строки.

Как видно на вкладке « Монитор », доступно множество инструментов отчетности и аналитики для получения информации на уровне CDN. Журналы с пограничных серверов также доступны по запросу.

На вкладке « Настроить » мы сосредоточимся на представлении Property Manager, а другие параметры оставим на будущее.

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

Существует API-интерфейс Property Manager (и интерфейс командной строки) с большим глоссарием понятий.

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

Производительность маршрута

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

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

Лучший маршрут находится в два этапа.

  • Во-первых, серверы Akamai постоянно проверяют друг друга и, с меньшей скоростью, проверяют происхождение всех клиентов Akamai. Они используются для расчета и распределения централизованного списка возможных маршрутов между каждой парой пограничный сервер / источник.
  • Во-вторых, чтобы сузить эти необработанные маршруты-кандидаты до единственного наилучшего варианта, каждый клиент помещает статический тестовый объект SureRoute в их конкретный источник, размер которого аналогичен их среднему ожидаемому содержанию. Гонки за выборку этого объекта периодически запускаются между каждым пограничным сервером и источником, так что запись о том, что имеет наименьшую задержку и / или коэффициент потери пакетов, может поддерживаться в актуальном состоянии.

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

Кеширование

Кэширование на пограничном сервере может значительно снизить задержку для конечного пользователя.

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

Как описано в ответе на вопрос «Распространяют ли пограничные серверы Akamai кэшированный контент», пограничные серверы сгруппированы в сетевые «регионы». Если кэш конкретного пограничного сервера не заполнен, он отправит локальный запрос другим пограничным серверам в своем регионе, а если у однорангового узла есть контент, он предоставит ответ перед его кешированием.

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

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

Условия соответствия (например, если существует файл cookie « x ») можно комбинировать с поведением «обход кеша» для создания сложных сценариев, таких как кеширование различного контента для пользователей с сеансом или для пользователей в разных местах.

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

Последние мысли

Использование CDN обеспечивает больший контроль для поставщиков контента, а инструменты, подобные описанным выше, обеспечивают преимущества, которые становятся все более важными при масштабной работе.

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

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

  • Улучшения безопасности с помощью управления сертификатами и межсетевых экранов веб-приложений (WAF)
  • Диспетчер изображений для оптимизации доставки изображений
  • Cloudlets для обеспечения детального управления вне цикла активации Property Manage с множеством типов, доступных для различных вариантов использования.
  • Global Traffic Management (GTM) для балансировки нагрузки на основе DNS
  • mPulse для использования Real User Metrics (RUM) для мониторинга производительности

Спасибо за прочтение ?

Вам также могут понравиться:

  • Руководство для новичков по сервису эластичных контейнеров Amazon
  • Как постепенно добавлять Flow в существующее приложение React
  • Прогрессивное улучшение с помощью CSS Grid