BOOK DEEP-READ · CHAOS ENGINEERING · CH 6

Microsoft: Variation and Prioritization of Experiments

Chaos Engineering: System Resiliency in Practice · Ch 6 · Microsoft · 2020

中文 →

What is this chapter about?

The last two chapters were about how to stage a drill — Slack scripting one for a legacy system, Google scaling one up to the whole company. This chapter steps back and asks something more basic: which failure should you break first?

Any moderately complex production system has more ways to break than you can count, and you only get a few dozen good experiments a year. Where should those few dozen go?

An analogy: which test does a check-up start with?

A hospital can run a thousand different tests. You have one morning.

The smart move is not to pick at random, and not to use the most expensive machine on every organ. It is to ask two things: how likely is this problem at your age and lifestyle, and how bad is it if you have it. Heart and blood pressure go first; tropical parasites go last — not because parasites are harmless, but because the odds on you are tiny. Chaos experiments get ranked by the same ruler.

Why the old way is hard

Many teams start chaos work by installing a tool, then let the tool's feature list become the experiment list: it can kill machines at random, so they keep killing machines.

Two hundred kills, nothing broke. That is reassuring — but it may only mean you already knew nothing would break. The handful of things that could actually take the system down were never touched.

The other half is more awkward: a complete list is impossible to write. There are twenty or thirty dependencies, each can go wrong in several distinct ways, and multiplying gives thousands.

The core intuition: three things

What it buys you / how to choose

You spend a limited number of shots where they can actually teach you something. One more rule saves a lot of effort: do not run an experiment whose answer you already know. If you are sure it will break, do not break it — go fix it; breaking it is just scheduling your own incident. One honest cost: the ranking rests on estimates of probability and impact, and estimates are wrong, so the failures you ranked last will still come for you.

One line to remember

There are infinitely many ways to break and only a few dozen experiments — so the real craft of chaos engineering is not injection but ordering: start from the dependency list, favour the "slow" and "wrong data" modes, rank by likelihood × pain, and skip the ones whose answer you already know.

Want the mechanism, the numbers and the diagrams? → Switch to the deep read