【问题标题】:automatic push to CDN deployment strategy自动推送到 CDN 部署策略
【发布时间】:2010-05-07 06:08:05
【问题描述】:

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

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

网站的肝脏版本需要从一个域加载资产,该域将指向一个CDN:assets.domain.com。

但是,我们将有大量指向指向相对文件夹的资产的引用,例如/images/ 在 css 中,可能在 js 中,在 HTML 和源代码中。

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

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

谢谢

伊曼克

【问题讨论】:

    标签: deployment capistrano cdn


    【解决方案1】:

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

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

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

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

    否则,您最好的选择是等待您设置的 TTL(例如,Cache-Control: max-age)超时并刷新内容,当内容向后兼容或更改时不是时的 URL。

    【讨论】:

    • 非常感谢,马克。我想我实际上需要获取一些 CDN 文档,并弄清楚我们如何使它与我们的部署过程一起工作。一开始,我们将资产子域映射回我们的 Web 服务器,并将其用于 CDN 内容。这为我们提供了网站是否需要扩展的应急计划。在这种情况下,我们需要将数据推送到它,可能使用 shell 脚本和 rsync,在部署过程中,我们必须扫描 css 文件等以映射本地目录资产,例如/assets/images/img1.jpg 到 assets.mydomain.com/assets.
    猜你喜欢
    • 2011-11-10
    • 2022-01-21
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多