内容管理系统 (CMS) 和内容分发网络 (CDN) 之间的区别?

Difference(s) between Content Management System (CMS) and Content Delivery Network (CDN)?

我想知道如何比较 Adob​​e Experience Manager (AEM) 等 CMS 与 AWS CloudFront 等 CDN 服务?我是在比较苹果和橙子吗?提前致谢。

是的,您是在将苹果与橙子进行比较...但这可能有一个合理的解释 -- 它们经常一起使用。

内容管理系统 (CMS) 是一个 high-level 系统,用于创建、修改、管理、组织和发布内容,具有 WordPress (软件,而不是服务)是一个常见的例子。

博客托管网站是托管 CMS 的示例。 WordPress(公司)是托管 (SaaS) CMS 服务的一个示例。

内容分发网络 (CDN) 是一个 low-level 基础设施提供商,通常促进全球 high-performance 电子内容分发,使用 globally-distributed 存储、基础设施和连接。例如 Amazon CloudFront, Fastly, and CloudFlare.

CDN 通常不会权威地存储或呈现内容,它们只会缓存内容,而缓存是 globally-distributed,内容的副本保存在经常访问的地理区域。 CDN 通常表现得像 HTTP 反向代理,从权威的 原始服务器 (通常是一组相同的服务器)提取内容,它本身也可能是 globally-distributed,尽管在某些情况下CDN 提供足够的优化以允许源位于单个地理位置。

CMS常部署"behind"CDN--CMS服务器(集群)为源站。是否这样做通常是一个容易的决定,即使是在小规模的情况下也是如此。查看器连接到 CDN 并发出请求,如果可能,CDN 将从缓存中提供服务,否则转发到源。如果可能,生成的响应将返回给原始请求者并存储在 CDN 的缓存中。这种安排通常允许源在部署 CDN 时比没有部署时更小,因为 CDN 缓存意味着源的工作量更少。

但请注意,CDN 往往超出了优化全球静态内容交付的简单定义,实际上超出了 "CDN."

的任何正确定义

CDN 越来越多地集成无服务器计算服务,例如 CloudFront 的 Lambda@Edge and CloudFlare Workers,它允许您部署可以操纵 HTTP headers 的无服务器功能,做出请求路由决策,甚至生成呈现的响应。这超出了 CDN 的传统范围,但可以想象可以利用它来将整个 CMS 嵌入到 CDN 基础设施中,但这并没有模糊 CMS(软件)和 CDN(基础设施)之间的区别。

CloudFront 还能够检测来自同一地理区域的多个浏览器对完全相同资源的同时请求,使用称为 request collapsing. If a request for content that isn't in the edge cache is already in flight to the origin server and more requests for the same resource arrive, CloudFront will actually hold those pending requests waiting for the server to return the single response to the single request, and will clone that response to all the browsers that are waiting for it. Fastly supports this, too 的东西,并且似乎比 CloudFront 提供更多的控制粒度,它实现了该功能自动。

一些 CDN 也可以 pass-through requests/responses 从 Web 浏览器到原始服务器,这些请求不是正确的 "content" -- HTML 形式 post 请求,例如——它提供了多种优势,包括更简单的集成(所有站点流量都可以通过单个域,避免 cross-origin 复杂化)、优化的传输和 TCP 堆栈、更快的 TLS 协商(由于减少 round-trip 浏览器与其连接的 Web 服务器(位于 CDN)之间的时间,并将 HTTP/2 (browser-facing) 转换为 HTTP/1.1 (server-facing)。

CDN 本质上还为源服务器提供了一层 DDoS 保护,因为流量从前端到达 CDN,只有 CDN 的后端与您的源服务器联系。请求必须是有效的,不能从缓存中得到服务,并且在你的源服务器看到它们之前不会被 CDN 上的缓解系统阻止(并由 CDN 管理)。

但重要的是要注意这些特征中的 none 是 "CDN" 定义的正确部分;它们是这些服务提供 among others 的功能,它们被捆绑到围绕 CDN 概念销售和设计的产品中......所以我建议即使在某些地方使用这些 CDN 服务之一通常是个好主意不需要实际 CDN 功能的地方。