4

我对 CDN(如 Akamai 或 Limelight)的理解是它们是重型缓存服务。

我也明白它们非常昂贵。所以我想知道为什么我不能只创建自己的复制缓存服务器集群(例如,使用 EhCache 或 Memcached)来满足我所有 Web 应用程序的缓存需求(图像、URL 命中/响应、Javascript 等)并且基本上得到一样的东西?

从本质上讲,从开发人员的角度来看,支付 CDN 与仅使用自己的缓存解决方案相比有哪些好处(技术或其他方面)?或者,如果我完全误解了 CDN 是什么,请纠正我的理解!提前致谢!

4

3 回答 3

12

关键是CDN中的NContent Delivery Network,.

CDN 的优势(至少是一个好的)是它的地理分布。大型 CDN 提供商(您和其他人一起提到的那些)所做的是在世界各地的设施中拥有数百或数千台服务器。这使得 CDN 所服务的任何资源在地理上都尽可能靠近最终用户,无论他们在世界的哪个地方。

您当然可以复制该功能。在一个非常基本的层面上,大多数 CDN 只是一个对象/价值存储,大量软件可以做 - 你不能做的事情,在这些人无论如何做的规模上,就是在世界各地拥有服务器来服务和复制这些对象。

如果您感兴趣的只是一种存储和提供静态文件的有效方式,那么对象存储加上 nginx 之类的东西就可以了。CDN 用于使网站尽可能快地加载,但它们是有代价的。

根据记录,亚马逊的 Cloud Front 虽然不像 Limelight 或 Akamai 那样分布广泛,但要便宜得多,并且是成本与服务之间的良好折衷方案。

于 2012-07-23T15:04:36.293 回答
4

大型 CDN 的优势在于它们拥有遍布全球的分布式资源,允许它们从附近的服务器为用户提供服务。除了缓存之外,这是使它们快速的主要点。

要构建自己的 CDN,您必须在多个大陆上安装服务器,为它们安排良好的 Internet 连接,设置缓存并确保所有服务器都同步。这样做并非不可能,但这将非常耗费成本,并且可能无法盈利。

于 2012-07-23T15:06:24.500 回答
4

恕我直言,我不同意迄今为止对该问题的其他两个答案。为了清楚起见,我并不是说他们错了,我只是提供不同的观点。

正如 Bulk 雄辩地解释的那样,CDN 性能的关键当然是“N”,但这并不意味着您不能构建自己的 CDN。问题是它是否值得花时间(根据定义,钱)。

我们生活在一个廉价服务器甚至更便宜的虚拟机的世界中。当然,大型 CDN 网络在全球拥有数千/数百万台服务器,但那是因为它们有数千/数百万个站点要服务。根据您的站点/应用程序的大小,您真正需要的资源与您的站点所需的资源一样多。如果你很小,最低限度可能是美国每个海岸的 VPS,欧洲一个,亚洲可能两个,澳大利亚一个。当然,硬件成本对于您的典型主页来说太高了,但它们肯定不是极端的,如果您首先考虑 CDN,它们可能在您的预算范围内。

对我来说,商业 CDN 服务只是为 PaaS 提供了便利,但没有什么能阻止您获得 IaaS 并建立自己的平台。


关于这个主题的另一件事:

我曾经读过 David Heinemeier Hansson(Ruby on Rails 的创建者)或引用他的人的评论,其内容大致如下: 37 Signals 的所有者担心 DHH 正在使用 Ruby 构建他们的应用程序. 那时,Ruby 还是很模糊的。几乎所有的 Web 主机都提供 PHP、Perl 和 Microsoft 技术。当被问及世界上只有少数 Ruby 主机这一事实时,DHH 问道:“那么你需要多少?”

对我来说,重点是你需要看看最适合你的需求和应用程序的需求,而不一定是拥有数百万服务器的人的想法。

于 2013-11-23T00:49:24.207 回答