茱莉亚·伊万斯

CDN不只是用于缓存

这周我加入了基础设施团队!所以我一直在学习很多新东西。今天我学到了很多CDN是做什么用的。

CDN是一个“内容传递网络–你的想法是,你是一个网站,你有一些奇特的Javascript文件,你想让世界各地的人们下载。没问题。这就是互联网的用途。

但是你在纽约,光速很慢(真的!)您正在尝试将javascript文件发送到悉尼——是16,000公里以外,以光速50毫秒,或者100毫秒的往返旅程。由于移动连接不佳,丢包了,更糟!所以现在每个人都可能仍然可以得到你的文件,大多数情况下,但是他们可能需要很长时间才能得到它。

一种常见的解决方案是将文件物理地放在悉尼的服务器上,让悉尼人(!!可以更快地得到它。这就是CDN所做的。我以为这就是它做的一切!但是今天我问道Twitter上的许多问题结果证明我错了——CDN不仅适合缓存内容!人们还出于其他原因使用它们!所以在这篇文章中我们只讨论CDN的非缓存使用。

我们将试图回答的核心问题是:

  • 将站点(不缓存)放在CDN后面是否可以获得更好的性能??
  • 更好的可靠性如何??
  • 还有其他优点吗??

斯珀纳:所有这些问题的答案似乎是肯定的,有时。

让你的网站更快:加速可怕的TLS握手

这是人们反复提起的第一个(也是最有说服力的)原因。

假设您正在安全地服务内容,就像我们这些天喜欢做的那样。如果你是谷歌TLS握手,你会看到一个如下的图表这一个.这个图的重要之处在于它有7个包。如果悉尼的手机需要与您在纽约的网站建立TLS连接最少的350毫秒(因为光速),如果丢弃任何数据包,则需要更多。这不好!!

但是,悉尼的代理服务器将如何解决这个问题?!好。假设您将SSL证书交给悉尼的服务器。然后它可以建立一个TLS连接与片状手机,分别地,使用它已经建立的TLS连接来发送数据并获得手机响应。很多人告诉我,他们这样做可以更快。酷。

您很有洞察力,并且会注意到您必须向CDN提供SSL证书才能做到这一点。稍后再详细介绍。

让你的网站更快:智能路由

暂时忘掉TLS:在悉尼拥有一台服务器怎么能帮助这种笨拙的手机更快地获取数据呢?好,这是从电话到服务器获取数据的正常方式

电话->公共互联网->服务器

如果您有一个CDN,它拥有/拥有对等协议在很多很酷的网络基础设施上,那么你就有可能拥有

电话->公共互联网->悉尼电脑->神奇的CDN互联网->你的服务器

没有公共互联网给你!您可以购买MAGICAL FANCY INTERNET,让您的用户访问您的服务器。

基本上,CDN有很多路由技巧,它们可以用来使数据包运行得更快。一篇关于这个很酷的文章(感谢米纳尔为实时应用程序修复互联网–这不是关于CDN,而是关于一家游戏公司构建一系列网络基础设施。写得非常好。它谈到了一点关于BGP,这是一个超级有趣的话题,我还不知道很多。

Cloudflare正在讨论的是让数据更快的路由技巧,比如轨道炮.

维护站点:减少DDOS

我最初把我的问题表达为“CDN能帮助提高站点的可靠性吗?“如果它能保护您免受DDOS攻击,然后,是的,可以!!!这也与缓存无关——如果CDN可以设法通过您希望看到的所有常规请求,但是阻塞所有ATTACK SCARY BAD请求,那真是太棒了,而且会帮你维持网站的正常运行。

性能是可靠性

我问:CDN能够帮助提高可靠性还是仅仅提高性能?“一些人非常正确地指出,你不能完全分开这两件事。作为一个极端的例子,如果你的网站需要3分钟来回复,你不能真正公正地说它是“上”.而且很多超时都会在几秒钟后开始!!

更好的安全性??

一些人提到使用CDN可以提高安全性。具体地说,假设出现了新的SSL漏洞。也许CDN有一个超级棒的安全团队,他们会很快修补漏洞,还要确保它们不接受不安全的SSL版本。

这一个对我来说似乎更微不足道——比如,我还在一家拥有非常优秀的安全团队的公司工作。对我来说,无法控制何时可以修补服务器(显然可能是)有点可怕一些亚马逊ELB需要很长时间才能为Heartbled进行修补??也见HN线程

这里的另一个安全问题是——政府让公司交出信息,如果您将SSL证书交给CDN,并通过它传递敏感流量,那么你就不知道他们是谁给你的用户数据。我以前认为这是怪异的偏执狂,但我很肯定,现在我们都知道这是值得担心的事情。

云耀斑显然有一个东西叫无键SSL哪一个允许网站使用CloudFlare而不需要放弃对私钥的监管.老实说,我还没有理解那个博客帖子,但是它看起来很有趣,而且非常相关,所以我还是链接到了它。

我对安全几乎一无所知,所以我现在不再谈论安全了。

那你的可靠性更高吗?(一些缺点)

我之所以问所有这些问题,是因为我试图弄清楚把你的网站放在CDN后面是否会使它或多或少更可靠。没有电脑是蝴蝶和鲜花,现在我们来谈谈把您的网站放在CDN后面的几个缺点:配置问题CDN倒闭.

第一,配置问题。到目前为止,我只知道关于CDN的3件事情,但我知道配置CDN相当棘手。您需要设置所有这些缓存控制头,进行所有这些设置,并将它们正确地连接到您的服务器,并且很容易意外地将某些内容搞砸,并导致站点瘫痪。

第二,如果你的网站上升了99.9%,CDN上升了99.9%,突然之间,你的站点+CDN只增长了99.8%。我真的不能在SLA上快速找到好的统计数据/cloud./cloudflare/akamai/无论如何,因此我不清楚CDN通常多久出现可靠性问题。然而,我对电脑了解得越多,就越会对别人向你推销的服务产生怀疑。如果你知道哪里可以找到关于这个的统计数据,我会非常感兴趣。

这东西很难

将站点放在CDN后面而不缓存它是很正常的事情!谁知道?不是我,在今天之前。有一个好Etsy 2013年的讲话关于使用多个CDN,我已经阅读了幻灯片并且需要观看。

我在这篇博客文章中意识到我经常链接到Cloudflare。我认为这是因为他们有一个很棒的技术博客,解释了很多有趣的东西(比如下载缓慢的奇怪情况所以更容易理解他们的产品是怎么回事。我从来没用过Cloudflare做任何严肃的事情,所以我不能说它实际工作得有多好(尽管我确实用它写这个博客)。

像往常一样,我今天从字面上学到了很多东西,所以可能至少有5件事是错的。尤其是安全方面的东西。

我对拥有优秀技术博客的公司印象深刻。而且有点嫉妒那些为这些公司工作的人。来自Cloudflare的人士说,公司允许人们在自己的博客上写他们觉得有趣的东西!这似乎是个很棒的策略。