专业书籍精读 · Chaos Engineering · 第 9 章

创造前瞻

Chaos Engineering: System Resiliency in Practice · Ch 9 · Creating Foresight · 2020

EN →

这一章讲什么?

你在手机上点外卖,几秒后显示「下单成功」——背后是几十个程序在互相打电话。负责这些程序的工程师,每个人只熟悉其中一小块。这一章问的是:怎么在出事之前,就发现「大家以为的系统」和「真实的系统」不一样?

前几章讲的「混沌工程」,是故意弄坏一点东西,看系统扛不扛得住。这一章说:真正最值钱的,常常不是弄坏的那一刻,而是动手之前大家坐下来聊的那一个小时。

打个比方:出发前对一遍路线

一家人自驾出远门。出发前爸爸说「走高速,三小时到」,妈妈说「高速那段在修路,得绕」,孩子问「半路没油了怎么办?」——没人答得上来。

车还没开,三件事已经露出来了:两个人脑子里的地图不一样;有一个问题谁都没想过。在家里发现,比在半路发现便宜得多。

旧世界为什么难

工程团队以前主要靠「事后复盘」学习:出了事,大家坐下来回顾。但事后回看,一切都显得「早该想到」,于是很容易变成找谁犯了错;而且学费已经交了——用户已经受了影响。

另一种做法是直接动手弄坏东西看结果。可如果没人事先说清楚「我们预期会发生什么」,结果出来了也不知道算好还是算坏。

核心机制直觉:动手前的一场对话

带来了什么 / 该怎么选

好处是很多问题在动手之前就被挖出来了——比如发现某个警报根本没人会收到,那不用弄坏任何东西,先去修就是。团队也从「出事后追责」慢慢变成「出事前一起想」。

一句诚实的代价:这种对话很吃主持人的功力,问得不好就会变成走过场,或者变成资深的人一个人在讲。

一句话记住

混沌工程不只是「弄坏东西」:动手之前,把每个人脑子里对系统的想象摆到桌面上对一遍——分歧和答不上来的地方,就是下一次事故最可能藏身的地方。

想看具体怎么开这场设计会、怎么问、怎么权衡? → 切到精读版