上周Cloudflare到底发生了什么事?

上周Cloudflare发生了什么重大事件?

手机上的Cloudflare

在2023年11月2日,Cloudflare的面向客户的界面,包括他们的网站和API,以及日志和分析,停止正常运行。这很糟糕。

超过750万个网站使用Cloudflare,全球10000个最受欢迎的网站中的3280个依赖其内容交付网络(CDN)服务。好消息是CDN没有出现故障。坏消息是Cloudflare仪表板及其相关应用程序编程接口(API)停止运行了将近两天。

此外:最佳VPN服务(以及如何选择适合您的)

<p这种事情不应该发生,至少不应该发生在互联网服务公司身上。所以,这个千万美元的问题是:“发生了什么?”根据Cloudflare首席执行官Matthew Prince的说法,答案是俄勒冈州公司的三个主要数据中心发生了与电力相关的事故,这些数据中心由管理,并引发了一系列问题。36小时后,Cloudflare终于恢复正常。<pprince毫不掩饰地指出:

<p首先,这本来不该发生。我们认为我们已经采取了高可用性的系统,即使我们的核心数据中心供应商遭到严重故障,也应该可以阻止此类故障。虽然许多系统按设计保持在线运行,但一些关键系统存在非明显的依赖关系,使它们无法使用。对于这次事件给我们的客户和团队带来的痛苦,我感到非常抱歉和尴尬。

</p首先,这本来不该发生。我们认为我们已经采取了高可用性的系统,即使我们的核心数据中心供应商遭到严重故障,也应该可以阻止此类故障。虽然许多系统按设计保持在线运行,但一些关键系统存在非明显的依赖关系,使它们无法使用。对于这次事件给我们的客户和团队带来的痛苦,我感到非常抱歉和尴尬。

<p他是对的 -="" cloudflare的控制平面和分析系统运行在俄勒冈州希尔斯伯勒附近的三个数据中心的服务器上。但是,它们都是独立的;每个数据中心都有多个公用事业电源和多个冗余和独立的互联网连接。<p这三个数据中心之间并不靠得太近,自然灾害不会同时导致它们全部崩溃。同时,它们又足够接近,使它们可以运行活动冗余数据集群。因此,按设计,如果任何一家设施离线,其余设施应该接管负载并继续运行。

<p听起来很不错,对吧?然而,事实并非如此。

<p首先发生的是flexential设施的停电导致意外的服务中断。波特兰常规电力(pge)被迫关闭其中一条独立供电线路。数据中心有多个供电线路,具有一定程度的独立性,可以为设施供电。然而,flexential启动了发电机来补充断电的供电。

<p顺便说一下,对于那些不了解数据中心最佳实践的人来说,这是绝对不可取的。您不能同时使用离场供电和发电机。更令人伤心的是,Flexential没有告诉Cloudflare他们已经在一定程度上过渡到发电机供电。

此外:今天加快互联网连接速度的10种方法

<p然后,pge的变压器出现了接地故障,该变压器正要进入数据中心。当我说接地故障时,我指的不是像让你下到地下室修理保险丝那样的短路。我指的是一台12470伏特的坏家伙,比你读完这句话所用的时间更短,使连接和所有发电机全部关闭。

从理论上讲,一组UPS电池应该让服务器运行10分钟,然后足够的时间来重新启动发电机。然而,UPS在大约四分钟后开始失效,而发电机也没有及时重新启动。

糟糕透了。

也许并没有人能够挽救这个局面,但是当整夜在场的工作人员只有安保人员和一个刚上班一周的技术员时,情况就无望了。

还有:iPhone和iPad的最佳VPN服务(是的,你需要使用)

与此同时,Cloudflare发现了一个严重的问题,即一些关键系统和新服务尚未集成到其高可用性设置中。此外,Cloudflare决定将日志记录系统排除在高可用性集群之外,因为可以接受分析的延迟,结果证明是错误的。由于Cloudflare的工作人员无法查看日志以确定出错原因,故障持续存在。

事实证明,尽管这三个数据中心基本上是冗余的,但并非完全如此。该地区的其他两个数据中心接管了高可用性集群的责任,并保持关键服务在线。

到目前为止,一切还算顺利。然而,某些应该在高可用性集群上运行的服务却依赖于仅在宕机的数据中心中运行的服务。

具体而言,两个处理日志和驱动Cloudflare分析的关键服务——Kafka和ClickHouse——只在离线数据中心中可用。因此,当高可用性集群中的服务调用Kafka和Clickhouse时,它们会失败。

Cloudflare承认,他们对要求新产品及其关联数据库与高可用性集群集成的要求过于宽松。此外,太多的服务都依赖于其核心设施的可用性。

虽然很多公司都以这种方式做事,但是Prince承认,这种方式并不符合Cloudflare的优势所在。我们擅长分布式系统。在这次故障期间,我们的全球网络表现如预期,但是太多的服务在核心不可用时会出现故障。我们需要使用我们为所有客户提供的分布式系统产品,使得它们即使在我们的核心设施发生故障时也能基本正常地运行。

还有:网络安全101:保护个人隐私和在线安全的全部内容

几个小时后,一切最终恢复正常,但这并不容易。例如,几乎所有的断路器都被烧毁,Flexentail不得不去购买更多来替换它们。

因为预计发生了多次电力波动,Cloudflare还决定”恢复的唯一安全过程是对整个设施进行完整的引导”。这种方法意味着重建和重启所有的服务器,耗费了好几个小时。

这次故障一直持续到11月4日才最终解决。展望未来,Prince总结道:”我们有适当的系统和程序来抵御甚至我们数据中心供应商出现的连锁故障,但我们需要更加严格地执行并测试其是否存在未知依赖。这将成为我全年的重点工作,也将引起我们团队很大的关注。过去几天的痛苦将使我们变得更好。”

</p然后,pge的变压器出现了接地故障,该变压器正要进入数据中心。当我说接地故障时,我指的不是像让你下到地下室修理保险丝那样的短路。我指的是一台12470伏特的坏家伙,比你读完这句话所用的时间更短,使连接和所有发电机全部关闭。</p顺便说一下,对于那些不了解</p首先发生的是flexential设施的停电导致意外的服务中断。波特兰常规电力(pge)被迫关闭其中一条独立供电线路。数据中心有多个供电线路,具有一定程度的独立性,可以为设施供电。然而,flexential启动了发电机来补充断电的供电。</p听起来很不错,对吧?然而,事实并非如此。</p这三个数据中心之间并不靠得太近,自然灾害不会同时导致它们全部崩溃。同时,它们又足够接近,使它们可以运行活动冗余数据集群。因此,按设计,如果任何一家设施离线,其余设施应该接管负载并继续运行。

</pprince毫不掩饰地指出:</p这种事情不应该发生,至少不应该发生在