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

遭遇复杂系统

Chaos Engineering: System Resiliency in Practice · Ch 1 · Casey Rosenthal & Nora Jones · 2020

EN →

这一章讲什么?

你点开 Netflix 挑片、打开淘宝看首页,这一下背后不是「一个程序」,而是几百个小程序互相喊话:一个管认出你是谁,一个管给你推荐什么,一个管封面图,一个管算钱。《混沌工程》第 1 章不教任何技术,它先问一件扎心的事:为什么这种系统明明每个零件都好着,整体还会挂?

打个比方:手表和早高峰

一只机械表零件上百,但它是「复杂但拆得开」的——拆开摆一桌,一个个看懂,你就能推出整只表怎么走。城市早高峰不是这样:没有一辆车坏,路照样堵死。堵不住在任何一辆车里,它住在车与车之间。这一章的全部主张就是:今天的线上系统,已经从「手表」变成了「早高峰」。

旧世界为什么难

过去保可靠靠「读懂它」:画架构图、写文档、开评审会,把每个零件都测过一遍,然后签字说没问题。这套办法有个没说出口的前提——有人装得下整个系统。现在这个前提没了。每个工程师脑子里都只有一块残片,而且因为系统每天都在改,那块残片还在不停过期。评审会给你的是信心,不是可靠,这两件事之间并没有因果。

三件真事,坏零件数量都是零

那怎么办

既然想不明白,就去试:在可控范围内主动制造一次故障,看系统真实怎么反应——而不是猜它应该怎么反应。这是整本书的出发点。诚实说一句代价:在真实系统上制造故障,一定会有真实用户被波及,所以这本书后面大半篇幅都在讲怎么把被波及的人数压到最小。

一句话记住

复杂系统的故障不住在零件里,住在零件之间;没人装得下整个系统,所以可靠性不能靠想明白,只能靠动手试。

想进到具体机制、量级和示意图? → 切到精读版