BOOK DEEP READ · SRE · CHAPTER 3

Embracing Risk: Turning "How Long May It Break" Into a Budget You Spend

Site Reliability Engineering · Ch 3 · Google (Marc Alvidrez) · 2016

中文 →

What is this chapter about?

No app promises you it will never break. But inside a company, someone has to answer a very concrete question: how much broken time are we willing to allow ourselves in a year? Chapter 3 of Google's SRE book is about how Google not only refuses to dodge that question — it turns the answer into a budget you get to spend.

An analogy first

You want your home to be safer. A good lock costs a little. A reinforced door costs more. A ring of cameras costs a lot. A guard on duty around the clock costs a fortune. Each step up multiplies the price while adding only a sliver of safety. At some step you notice something: the extra money you're spending on "safer" now exceeds the value of everything in the house. Past that point you're not being careful — you're losing money.

And something stranger still

Even if you're willing to pay, your users may not notice. Between them and your service sit a phone, a Wi-Fi router, a home broadband line, a carrier network — and that whole path is not very reliable to begin with. The book puts it bluntly: someone using a phone that flakes out now and then cannot tell the difference between a service that almost never breaks and one that almost-almost never breaks.

The core idea: set the allowance, then spend it

If "never break" is both expensive and invisible, then state an allowance for breaking, openly: say how long this service may be broken in a year, and that gap is its budget.

Then run it like a family travel budget. Money left? Go out and enjoy it — ship freely, run bold experiments, and small mishaps simply draw down the budget. Money gone? Stay home — new features stop, everyone turns to fixing stability, and you wait for the next allowance. The old argument over "should we ship this one" — previously settled by whoever was loudest or most senior — becomes a glance at how much is left in the ledger.

One detail people miss: how do you count "how long it broke"? The instinct is to watch the clock — how many minutes were we down today. But a service spread across the world almost never falls over as a whole; it breaks a little here and a little there. So the more useful method is to count heads: of all the requests that arrived today, how many were not served properly. That way "half-broken" makes it into the ledger too.

How to use it

The allowance isn't one number for the whole company. An internal reporting tool and a payments system were never meant to have the same target. And a single storage system serving both "click and get an answer now" workloads and "crunch a batch overnight" workloads should offer two tiers at two prices, so the people using it pick what they need — want it steadier, pay more.

One honest cost: this only works if you actually dare to stop. If every empty budget can be waived with "but this feature is really important," it's just a pretty decoration on a dashboard.

Remember this one line

Reliability isn't better the higher it goes — it is a thing with a price. Rather than swearing "we will never break," admit up front how long you may break in a year and treat that as budget: run hard while there's balance, stop and fix the road when it's gone. The argument becomes an audit.

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