2010-05-07 18 views
3

Est-ce que quelqu'un a des idées pour une stratégie visant à pousser le contenu vers un CDN lors du déploiement?stratégie de déploiement de la poussée automatique vers CDN

Le problème clé auquel je fais face est que nous avons un site disponible dans différents contextes: développement local, serveur de développement, mise en scène, puis enfin en direct.

La version de foie du site doit charger des ressources d'un domaine, qui sera pointé vers un CDN: assets.domain.com.

Cependant, nous aurons de nombreuses références aux actifs pointant vers un dossier relatif, par ex./images/en css, éventuellement en js, et en HTML & source.

Notre nouveau site utilisera capistrano pour le déploiement et il se peut que nous puissions utiliser un autre outil de construction (apache ant?) Ou un script personnalisé pour rechercher/remplacer des chemins. Je me demande si quelqu'un a déjà eu à gérer ce problème auparavant et quelles solutions vous avez mises en place pour automatiser la gestion du CDN en termes de transmission du contenu au CDN et de gestion des références css html & aux ressources du CDN.

Merci

Imanc

Répondre

3

D'une manière générale, la mise en cache CDNs utilisent en fonction de traction, pas la réplication en mode push. En effet, pousser un grand nombre de nœuds répartis (compte tenu de tous leurs clients) dans un nombre important de nœuds répartis est un problème de système distribué difficile, et anticiper les futurs modèles de trafic pour optimiser cette distribution est encore plus difficile. Alors que certains (par exemple, Akamai) offrent la possibilité d'invalider le contenu du réseau, ils sont généralement considérés comme un «commutateur de panique» plutôt que comme quelque chose que vous pouvez intégrer dans votre processus de déploiement. Certains peuvent également offrir des «serveurs de transfert» sur lesquels vous pouvez pousser votre contenu, mais cela ne va pas vraiment dans le CDN; Au contraire, le CDN extraira le contenu de ses propres serveurs au fur et à mesure que le trafic se fera. Cela pourrait être suffisant pour ce que vous voulez (généralement, ils offrent FTP, SSH et d'autres interfaces). Dans le cas contraire, le mieux est d'attendre que les TTL que vous avez définis (par exemple, Cache-Control: max-age) expirent et que le contenu soit actualisé, que le contenu soit rétrocompatible, ou changez les URL quand ce n'est pas le cas.

+0

Merci beaucoup, Mark. Je suppose que je dois obtenir de la documentation pour un CDN et comprendre comment nous pouvons le faire fonctionner avec notre processus de déploiement. Au début, nous allons mapper un sous-domaine d'actifs à notre serveur Web et l'utiliser pour le contenu CDN. Cela nous donne un plan d'urgence pour si le site doit évoluer. Dans cette situation, nous aurions besoin de pousser des données, en utilisant peut-être un script shell et rsync et dans le processus de déploiement, nous aurions à scanner les fichiers css etc. pour mapper les ressources de l'annuaire local, par exemple. /assets/images/img1.jpg à assets.mydomain.com/assets. – user307927