# SLO サービスレベル目標
## 概要
Alex Hidalgo による *Implementing Service Level Objectives*(O'Reilly, 2020)の日本語版。[[SRE Book]] が一章で扱った SLI・SLO・エラーバジェットを、それだけで一冊を成す主題として展開する実践ガイドである。
## 書誌情報
- 原書: *Implementing Service Level Objectives: A Practical Guide to SLIs, SLOs, and Error Budgets*(O'Reilly, 2020)
- 著者: [[Alex Hidalgo]](アレックス・ヒダルゴ)
- 監訳: 山口 能迪 / 訳: 山口 能迪、成田 昇司
- 出版社: 株式会社オライリー・ジャパン(発売元: 株式会社オーム社)
- 発行日: 2023-07-07(初版第 1 刷)
- ISBN: 978-4-8144-0034-8
- 構成: 全 17 章(3 部構成)+ 付録 A・B
- 原本: `.raw/books/implementing-slo-ja/`
## 構成と主要テーマ
全 17 章 + 付録 A・B のすべてを取り込み済み。第 I 部が SLO を「作る」までを、第 II 部が「実装し運用する」までを、第 III 部が「組織に根づかせる」ところを扱う。本書は章ごとに寄稿者が執筆する構成をとり、9 章以降は特に外部の実務者による寄稿が多い。
### 第 I 部 SLO の開発(第 1〜5 章)
信頼性とは何かという問いから始め、SLI・SLO・エラーバジェットという三層を順に組み立てる。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 1 信頼性スタック]] — 本書の中心概念である信頼性スタック(SLI→SLO→エラーバジェットの三層構造、SLA は並行する契約レイヤー)を導入し、サービスについて常に真である 3 つの真実と SLO 導入時の心構えを提示する土台の章。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 2 信頼性についての考え方]] — 信頼性を可用性と同一視する風潮に対し、信頼性工学という既存分野の知見に立ち返りつつ、ユーザーとの暗黙の合意・100% の不可能性・非線形に増大するコストという観点から考え方の土台を据える。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 3 意味のあるサービスレベル指標の開発]] — 信頼性スタックの最下層である SLI を、単純なリクエスト/レスポンスサービスでは 6 つの質問への還元、複雑なマルチコンポーネントサービスではジャンクション選択という手順で「意味のあるもの」に育てる方法。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 4 適切なサービスレベル目標の選択]] — 目標値を「9 の数」の慣習ではなく、ユーザー満足の 2 条件・依存対象の合成信頼性の計算・過去データのパーセンタイル分析から選定する方法論。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 5 エラーバジェットの使い方]] — エラーバジェットの実践的な使い道(リリース判断・プロジェクトの焦点・リスク要因検査・カオスエンジニアリング・人間への応用)と、イベントベース/時間ベースの計算、エラーバジェットポリシーの 4 要素。
### 第 II 部 SLO の実装(第 6〜12 章)
組織の同意を取り付けたうえで、計測・アラート・統計・アーキテクチャという実装面へ進み、通し事例で締めくくる。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 6 同意の獲得]] — 開発・製品・運用・QA・法務・経営幹部への同意獲得(buy-in)の順序と、最初のエラーバジェットポリシーの設計(フィーチャーフリーズと例外機構)。最初のポリシー執行こそが真の転換点だと説く([[Dave Rensin]]、本書では David K. Rensin 表記)。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 7 SLIとSLOの計測]] — 6 つの設計目標(柔軟な目標値・テスト可能性・鮮度・コスト・信頼性・組織の制約)のもとで、集中型 TSDB と構造化イベントデータベースを対置して計測基盤を評価する([[Benjamin H. Sigelman]])。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 8 SLOの監視とアラート]] — 閾値ベースアラートの構造的限界を示し、バーンレートに基づく SLO アラートの設計へ移行する([[Niall Murphy]])。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 9 SLIとSLOの確率と統計]] — 確率(ベルヌーイ試行・二項分布・幾何分布)と統計(最尤推定・MAP・ベイズ推定・HDI)、ポアソン過程・指数分布・待ち行列理論で SLI/SLO を定量的にモデル化する、本書で最も図が多い章([[Toby Burress]]・[[Jaime Woo]])。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 10 信頼性を得るためのアーキテクチャ]] — 既存システムへの後付けとは逆に、SLO を前提にシステムを一から設計する「SLO ファースト」のアプローチを、仮想の画像提供サービスを題材に [[NALSD]] の流儀で実演する(Salim Virji)。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 11 データの信頼性]] — データアプリケーションの信頼性をデータ属性 7 個とアプリケーション属性 6 個の計 13 属性に分解し、各属性の計測方法とサンプル SLO、データリネージによる SLO 依存関係の設計を論じる([[Polina Giralt]]・[[Blake Bisset]])。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 12 適切に機能した例]] — 架空の小売企業「The Wiener Shirt-zel Clothing Company」を通し事例に、外部顧客・他サービス・内部ユーザーという 3 つの視点からユーザージャーニー起点の SLI/SLO 設計を統合する第 II 部の締めくくり。
### 第 III 部 SLO の文化(第 13〜17 章)
技術的な実装を離れ、SLO を組織文化として定着させ、進化させ、伝えるための章群。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 13 SLO文化の構築]] — SLO のない文化の 2 つの極端な姿の対比から説き起こし、「同意を得る→最優先化する→実装する→活用する→反復する→他者へ提唱する」という 6 段階の道筋を示す([[Harold Treen]])。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 14 SLOの進化]] — SLO を一度決めて終わりにせず、利用率・依存関係・インシデント・ユーザー期待・計測ツールの変化に応じて見直す 6 つの再検討トリガーと、野心的な SLO による段階的な引き上げ。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 15 発見可能で理解可能なSLO]] — 所有権・承認者・定義の状態など 9 セクションからなる SLO 定義ドキュメントのテンプレートと、一元管理リポジトリ・自動同期・定期レポート・4 要素固定のダッシュボードによる発見可能性の向上策。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 16 SLOの提唱]] — 提唱を始める前に満たすべき 3 つの前提条件(エグゼクティブスポンサー・上司・自分自身の同意)と、クロール・ウォーク・ランの 3 段階で組織へ広げる提唱モデル([[Daria Barteneva]]・[[Eva Parish]])。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Chapter 17 信頼性のレポート]] — インシデント件数・深刻度レベル・MTTX がいずれも信頼性のレポート手段として破綻することを示し、エラーバジェットに基づく SLO とバーンダウンダッシュボードを代替として提示する本編の最終章。
### 付録
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Appendix A SLOの定義のテンプレート]] — 所有権・サービス概要・SLI と SLO・論拠・再考のスケジュール・エラーバジェットポリシー・外部リンクの 7 節からなる SLO 定義文書のテンプレート。第 15 章が参照する現物にあたる。
→ [[@2023__OReillyJapan__SLO サービスレベル目標 - Appendix B 9章の証明]] — 第 9 章で用いた確率統計の数式を支える 7 つの定理(ポアソン過程の加法性、指数分布の競合確率と条件付き期待値、期待値の一般性質、2 台/3 台レプリケーションの耐久性期待時間)の証明。
## 影響と位置づけ
[[SRE Book]] が第 4 章の一節として扱った SLI・SLO・エラーバジェットを、一冊分の主題として展開した書籍である。本書の独自性は、概念の紹介にとどまらず (1) 目標値選定の統計的手法(第 4・9 章)、(2) SLO を前提とした設計(第 10 章)、(3) データサービスへの拡張(第 11 章)、(4) 組織文化としての定着(第 III 部)という、SRE Book が扱いきれなかった 4 方向へ踏み込んだ点にある。特に第 9 章と付録 B は、SLO の議論で通常は経験則にとどまる部分(短いウィンドウでの偶然の違反判定、レプリケーションの耐久性試算)に確率論の裏づけを与える点で、他の SRE 系書籍に類例が少ない。
第 III 部は [[SREをはじめよう]] の組織論と主題が重なるが、後者が SRE という職能そのものの導入を扱うのに対し、本書は SLO という具体的な実践を軸に据える。第 6 章「同意の獲得」と第 16 章「SLO の提唱」が、導入前と定着後という時間軸で提唱活動を分けている点は本書固有の整理である。
## 関連
- 書籍: [[SRE Book]] / [[SREをはじめよう]]
- 概念: [[サービスレベル目標]] / [[エラーバジェット]] / [[信頼性スタック]] / [[意味のあるSLI設計]] / [[SLO目標値の選定]] / [[SLI-SLO段階的導入]] / [[SLODLC]] / [[データ品質SLO]] / [[ベイズ推定]]
- 人物: [[Alex Hidalgo]] / [[Benjamin H. Sigelman]] / [[Niall Murphy]] / [[Toby Burress]] / [[Jaime Woo]] / [[Polina Giralt]] / [[Blake Bisset]] / [[Harold Treen]] / [[Matt LeMay]] / [[Isobel Redelmeier]] / [[Daria Barteneva]] / [[Eva Parish]] / [[Dave Rensin]]
## 出典
- Alex Hidalgo(山口能迪 監訳、山口能迪・成田昇司 訳), 『SLO サービスレベル目標 — SLI、SLO、エラーバジェット導入の実践ガイド』, オライリー・ジャパン, 2023.