互联网史上历时最长的瘫痪是怎样造成的【让编程再次伟大#48】
By Peter Pang
Summary
## Key takeaways - **DynamoDB bug caused longest cloud outage**: A seemingly minor logic error in DynamoDB's modification commands led to a race condition, causing a cascading failure across hundreds of AWS services and resulting in the longest-ever cloud service outage, lasting over 14 hours. [00:14], [03:03] - **Lack of auto-recovery mechanism crippled AWS**: The critical AWS service, Drop Network Workflow Manager (DWFM), lacked an automated recovery mechanism. When it failed, engineers had no established procedure to rely on, forcing them to improvise and manually restore services, prolonging the outage. [01:00] - **Cascading failures in AWS microservices**: The outage demonstrated a critical flaw in AWS's microservice architecture, where the failure of one core service, DynamoDB, triggered a chain reaction. Dependent services like DWFM and Network Manager became overloaded with queued tasks, leading to further system-wide failures. [00:30], [00:45] - **Business decisions drive technical architecture**: AWS's architectural choices, like concentrating critical services in a single region (US East One) and the tight coupling of microservices, while technically suboptimal, were driven by business realities such as cost-effectiveness and historical development patterns, leading to the 'live together, die together' phenomenon. [08:45], [11:35] - **Cost vs. resilience: a business dilemma**: Implementing robust multi-region and multi-node redundancy, while technically feasible, significantly increases costs. Businesses face a dilemma: invest heavily in resilience to avoid rare but catastrophic outages, or accept the risk for lower operational expenses. [10:00]
Topics Covered
- Simple code bugs cause catastrophic cloud outages.
- Lack of basic recovery plans cripple critical systems.
- Cloud architectures create hidden systemic risks.
- Geographic concentration of services creates single points of failure.
- Cloud providers prioritize business over technical perfection.
Full Transcript
20
25 年
10 月
19 日
晚上
11 点
48 分
正 准
备 睡
觉 的
A WS
员 工
迎 来
噩 耗
核 心
数 据
库 产
品 D
ynam
o DB
出 现
连 接
故 障
依 赖
它的 上
百 个
云 服
务 产
品 也
因 此
下 线
故 障
源 自
于 一个
很 低
级 的
代 码
逻 辑
错 误
导 致
两 个
修 改
数 据
的 命
令 前
后 冲
突 这是
教 科
书 士
的 R
ace
Cond
ition
虽 然
只 用
了 三
个 小
时 工
程 师
们 就
把 这个
bug
修 好了
但 灾
难 才
刚 刚
开始 作
为 A
WS 最
引 以
为 好的
产 品
之 一
D
ynam
o DB
几 乎
是 所有
内 部
系 统
默 认
使 用
的 数
据 库
所以 在
这 三
个 小
时 的
单 机
时间 里
那 些
系 统
也 累
积 了
无 数
需要 从
事 的
任 务
这里 就
包括 了
负 责
调 度
所有
EC 2
服 务
器 资
源 的
内 部
管 理
程 序
D
rop
Net
Work
flow
Mana
ger
D W
F M
20 号
凌 晨
2 点
25 分
在 D
ynam
o DB
恢 复
的 那
一 瞬
间 D
W F
M 就
被 堆
积 如
上 的
代 办
事 项
所 冲
垮 调
度 中
心 挂
掉 导
致 所有
EC 2
服 务
器 无
法 启
动 这
又 是
一次 经
典 的
从 事
机 制
的 设
计 出
问题
Go
ogle
表示
这个
我很 熟
如此
重要 的
程 序
没有 自
动 恢
复 机
制 这
也 罢
了 赶
来 修
复 的
工 程
师 甚
至 没有
一个
可以 参
考 的
手 动
恢 复
流 程
也 就是
说 整
个 Ad
W F
M 整
个 历
史 上
从 来
没有 人
考 虑
过 如果
D W
F M
挂 了
要 怎么
处 理
这个
问题
这样 看
来 在
现 场
一 边
修 复
一 边
摸 索
的 工
程 师
们 只
用 了
三 个
小 时
就 完成
修 复
已经 是
相 当
厉 害
了 时间
来 到
早 上
5 点
28 分
D W
F M
恢 复
EC 2
也 开始
正 常
启 动
事 故
终 于
告 一
段 落
了 妈
好 巧
不 巧
D W
F M
旁 边
还有
一个 负
责 掌
控 所有
EC 2
网 络
功 能
的 程
序
Net
work
Mana
ger
和 D
W F
M 相
比 它
可是 累
积 了
6 个
小 时
的 代
办 事
项 再
加 上
刚 刚
大 量
成 功
重 启
的 EC
2 发
出 的
海 量
新 颈
求 它的
处 理
速 度
还 不
够 代
办 的
新 增
速 度
所以 工
程 师
们 只
能 再
次 撸
起 袖
子 SS
H 进
去 手
动 疏
导 直
到 早
上 10
点 36
分 吸
压 的
代 办
事 项
才 处
理 完
EC 2
的 网
络 功
能 恢
复 正
常 而
在 云
的 另
一个 角
落 在
EC 2
重 启
的 同
一 时间
负 责
分 配
网 络
流 量
的 负
载 均
衡 N
L B
也 开始
为 这
些 浏
览 器
引 流
但 因为
Net
work
Mana
ger
卡 住
了 这
些 服
务 器
有 的
能 联
系 上
有 的
联 系
不 上
这 就
导 致
N L
B 的
健 康
检 查
在 红
灯 和
绿 灯
中 反
复 横
跳 同
时 连
锁 反
应 也
导 致
N L
B 被
D NS
反 复
下 架
和 上
架 直
到 9
点 36
分 任
务 可能
的 工
程 师
们 只
好 关
闭 了
N L
B 的
健 康
检 查
让 它
忽 略
那 些
没有 回
应 的
服 务
器 保
持 绿
灯 状
态 让
N L
B 可以
暂 时
地 正
常 工作
直 到
下 午
2 点
09 分
所有 积
压 的
EC 2
服 务
器 恢
复 正
常 N
L B
的 健
康 检
查 重
启 所有
网 络
功 能
才 恢
复 2
点 20
分 最
后 一
批 受
影 响
的 产
品 依
赖 最
多 最
杂 的
容 器
服 务
EC S
和 E
KS 恢
复 正
常 此
次 故
障 事
件 正
式 结
束 从
10 月
19 日
晚上
11 点
48 分
到 第二
天 下
午 的
2 点
20 分
总 共
14 小
时 32
分 钟
这 也是
有 记
录 以
来 云
服 务
行 业
历 史
最 长
的 一次
大 规
模 瘫
痪 在
我的 粉
丝 群
里 一
半 的人
因为 A
WS 单
机 参
与 高
强 度
的 修
复 工作
煎 熬
了 一
整 天
另 一
半 的人
则 因为
A WS
单 机
无 法
工作 爽
爽 地
摸 鱼
了 一
整 天
真 是
人 间
白 态
了 和
第 40
集 视
频 里
分享 的
Go
ogle
Cloud
的 谈
光 事
故 相
比 A
WS 这
次 的
炒 台
程 度
其实
没有
那么 严
重 除
了 最
开始 的
导 火
索 剩
下 的
问题
都是
因为 错
重 复
杂 的
架 构
导 致
的 连
锁 反
应 以及
体 量
过 大
导 致
的 极
端 高
负 荷
运 行
压 力
巧 合
的是 这
两 次
谈 光
事 故
的 导
火 索
都是 入
门 级
的 大
码 错
误 本
次 A
WS 事
故 的
源 头
是 D
ynam
o DB
系 统
里 负
责 处
理 D
NS 的
两 个
程 序
它 们
分 别
是 负
责 生
成 D
NS 记
录 的
Pl
anner
和 负
责 将
新 记
录 写
入 D
NS 系
统 的
In
actor
为 了
保 证
容 错
D
ynam
o DB
在 三
个 口
用 区
部 署
了 三
个 独
立 的
In
actor
每 当
Pl
anner
生 成
一个 新
记 录
其 中
一个
In
actor
就 会
拿 走
写 进
D NS
里 在
写 入
之前
In
actor
会 做
一个 前
期 检
查 确
保 它
手 上
的 记
录 比
现在 D
NS 里
的 更
新 而
写 入
成 功
之 后
In
actor
还 会
做 一个
清 理
动 作
就是 把
D NS
里 比
自己 刚
写 入
的 记
录 更
早 的
那 些
都 抹
掉 于
是 在
10 月
19 日
晚上 出
现 了
这么
一个
情况
In
actor
张 三
首先 从
Pl
anner
那 里
拿 到了
新 记
录 A
在 他
写 入
D NS
的时候
不 巧
地 遇
到了 延
迟 停
在 中
间 了
此 时
Pl
anner
又 生
成 了
一个 新
记 录
B In
actor
里 四
拿 到
记 录
B 非常
顺 利
地 写
进 了
D NS
就 在
In
actor
里 四
准 备
执 行
收 尾
的 清
理 动
作 时
In
actor
张 三
的 延
迟 结
束 了
于 是
张 三
继 续
执 行
自己 的
任 务
把 手
上 的
记 录
A 写
进 D
NS 覆
盖 了
记 录
B 紧
接 着
李 四
开始 清
理 因为
他 在
D NS
里 发
现 了
比 自己
刚 才
写 入
的 记
录 B
时间 更
早 的
记 录
A 所以
按 照
代 码
逻 辑
李 四
把 记
录 A
抹 掉
等 张
三 和
李 四
都 完成
任 务
之 后
现在 D
NS 里
指 向
D
ynam
o DB
域 名
的 就
只 剩
一个 空
值 了
而 此
时 Pl
anner
生 成
了 新
记 录
C In
actor
王 五
拿 到
记 录
准 备
扮 演
救 世
主 然
而 很
可 惜
他 倒
在 了
前 期
检 查
上 因为
现在 D
NS 里
没有 记
录 所以
无 法
和 自己
手 上
的 记
录 C
做 对
比 做
不了 检
查 就
无 法
执 行
下一 步
的 写
入 整
个 逻
辑 进
入 死
胡 同
无 论
Pl
anner
之 后
再 生
成 多少
个 新
记 录
也 没有
一个
In
actor
能 把它
写 进
D NS
里 D
ynam
o DB
的 记
录 一直
停 留
在 空
值 上
也 就是
说 D
ynam
o DB
的 域
名 从
互 联
网 上
彻 底
消 失
了 找
不到 自
家 数
据 库
的
100
多 个
A WS
产 品
自 然
也 跟
着 瘫
痪 了
这个 错
误 也
就 比
Go
ogle
Cloud
那 次
忘 记
写 T
ric
at 导
致
Now
Point
Ex
cept
ion
好 一点
点 虽
然 也
不多
那么
问题
来了
如果
你是 负
责 修
复 这个
问题 的
程 序
员 你要
怎么 修
改 它
让 R
ace
Cond
ition
不 再
出 现
了 把
你的 解
决 方
案 发
到 评
论 区
我 给
你 打
打 分
在 我
看 来
D
ynam
o DB
的 这个
问题 要
背 锅
的是 设
计 这个
架 构
的人 这
种 多
个 进
程 修
改 同
一个 数
据 的
场 景
从 基本
的 软
件 设
计 角
度 来
说 你就
不 应
该 把
保 证
数 据
完 整
性 这
种 任
务 放
在 进
程 身
上 这
种 任
务 应
该 由
数 据
的 接
收 和
储 存
方 案
承 担
在 这里
就是 D
NS 系
统 R
ial
53
因为 数
据 在
这里 具
有 唯
一 性
也 就是
我们 常
说 的
S
ingle
Point
of
Truth
让 每
个 In
act
都 做
事 前
和 事
后 的
检 查
和 清
理 不管
你的 代
码 有
多 严
谨 都是
不 合
理 的
决 定
毕 竟
AC
ID 本
来 就是
很 难
达 成
的 要
不 然
My
SQL
这 种
大 热
门 的
数 据
库 也
就 不会
有 那么
多 和
Trans
action
相 关
的 问题
了 在
制 作
本 期
视 频
时 微
软 的
云 服
务 A
z oo
刚 好
也 遇
到了 全
球 范
围 的
当 机
这 已经
是 A
z oo
今 年的
第 五
次 世界
级 故
障 了
那 为
啥 他
上 新
闻 的
次 数
就 那么
少 呢
当然
你可以
说 是
因为
他的 大
客 户
大 多
都是 传
统 行
业 巨
头 普
通 民
众 对
于 故
障 的
感 知
不 深
但
如果你
认 真
翻 译
下 他的
故 障
报 告
就 会
发 现
他的
问题 要
么 是
CD N
运 维
出 错
了 要
么 是
被 D
D OT
S 了
要 么
是 CD
N 被
D D
OT S
了 来
来 去
去 就
只有 那
几 个
地方 出
错 很
少 会
出 现
严 重
的 连
锁 反
应 拖
垮 整
个 A
z oo
体 系
而 A
WS 的
画 风
就 完全
不 一
样 就
像 我在
很 久
以前 的
第 七
期 视
频 里
面 提
到 的
A WS
这 种
崇 尚
微 服
务 架
构 的
企 业
只 要
能 用
现 成
的 服
务 就
不会 考
虑 自己
造 轮
子 久
而 久
之 每
个 服
务 都
依 赖
每 个
服 务
牵 一
发 而
动 全
身 本
次 数
顾 出
现 的
D
ynam
o DB
拖 垮
D W
F M
拖 垮
所有
EC 2
拖 垮
所有 N
L B
的 连
锁 反
应 就
完 美
体 现
了 A
WS 内
部 系
统 同
声 共
词 的
状 态
而 回
顾 A
WS 历
史 上
的 几
次 大
规 模
摊 放
事 故
我们
可以
看到 导
入 所
基本
都是 D
ynam
o DB
S 3
L
amb
da 这
些 通
用 的
储 存
的 计
算 服
务 因为
大 部分
的 A
WS 产
品 都
需要 储
存 都
需要 计
算 所以
就 着
微 服
务 架
构 的
原 则
它 们
都 被
创 在
一 根
绳 上
敏 锐
的 观
众 可能
会 发
现 包括
这 次
事 故
在 内
A WS
每 次
出 大
事 好像
总 是
发 生
在 US
East
One
这个 分
区 这
就 让
人 产
生 了
一个 合
理 的
疑 问
云 服
务 不是
主 打
的 分
布 式
部 署
高 容
错 都
顶 能
力 强
吗
为什么
一个 分
区 出
故 障
就 能
够 拖
垮 半
个 互
联 网
呢 虽
然 在
市 场
营 销
时 云
服 务
一直
都是 和
分 布
式 高
容 错
稳 定
性 等
关 键
词 挂
钩 但
这 不
代 表
你 上
了 云
就 能
自 动
拥 有
这 些
好 处
它 只是
给 你
提 供
了 这么
一个 环
境 让
你可以
更 轻
松 地
搭 建
高 容
错 的
系 统
架 构
但 你
做 不
做 完全
取 决
于 你
就 连
A WS
自己 都
没有 彻
底 遵
循 这个
原 则
比如 管
理 权
限 系
统 A
IM 就
只 在
US
East
One
分 区
有 写
入 节
点 其
余 分
区 部
署 的
都 只是
只 读
节 点
当然 A
WS 这
些 架
构 决
定 涉
及 到
不 少
历 史
遗 留
问题
可以 理
解 而
对 于
大 多
数 的
企 业
来 说
需要 考
虑 的
其实
只有
一个
问题
你要
不要 投
入 额
外 成
本 进
行 多
点 部
署 这
不是
一个 技
术 问题
而 是
一个 商
业 问题
因为 从
技 术
上 来
说 答
案 很
明 显
各 种
级 别
的 容
错 方
案 都
已经 很
成 熟
了 比如
M
ult
i
Note
和 M
ult
i V
ision
大 多
数 云
服 务
商 的
服 务
都 达
到了 开
箱 既
用 的
程 度
就 算
是 相
对 更
复 杂
一点 的
M
ult
i
Cloud
只 要
在 架
构 设
计 和
技 术
选 行
时 多
加 注意
避 免
和 云
服 务
商 进
行 板
定 做
起 来
也 不
难 对
于 有
经 验
的 架
构 师
和 De
v
Ops
团 队
只 要
企 业
愿 意
掏 钱
搭 建
高 容
错 的
系 统
就是 手
到 心
来 的
事情 但
问题 就
处 在
这个 钳
子 两
个 N
ode
就是 两
倍 的
成 本
两 个
Reg
ion
就是 四
倍 两
个
Cloud
就是 八
倍 假
设 你
现在 是
CE O
你的 面
前 有
一个 按
钮 按
下去 能
让 你
避 免
几 年
一次 的
持 续
几 个
小 时
的 产
品 权
限 瘫
痪 但
坏 处
是 你的
成 本
会 翻
八 倍
你 会
按 下去
吗 这
本 质
上 其实
是 一个
博 弈
论 问题
对 于
一个 企
业 来
说 最
怕 的
不是 自
家 产
品 出
问题 而
是 只有
自 家
产 品
出 问题
如果
大家
一起 出
问题 新
闻 里
只 会
怪 罪
云 服
务 商
你 只是
受 害
者 毕
竟 这
种 几
年 才
会 出
现 一次
的 事
故 从
大 众
的 角
度 来
说 已经
属 于
黑 天
鹅 事
件 了
而 即
使 你
投 入
了 八
倍 成
本 做
好了 容
错 准
备 逃
过 一
劫 也
没有 人
会 表
扬 你
比如 这
次 事
件 中
毫 发
无 损
的
Net
flix
作 为
Ad
ib
us 最
大的 客
户 是
绝 对
的 模
范 生
但 N
ob
ody
cares
所以 当
你 从
CE O
的 角
度 来
考 虑
你 更
关 心
的是 用
户 是
股 民
的 反
应 那么
你的 最
优 解
就是 和
其 他
企 业
的 做
法 绑
定 作
为 Ad
ib
us 成
立 最
早 功
能 上
新 最
快 资
源 最
丰 富
的 分
区 早
期 的
企 业
基本 上
只 在
US
East
1 上
进 行
部 署
后 来
者 这样
也 会
将 它
作 为
首 选
甚 至
是 唯
一 选
择 结
果 就是
所有 人
都 在
US
East
1 上
抱 团
同 生
共 死
完 美
的 纳
斯 均
衡 看到
这里 的
观 众
可能 会
觉得
我是 在
狠 狠
地 批
判 这
些 云
服 务
商 用
户 毕
竟 作
为 一个
程 序
员 看到
这 些
糟 蹋
技 术
的 操
作 怎么
能 不
生 气
但 我
其实 并
没有
觉得
他们 的
决 定
有 什么
问题
当然 导
火 索
的 代
码 逻
辑 和
后 面
各 种
粗 糙
的 从
事 机
制 这
一 类
低 级
技 术
错 误
还是 要
批 判
一下 的
但 从
宏 观
上 来
看 不管
是 Ad
ib
us 内
部 各
种 产
品 的
互 相
捆 绑
还是 用
户 扎
堆 在
单 一
分 区
做 部
署 这
些 可能
不是 最
科 学
的 决
定 但
绝 对
是 最
现 实
的 决
定 我们
技 术
人 可能
想 要
追 求
技 术
上 的
完 美
但 世界
不是 围
绕 着
技 术
状 的
反 过
来 技
术 只是
服 务
于 世界
的 一个
工 具
归 根
到底
我们 都
只是 工
具 人
罢 了
Loading video analysis...