法則一覧

第72条運用

エラーバジェット

100% 未満の SLO は許容できる失敗の量を決める。その量は使ってよい予算だ。

Google

心得

許された失敗は出荷に使い、尽きたら止める

どうするか

SLO と、予算を使い切ったときの方針は、障害の最中ではなく事前に合意しておく。予算が残っていればリリースし、使い切ったら機能リリースを止め、回復するまで信頼性に時間を使う。データ消失とセキュリティは、そもそも予算の外に置く。

なぜ起きるか

プロダクト開発は速度で、運用は信頼性で評価される。だからリリースのたびに交渉になり、声の大きい側が勝つ。ある水準を超えると利用者は違いに気づかない(信頼性 99% のスマートフォンを使う人には 99.99% と 99.999% の差は分からない)のに、最後のわずかな差にいちばんコストがかかり、いちばん変更を止める。目標を明示すれば、目標と完璧の差が予算になる。30日で 99.9% なら失敗に使えるのは約43分で、残りがいくらかを両者が同じ数字で見られる。

実際にあったこと

Evernote は Google Cloud へ移ったあと、一部のサービスに暦月ごとの稼働率99.95%という最初の SLO を置き、メンテナンス時間も停止として数えた。SLO とエラーバジェットを使って開発の手をどこに割くか決め、Google と月に一度その実績を見直したという。2017年に複雑なバグを追っていたときは、SLO の計算で顧客への影響を数字にし、週のリリース枠を5回から2回に減らした。

記録を読む

当てはまらなくなるとき

逸脱の常態化:失敗を許す枠があると、チームは失敗をいつものことだと覚える。本来なら騒ぎになるはずの障害も予算から差し引かれるだけで、調べられずに終わる。

出典

Marc Alvidrez「Embracing Risk」(「Motivation for Error Budgets」節は Mark Roth)、Beyer, Jones, Petoff & Murphy 編『Site Reliability Engineering』(O'Reilly, 2016) 第 3 章。エラーバジェットの定義と「100% がふさわしい信頼性目標であることはおそらくない」という主張の出典。

原典を読む

ロゴ:Public domain · Wikimedia Commons

引用するとき

Hammurabi『第72条 エラーバジェット』 https://kanywst.github.io/hammurabi/ja/laws/error-budget/

BibTeX
@misc{hammurabi-error-budget,
  title  = {エラーバジェット},
  author = {{Hammurabi contributors}},
  note   = {Hammurabi, § 72},
  url    = {https://kanywst.github.io/hammurabi/ja/laws/error-budget/}
}

本文は CC BY-SA 4.0 です。Hammurabi の名前と記事へのリンクを添えてください。

XBlueskyはてブLinkedIn

コラムで読む

関連する法則

GitHub で誤りを指摘する