стратегия автоматического развертывания CDN

Есть ли у кого-нибудь идеи по стратегии отправки контента в CDN после развертывания?

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

Версивная версия сайта должна загружать активы из домена, который будет указывать на CDN: assets.domain.com.

Однако у нас будет множество ссылок на активы, указывающие на относительную папку, например. /images/ в css, возможно, в js, а также в HTML и исходном коде.

Наш новый сайт будет использовать capistrano для развертывания, и, возможно, мы сможем подключить другой инструмент сборки (apache ant?) или какой-нибудь пользовательский скрипт для поиска/замены путей.

Мне интересно, приходилось ли кому-нибудь сталкиваться с этой проблемой раньше и какие решения вы применяли для автоматизации управления CDN с точки зрения передачи контента в CDN и управления ссылками html и css на активы в CDN.

Спасибо

Иманк


person user307927    schedule 07.05.2010    source источник


Ответы (1)


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

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

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

Некоторые могут также предлагать «промежуточные серверы», на которые вы можете размещать свой контент, но на самом деле он не попадает в CDN; скорее, CDN будет просто извлекать контент со своих серверов по мере поступления трафика. Этого может быть достаточно для того, что вы хотите (обычно они предлагают FTP, SSH и другие интерфейсы).

В противном случае лучше всего дождаться установленного вами TTL (например, Cache-Control: max-age) и обновления содержимого, если содержимое обратно совместимо, или изменить URL-адреса, когда это не так.

person Mark Nottingham    schedule 09.05.2010
comment
Большое спасибо, Марк. Думаю, мне действительно нужно получить некоторую документацию для CDN и выяснить, как мы можем заставить ее работать с нашим процессом развертывания. Вначале мы собираемся сопоставить поддомен ресурсов с нашим веб-сервером и использовать его для контента CDN. Это дает нам план на случай непредвиденных обстоятельств, если сайт нужно масштабировать. В этой ситуации нам нужно будет отправить на него данные, возможно, используя сценарий оболочки и rsync, а в процессе развертывания нам придется сканировать файлы css и т. Д., Чтобы сопоставить активы локального каталога, например. /assets/images/img1.jpg на assets.mydomain.com/assets. - person user307927; 10.05.2010