CDN与自建缓存的对比

4
我对CDN(如Akamai或Limelight)的理解是它们是重型缓存服务。
我也了解到它们非常昂贵。所以我想知道为什么我不能只创建自己的复制缓存服务器集群(使用EhCache或Memcached),用于我的Web应用程序的所有缓存需求(图像,URL命中/响应,JavaScript等),并基本上获得相同的东西?
从开发者的角度来看,付费CDN与仅使用自己的缓存解决方案相比,有哪些好处(技术或其他方面)?如果我完全误解了CDN的含义,请纠正我的理解!先感谢您!

我知道这已经是10年后的事了,但只是好奇。这是为了一个真实项目还是仅仅为了学习?如果是真实项目,你是否决定选择像Akamai这样的第三方服务,还是从头开始构建自己的IAAS? - theprogrammer
3个回答

12
这的关键在于 CDN 中的 N,即内容分发网络(Content Delivery Network)中的 N。
CDN的优点(至少是一个好的CDN)在于其地理位置分布性。大型CDN供应商所做的事情(包括您提到的和其他供应商)是在全球各地的设施中拥有数百或数千台服务器。这使得CDN正在提供的任何资源都尽可能地靠近世界上任何地方的最终用户。
您当然可以复制此功能。在非常基本的层面上,大多数CDN只是一个可以使用大量软件的对象/值存储器。但是,无论如何,您不能像这些人一样将服务器放置在全球各地以便为这些对象提供服务和复制。
如果您只对高效存储和提供静态文件感兴趣,那么与nginx之类的东西相结合的对象存储就足够了。CDN用于使网站加载尽可能快,但它们是有代价的。
值得一提的是,虽然 Amazon 的 Cloud Front 不如 Limelight 或 Akamai 那样分布广泛,但成本更低,是成本与服务之间的良好平衡。

2
谢谢Bulk (+1) - 我想这很有道理,但我还有一个后续问题:由于数据以光速传输,为什么大型CDN需要靠近我的用户建立数据中心呢?如果数据中心在印度而不是用户的后院,数据是否会以同样快的速度(或多或少,几十亿分之一秒)到达我的用户呢?再次感谢! - IAmYourFaja
3
没问题!数据传输的速度跟光速一样快,但是处理速度(相对而言)并不那么快 :) 数据在到达目的地之前必须通过许多交换机和服务器,更不用说网络拥塞和其他问题可能进一步延迟数据的传输。如果您想了解更多技术性的解释,请查阅“网络延迟”。 - Dan Smith
2
@4herpsand7derpsago:如果你环游地球(欧洲到美国,美国到亚洲等),很容易出现200-400毫秒的延迟。因此,如果你全球运营,延迟是一个大问题。可以在这里找到一些统计数据:http://www.verizonbusiness.com/about/network/latency/ - jeha

4
大型CDN的优点在于它们拥有遍布全球的分布式资源,使它们能够从靠近用户的服务器为其提供服务。除了缓存,这是使它们快速的主要原因。
如果要建立自己的CDN,您需要在多个大陆上安装服务器,为它们安排良好的互联网连接,设置缓存并确保所有服务器同步。虽然这不是不可能做到,但成本会非常高昂,可能无法盈利。

谢谢 @Leon Weber (+1) - 请看一下我在Bulk的回答下面的评论 - 我有同样的问题想问你! - IAmYourFaja
1
尽管在单个电缆内信号传输速度确实达到光速,但这只是内容传递速度中的一个小点。您距离数据中心越远,您的数据包就必须通过更多的路由器、交换机和各种设备。所有这些设备需要一定(短)时间来处理数据包,因此实际上数据包的传输速度比光速慢得多。此外,从网络的角度来看,为了节省洲际或卫星链路上有限的带宽(以及成本),最好在本地为用户提供服务。 - Leon Weber

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问道:“你需要多少个?”
对我来说,关键是你需要看看什么最适合你的需求和应用程序的需求,而不是那些拥有数百万台服务器的公司认为什么最好。

这正是我对这个主题的想法。 - aTTozk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接