首页 › tech › 49分钟瘫掉半个互联网

49分钟瘫掉半个互联网:Fastly「6·8」断网官方复盘精读

2021年6月8日,北京时间傍晚5点47分,美国东部凌晨5点47分。无数美国人早起后习惯性摸出手机:Amazon打不开、Reddit白屏、GitHub超时、纽约时报的首页刷不出来,连英国政府官网gov.uk都一片空白。Downdetector的报障曲线瞬间垂直拉升,社交媒体上"internet down"冲上热搜——据当时多家媒体报道,一度有“半个互联网都挂了”的说法。事后证明,这不是黑客攻击,不是光缆被挖断,而是一家名叫Fastly的CDN厂商,因为一个客户推送的完全合法的配置变更,踩中了一颗潜伏了27天的软件缺陷,导致其全球85%的网络瞬间返回错误。

这场事故从爆发到95%网络恢复只用49分钟,官方复盘写得极为坦诚和克制,是近年基础设施故障复盘里少有的“教科书级”样本。本文以Fastly官方发布的《Summary of June 8 outage》为主轴(https://www.fastly.com/blog/summary-of-june-8-outage ),逐段拆解时间线、根因、处置与整改,最后落到运营商视角:同样的剧本,随时可能在核心网重演。

目录

一、事故回放:一场没有预兆的全球白屏

先交代一下Fastly是什么。它是全球第三大CDN(内容分发网络)厂商之一,在80多个国家的300多个边缘节点(POP点)部署了服务器,替Amazon、Reddit、GitHub、Shopify、Twitch、纽约时报、BBC等数千家客户缓存和分发内容。CDN的工作原理可以粗略理解为:网站把内容提前“复制”到离用户最近的机房,用户请求先打到CDN边缘节点,命中缓存就直接返回,不打扰源站。换言之,CDN是这些网站面向公众的唯一入口——入口断了,用户看到的就是网站“挂了”,哪怕源站其实活得好好的。

2021年6月8日09:47(UTC,下同),Fastly的边缘网络突发全球性异常:大量节点开始对几乎所有请求返回错误,用户端的表现就是503 Service Unavailable——白屏。由于Fastly客户名单里全是互联网顶流,故障感知被瞬间放大:用户以为是Amazon自己宕机,Amazon看着自己的监控却一脸茫然——它的源站一切正常,是站在这家网站和用户之间的那层“玻璃幕墙”碎了。

这场事故最反直觉的地方在于:它既不是攻击,也不是误操作。触发它的是一个客户通过Fastly管理面板推送的、完全符合规范的配置变更——一个正常运维动作,引爆了一个正常部署的软件里埋藏的缺陷。这比“有人敲错了命令”可怕得多,因为它绕过了人类所有的防呆机制。

二、官方时间线:1分钟发现,49分钟恢复95%

Fastly由其时任战略与运营执行副总裁Nick Rockwell署名发布的官方复盘,给出了精确到分钟的处置时间线。本文将全文关键事实锚定于此,先看原汁原味的记录:

UTC时刻 事件 距故障爆发
09:47 全球性故障爆发,85%网络返回错误 —
09:48 Fastly监控系统发现全球性故障 1分钟
09:58 官方状态页发布首条通告 11分钟
10:27 工程团队定位到触发故障的客户配置 40分钟
10:36 受影响服务开始恢复 49分钟
11:00 大部分服务恢复 73分钟
12:35 事件宣布缓解(mitigated) 168分钟
12:44 状态页更新为已解决 177分钟
17:25 针对缺陷的永久修复开始部署 约7.6小时

官方原话是:"Within 49 minutes, 95% of our network was operating as normal"——49分钟内,95%的网络恢复正常。这几个数字值得每一个搞运维的人逐个咀嚼:

用一张时间线图还原这惊心动魄的49分钟:

timeline
    title Fastly事件处置时间线(UTC)
    09:47 : 全球故障爆发 85%节点报错
    09:48 : 监控系统告警 发现异常
    09:58 : 状态页首次对外通告
    10:27 : 定位到触发配置
    10:36 : 受影响服务开始恢复
    11:00 : 大部分服务恢复
    12:35 : 事件缓解
    17:25 : 永久修复开始部署

三、根因:一颗潜伏27天的雷

官方复盘对根因的表述极为精炼,原文只有两段话,值得逐句拆解:

"On May 12, we began a software deployment that introduced a bug that could be triggered by a specific customer configuration under specific circumstances." (5月12日,我们开始了一次软件部署,这次部署引入了一个缺陷,该缺陷可能在特定条件下被某个特定的客户配置触发。)

"Early June 8, a customer pushed a valid configuration change that included the specific circumstances that triggered the bug, which caused 85% of our network to return errors." (6月8日一早,一个客户推送了一次合法的配置变更,该变更恰好包含了触发缺陷的特定条件,导致我们85%的网络返回错误。)

两个关键词划重点:“软件部署引入缺陷”和“合法配置触发”。从5月12日到6月8日,这颗雷整整潜伏了27天。期间无数节点重启过、无数客户改过配置,都没有同时凑齐“缺陷代码+触发条件”这两个要素,直到6月8日早上那位客户的一次例行配置变更,两个开关同时按下,全网暴雷。

这个根因结构暴露了三个层面的失效:

第一,QA和测试失效。一个部署后27天无人察觉的缺陷,说明常规测试用例没有覆盖“该配置项+该场景”的组合。Fastly自己在复盘里也直面了这一点,把“搞清楚为什么质量保障和测试流程没有发现它”列为整改第一条。

第二,灰度机制失效。按现代分布式系统的工程惯例,大规模软件部署应当分批灰度:先上一两个节点观察几天,再逐步放量。这次部署显然没有把“潜在触发条件”拦在灰度期——或者说,灰度期内恰好没有客户的流量踩中触发条件,给了所有人“一切正常”的错觉。灰度只能验证“已经出现的路径”,验证不了“尚未被踩到的雷”,这是灰度发布的固有盲区。

第三,也是最致命的:配置变更与软件缺陷之间存在“化学武器”式的组合风险。单独看,软件有缺陷但没人触发,没事;配置是合法的,客户无责,也没事。两件各自“无害”的事叠加,就成了一场全球事故。故障传播链如下:

flowchart TD
    A["5月12日:软件部署引入缺陷"] --> B["缺陷潜伏27天未被测试发现"]
    B --> C["6月8日:客户推送合法配置"]
    C --> D["配置触发隐藏缺陷"]
    D --> E["85%边缘节点返回错误"]
    E --> F["CDN入口失效 用户侧白屏"]
    F --> G["Amazon Reddit BBC等大规模不可访问"]
    G --> H["定位到触发配置并禁用"]
    H --> I["49分钟内95%网络恢复"]

四、影响面:一个CDN如何“带走”半个互联网

官方复盘没有披露受影响客户名单(仅称“85% of our network”),但据当时各家媒体报道,用户端感知的受影响服务包括:Amazon、Reddit、GitHub、Twitch、Shopify、Stripe(支付服务)、纽约时报、BBC、以及英国政府官网gov.uk等。美国政府当年围绕互联网基础设施集中度的听证会上,这次事故也被反复点名引用。

下表汇总当时媒体广泛报道的受影响领域(影响程度与持续时间以各站实际体验为准,本文不虚构精确比例):

领域 代表性受影响服务 用户感知
电商 Amazon、Shopify 商品页无法加载、下单失败
社交/内容 Reddit、Twitch 白屏、直播中断
开发者 GitHub 拉取代码超时、CI流水线中断
媒体 纽约时报、BBC 新闻首页刷不出
政务 英国政府官网gov.uk 政务服务页面不可访问
金融支付 Stripe 在线支付通道受阻

有意思的是故障爆发的时间点:09:47 UTC正好是美东时间清晨5点47分、美西凌晨2点47分。如果这场故障爆发在美东的晚高峰(购物与流媒体流量顶点),商业损失会呈数量级放大。从事后看,49分钟的恢复速度某种程度上“救”了Fastly——再晚两三个小时,赶上午9点美国东岸上班潮,那才是真正的灾难场景。

这起事故让整个行业重新审视了一个问题:数字基础设施的集中度风险。Fastly规模在CDN行业只能排第三(前面还有Akamai和Cloudflare),但它的客户恰好高度集中在“互联网顶流”这个区间,于是它一打喷嚏,半个互联网跟着感冒。事实上就在这次事故前两个月,Akamai也被曝出过影响广泛的网络异常(据当时公开报道)。用户和媒体第一次如此直观地意识到:互联网没有想象中分散,它是由屈指可数的几家基础设施公司“串”起来的,任何一家出事,都是全球性的。

五、处置复盘:为什么定位花了40分钟

把时间线再拆细一点,最有信息量的是09:48发现→10:27定位之间那39分钟。对一个宣称“一分钟发现”的团队来说,39分钟的定位时间意味着什么?官方复盘没有展开细节,但结合故障结构可以做出符合工程逻辑的推演(此段为作者分析,非官方表述):

这里藏着本次事故对运维人最有价值的教训:故障排查时,“变更事件流”和“性能指标流”必须放在同一个时间轴上比对。Fastly的监控一分钟就发现了指标异常,但如果配置变更记录没有实时可查的审计流水、没有自动关联分析,指标再准也只是在错误方向上快跑。

六、Fastly的整改清单

官方复盘列出的整改动作分为短期和长期两层,措辞非常具体:

短期四条:一是以最快且安全的方式在全网部署缺陷修复;二是对本次事件中遵循的流程和实践做完整的post mortem(正式复盘);三是查明为什么质量保障和测试流程没有发现该缺陷;四是评估如何进一步缩短故障恢复时间。

长期一条,也是最有技术含量的:全面利用WebAssembly和Compute@Edge的隔离能力,从底层重构平台的韧性("build greater resiliency from the ground up")。翻译一下:把边缘节点上跑的业务逻辑装进硬件级沙箱,让任何一份配置、一段代码的异常都被隔离在单租户范围内,物理上杜绝“一份配置掀翻全网”的架构可能。这是典型的“用架构演进消灭一类故障”的思路——不是把墙修厚,而是让墙里烧起来的火烧不到隔壁。

值得点赞的还有复盘本身的透明度:精确到分钟的公开时间线、不甩锅客户的表述(明确说配置是“合法的”)、当天即发布。对比某些运营商断网后发一份“因系统升级导致部分用户服务波动”的六十字声明,Fastly这份复盘的坦诚本身就是危机公关的一部分——事故当月它的客户流失率并没有出现媒体预想的雪崩。

七、给运营商的三面镜子

Fastly是一家CDN公司,但这场事故对电信运营商几乎是“定制化”的警示。这里给三面镜子,建议核心网、传输网、IT系统的运维管理者都照一照:

第一面镜子:你的“客户侧合法变更”有多少?运营商网络里同样存在大量不经内部割接窗口的变更:政企专线的开通与调单、物联卡批量激活、签约QoS参数修改、漫游协议生效、漫游签约参数同步、虚拟运营商批量开户。这些变更由外部触发、由业务流程自动下发,不进割接审批,不占变更窗口——和踩中Fastly地雷的那份客户配置如出一辙。标准允许网元存在多种实现方式,配置合法性校验只能证明“语法对”,证明不了“行为对”。防线只有一条:任何会落到网元上的变更,无论来源是内部工单还是外部客户,都必须过同一道自动化的影响面评估与灰度验证。

第二面镜子:核心网集中化,正在复制CDN的集中度风险。这几年的核心网云化、大区制改革、NFS(网络功能)集中部署,工程上收益巨大,但拓扑上正在把“全国的鸡蛋”往少数几个大区资源池里放。Fastly事故证明:85%这个数字一旦染上红色,没有任何客户规模能豁免。集中化本身没有错,错的是集中化的同时不配套故障隔离设计——SET级隔离、大区互备、信令风暴抑制,这些机制的演练频次,应当与集中度成正比。

第三面镜子:MTTR的瓶颈从来不在发现,而在定位。1分钟发现靠监控砸钱就能买到,40分钟定位靠的是变更与性能数据的关联能力。运营商这几年搞AIOps,多数预算砸在告警压缩和异常检测上,而Fastly事故证明的恰恰是:决定MTTR的不是“发现异常有多快”,而是“把异常和那份看似无害的变更对上号有多快”。变更流水全量入库、变更事件自动标注到监控时间轴、异常时段自动反向检索变更清单——这三件事没有任何算法含量,但对MTTR的贡献可能超过十个根因分析模型。

回头看,Fastly这场事故最值得记住的不是49分钟的成绩单,而是官方复盘里那句朴素的自我检讨:"Even though there were specific conditions that triggered this outage, we should have anticipated it."(尽管本次故障需要特定条件才能触发,但我们本应预见到它。)基础设施行业的最高戒律,从来不是防住上一次的故障,而是预见到下一次的形态——那颗雷,在你部署它的那天就已经埋下了。

参考来源

  1. Summary of June 8 outage — Fastly官方复盘 — Fastly时任战略与运营EVP Nick Rockwell署名发布,本文全部时间线、根因表述、整改清单的官方出处(2021年6月8日)
  2. Fastly官方博客 — 后续技术细节与平台整改进展的持续披露渠道
  3. Fastly全球网络地图 — 官方边缘节点分布,可作为“85%网络”影响规模的参照
  4. Fastly博客RSS订阅 — 官方技术文章与事故通告的订阅源

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入