整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
打开一个网站,无法访问;换一个网站,又无法访问。
遇到这种情况的你,会认为是什么问题:断网了?可有些社交软件能正常使用;浏览器出 Bug?可换了浏览器也这样;网络设置问题?可调整过了还是无法访问。
这般令人摸不到头脑的情况昨日发生在了全球众多人身上:无数国外热门网站如 GitHub、谷歌、亚马逊、Reddit、Twitter 和 eBay 等,以及新闻媒体 CNN、卫报、纽约时报、BBC、金融时代,甚至包括英国政府的主要公共服务门户网站,昨日均崩了约一个小时,无法被访问。
分明是不同属性、不同地区的网站,却在同一时间故障,自然令人怀疑其背后是否有某种联系?
这个答案没过多久就浮出了水面:这些网站均由一家名为 Fastly 的云计算公司提供 CDN(Content Delivery Network)服务,而这次全球大范围网站的宕机正是由于 Fastly 修改了一项“服务配置”。
CDN 有多重要?
访问网站,仅需用户一个点击或者回车,但背后却蕴含着一个复杂的过程,其中可能就包括 CDN 服务。
CDN 即内容分发网络,是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,使用户能就近获取所需内容,提高用户访问响应速度。
举个例子:你在澳大利亚想要浏览 BBC 网站(British Broadcasting Corporation,英国广播公司),即要与英国服务器连接。虽然通过互联网是有能力将网页从英国传输到澳大利亚,但其中必定存在延迟,这个延迟甚至可能达到几百毫秒,这对追求流畅体验的人而言是个不容忽视的缺点。
但如果有了 CDN 则完全不同。
CDN 会通过中心平台的负载均衡、内容分发、调度等功能模块,将远程站点的页面副本(或页面元素)保存在用户附近并实现按需交付,减少从用户发出请求到他们收到响应的延迟,使用户体验可以快十倍,因此 CDN 也被形象地称为“网络加速器”。
其实大多数人都无法清晰地辨别 200 毫秒和 20 毫秒之间的差距,但如今网站包含众多元素,包括图片、视频等,因此在众多元素的交付时间都加快十倍之后,CDN 的作用就显得尤为重要。
为了确保给全球各地的用户快速交付网页内容,CDN 通常在全球范围内工作,CDN 服务提供商也通常会在世界各地运营数据中心,在主要人口中心保存网页内容副本,以在每个地区都能及时交付内容。
可以说 CDN 的存在极大改善了互联网的服务质量,因而出现了许多纯粹的 CDN 网络运营商,如 Akamai、Cloudflare,还有这次全球网站大范围宕机的“罪魁祸首”——Fastly。
Fastly:原因仅是一个客户更改的“服务配置”
据 Fastly 关于此次全球范围内网站宕机的事件报告显示,这长达一个小时的故障原因就是其标题指明的“全球 CDN 中断”。
Fastly 昨日在 UTC 时间 09:58 发布了一条消息,称:“我们目前正在调查 CDN 服务对性能的潜在影响。”
彼时就已经有众多网友在推特上声称无法访问 BBC、CNN 等新闻网站,GitHub、Reddit 等全球热门网站也陆续无法打开,甚至波及到了英国政府官方网站。
在陷入混乱近一个小时后,Fastly 在 UTC 时间 10:44 更新状态报告:“问题已经确定,并正在实施修复。”Fastly 之后在推特说明道:“我们确定了一个在全球范围内触发中断的服务配置,并已禁用该配置。我们的全球网络正在恢复。”
不过 Fastly 在事件报告中也补充说:“用户可能会继续经历一段时间的源负载增加和缓存命中率(CHR)降低。”即页面响应时间会出现一定延迟。
Fastly 高级工程和基础设施高管 Nick Rockwell 事后写了一篇博文对此进行详细说明:
5 月 12 日,我们开始进行一个软件部署,该部署引入了一个 Bug,该 Bug 可能由特定环境下的特定客户配置触发。
6 月 8 日早些时候,一个客户推送了一个有效的配置更改,其中包括触发该 Bug 的特定情况,这导致我们 85% 的网络返回错误。
此外他也对此次 Fastly 引起的全球大范围网站宕机表达了歉意:“这次中断是广泛而严重的,我们对客户和所有受影响的人们表示诚挚的歉意。”
不容忽视的云服务风险
这并不是第一次发生全球 CDN 中断:2019 年 CDN 加速服务商 Cloudflare 也因为突发服务故障,导致求全范围内如 Coinbase、Discord、Shopify 和 Dropbox 等许多主要网站都崩了。
甚至连 Down Detector,一个专门跟踪哪家网站服务中断的网站,彼时也因为用了 Cloudflare 而无法被访问,导致人们都无法查看他们无法访问的网站是否是正常的。
可以看出,虽然 CDN 服务的确提供了非常有价值的网络浏览体验,但与此同时也需要付出相应的代价:CDN 服务提供商遇到故障时,不会只影响一个网站,而是影响其支持的所有网站。
因此,从这次事件也可以看出如今互联网的背后已是环环相扣,而备受依赖的云服务一旦出错,其连锁反应就不容忽视,像这次全球网站大范围宕机的背后就仅是因为一个变更的服务配置罢了。
对此,数字机构 Think3 的技术总监 Gaz Jones 感慨道:“当一半的互联网都依赖于像亚马逊、谷歌和 Fastly 这样的巨人来提供其所有服务器和网络服务时,就会发生这种情况。”
而关于这种情况该如何避免,CSDN 也询问了相关方面的专家。
有赞技术中心开发支持工程师北洛(昵称):
“这是由于 CDN 厂商导致的问题。现在不论是中小型网站还是大型网站都依赖 CDN 服务来分发内容,提供网站的静态资源加载速度,但是带来的问题就是如果单纯依赖某一个服务商可能会存在服务宕机或像文中提到的变更配置导致的故障。
这种情况可以尝试融合 CDN,即企业同时采购多家厂商的 CDN 服务,然后类似于做负载均衡。当某一个厂商提供的服务不可用时,自动切换到其他服务商,当然前提是要先在其他服务商也做好资源的预热,否则也会导致资源加载慢的问题。不过这样会增加额外的成本,需要企业根据自己的实际情况选择。”
微软顾问咨询服务大中华区 Cybersecurity 首席架构师张美波:
“虽然云计算技术带来了按需服务、高扩展性、超大规模资源支持等优点,但是同样的,由于云计算平台的用户、应用和数据资源的高度集中,从而在云计算平台出现故障时,会导致更为严重的破坏和影响。
因此强烈建议大家在选择云计算服务平台时,尽量选择更安全的、更具有领先技术的全球领先云计算平台。”
参考链接:
https://techcrunch.com/2021/06/08/numerous-popular-websites-are-facing-an-outage/
https://status.fastly.com/incidents/vpk0ssybt3bj
https://thenextweb.com/news/why-internet-went-down-outage-fastly-cdn