Deployment 自动推送到CDN部署策略

Deployment 自动推送到CDN部署策略,deployment,capistrano,cdn,Deployment,Capistrano,Cdn,是否有人对在部署时将内容推送到CDN的策略有想法 我面临的关键问题是,我们有一个可以在各种环境下使用的站点:本地开发、开发服务器、登台,然后最终上线 站点的liver版本需要从域加载资产,该域将指向CDN:assets.domain.com 然而,我们将有许多指向相对文件夹的资源引用,例如css中的/images/可能在js中,以及HTML和source中 我们的新站点将使用capistrano进行部署,我们可以使用另一个构建工具(ApacheAnt?)或一些自定义脚本来搜索/替换路径 我想知道

是否有人对在部署时将内容推送到CDN的策略有想法

我面临的关键问题是,我们有一个可以在各种环境下使用的站点:本地开发、开发服务器、登台,然后最终上线

站点的liver版本需要从域加载资产,该域将指向CDN:assets.domain.com

然而,我们将有许多指向相对文件夹的资源引用,例如css中的/images/可能在js中,以及HTML和source中

我们的新站点将使用capistrano进行部署,我们可以使用另一个构建工具(ApacheAnt?)或一些自定义脚本来搜索/替换路径

我想知道以前是否有人处理过这个问题,以及您采取了哪些解决方案来自动化管理CDN,将内容推送到CDN,并管理对CDN中资产的html和css引用

谢谢


Imanc

一般来说,CDN使用基于拉的缓存,而不是基于推的复制

这是因为将大量(考虑到其所有客户)内容推送到任意数量的分布式节点是一个困难的分布式系统问题,而预测未来的流量模式以优化该分发甚至更加困难

虽然有些(如Akamai)确实提供了使网络中的内容无效的功能,但它通常被视为“紧急切换”,而不是可以集成到部署过程中的东西

有些可能还提供“暂存服务器”,您可以将内容推送到其中,但它实际上并没有进入CDN;相反,CDN只会在流量发生时从自己的服务器中提取内容。这可能足以满足您的需要(通常它们提供FTP、SSH和其他接口)


否则,当内容向后兼容时,最好等待您设置的TTL(例如,缓存控制:max age)超时并刷新内容,或者在内容向后兼容时更改URL。

非常感谢,Mark。我想我需要为CDN获取一些文档,并找出如何使其与部署过程配合使用。首先,我们将把一个资产子域映射回我们的web服务器,并将其用于CDN内容。这为我们提供了一个应急计划,以应对现场是否需要扩展。在这种情况下,我们需要将数据推送到其中,可能需要使用shell脚本和rsync,在部署过程中,我们必须扫描css文件等,以将本地目录资产(例如/assets/images/img1.jpg)映射到assets.mydomain.com/assets。