EXERCISE 90分

ストーリー

田中VPoE
SLI/SLOの理論とエラーバジェットポリシーの設計方法を学んだ。ここからは実践だ。うちの主要3サービスに対して、SLI/SLOの設計とエラーバジェットポリシーの策定をしてもらう
あなた
3サービス分ですか。それぞれ特性が違うので、画一的には設計できませんね
田中VPoE
その通り。ECサイト、社内API基盤、データパイプライン — それぞれの特性に合ったSLI/SLOが必要だ。そして、3サービス共通のエラーバジェットポリシーを1本策定する
あなた
共通ポリシーにしつつ、サービスごとの差異も反映する必要があるんですね
田中VPoE
そうだ。ポリシーが形骸化しないよう、現実的で運用可能なものを作ってくれ

ミッション概要

項目内容
演習タイトルエラーバジェットポリシーの策定
想定時間90分
成果物SLI/SLO設計書 + エラーバジェットポリシー

前提条件

対象サービス

サービス概要月間リクエスト数ユーザー数
ECサイトBtoC EC、売上直結5,000万50万人
社内API基盤マイクロサービス間通信2億8チーム(内部)
データパイプラインリアルタイム分析基盤日次1,000万イベントデータチーム(内部)

現状のパフォーマンスデータ

ECサイト(過去90日)

指標
可用性99.82%
P50レイテンシ180ms
P99レイテンシ1,200ms
デプロイ失敗率18%
月間インシデント数3-4件

社内API基盤(過去90日)

指標
可用性99.95%
P50レイテンシ45ms
P99レイテンシ350ms
エラー率0.08%

データパイプライン(過去90日)

指標
処理成功率99.7%
平均遅延3分
P99遅延25分
データ欠損率0.02%

Mission 1: ECサイトのSLI/SLO設計

要件

ECサイトに対して以下を設計してください。

  1. ユーザージャーニーの特定: クリティカルパスを3つ以上
  2. SLIの定義: 各ジャーニーに対するSLI(計算式含む)
  3. SLO値の決定: 現状データとビジネス要件から目標値を設定
  4. エラーバジェットの計算: 月間バジェット量を算出
解答例

ユーザージャーニー

#ジャーニークリティカリティ
1トップページ表示
2商品検索・一覧表示
3商品詳細表示
4カート操作
5決済完了最高

SLI/SLO設計

SLI計算式SLOエラーバジェット(月間)
可用性成功レスポンス(2xx,3xx) / 総リクエスト99.9%43.2分
ページレイテンシP99 ≤ 800ms のリクエスト / 総リクエスト99.5%25万リクエスト
決済可用性決済成功数 / 決済試行数99.95%21.6分
決済正確性正確な金額処理数 / 総決済数99.99%月間決済の0.01%

設計根拠

SLO根拠
可用性 99.9%現状99.82%から改善目標。99.95%は短期的にコスト高
レイテンシ P99 ≤ 800ms現状P99 1,200ms。800msはユーザー離脱率を20%削減の推計
決済可用性 99.95%売上直結。可用性全体より厳しい基準が必要
決済正確性 99.99%金額の誤りは信頼損失が甚大

Mission 2: 社内API基盤とデータパイプラインのSLI/SLO設計

要件

残り2サービスのSLI/SLOを設計してください。

  1. 社内API基盤: 内部サービス間通信の信頼性指標
  2. データパイプライン: データの鮮度と正確性の指標
  3. それぞれECサイトとの関係性(依存関係)を考慮すること
解答例

社内API基盤

SLI計算式SLOエラーバジェット(月間)
可用性成功レスポンス / 総リクエスト99.95%21.6分
レイテンシP99 ≤ 200ms のリクエスト / 総リクエスト99.9%20万リクエスト
エラー率エラーレスポンス(5xx) / 総リクエスト≤ 0.05%月間10万リクエスト

設計根拠:

  • ECサイトが依存するため、ECサイトのSLOより高い可用性が必要
  • 内部通信のため、ユーザー向けより厳しいレイテンシ基準(200ms)

データパイプライン

SLI計算式SLOエラーバジェット(月間)
処理成功率成功イベント / 総イベント99.9%月間1万イベントの損失許容
データ鮮度遅延 ≤ 10分 のイベント / 総イベント99.5%0.5%のイベントが10分超過可能
データ正確性正確に処理されたイベント / 総イベント99.99%月間1,000イベントの誤り許容

設計根拠:

  • データパイプラインは分析用途のため、リアルタイム性よりも正確性を重視
  • 10分の遅延許容は、ビジネスダッシュボードの更新頻度(15分)から逆算

依存関係の考慮

ECサイト(SLO 99.9%)
  └── 依存: 社内API基盤(SLO 99.95%)
        └── 依存: データベース(SLO 99.99%)

ルール: 依存先のSLOは依存元より高く設定する
理由: 依存先の障害が依存元のバジェットを消費するため

Mission 3: エラーバジェットポリシーの策定

要件

3サービス共通のエラーバジェットポリシーを策定してください。

  1. エスカレーション閾値: 4段階(Level 0-3)
  2. 凍結ルール: 条件、許可変更、解除条件
  3. 例外処理: 例外の種類と申請プロセス
  4. RACI表: 各アクティビティの責任者
  5. 運用ルール: 計測方法、報告頻度、レビュー頻度

追加の制約

  • 開発チームが「面倒だ」と感じない程度のシンプルさ
  • PMが「ビジネスを止めるな」と言ったときに対応できる例外処理
  • 経営層が承認できるレベルの根拠と明確さ
解答例

エラーバジェットポリシー v1.0

1. 適用範囲

本ポリシーは以下のサービスに適用する:

  • ECサイト(Tier 1: 売上直結)
  • 社内API基盤(Tier 2: 内部基盤)
  • データパイプライン(Tier 3: 分析基盤)

2. エスカレーション閾値

Levelバジェット残量アクション通知先
0(正常)75%以上制限なしなし
1(注意)50-75%Tier 1サービスへの変更にSREレビュー追加Slackチャンネル
2(警戒)25-50%リリース頻度半減、信頼性スプリント開始PM + テックリード
3(危険)25%以下新機能リリース凍結VPoE + CTO

3. 凍結ルール

凍結条件:

  • バジェット残量 25%以下(自動判定)
  • バーンレート 5.0以上が1時間継続(SREリード判断)

凍結中の許可変更:

  • セキュリティパッチ
  • 信頼性改善(バグ修正、パフォーマンス改善)
  • ロールバック
  • 可観測性の追加

凍結解除条件:

  1. バジェット残量 50%以上に回復 OR 新計測期間開始
  2. 枯渇原因のポストモーテム完了
  3. アクションアイテム着手済み
  4. SREリード + PM + テックリードの合意

4. 例外処理

例外タイプ承認者最大承認時間
法規制対応CTO2時間
セキュリティ緊急セキュリティリード1時間
売上影響(日次100万円以上)VPoE4時間

例外承認時の追加条件:

  • カナリアリリース必須(対象ユーザー5%以下)
  • 15分の観察期間
  • ロールバック閾値の事前設定

5. RACI表

アクティビティ開発SREPMVPoE
SLI計測の実装RAII
バジェット監視IR/AII
Level 1対応RAII
Level 2対応RACI
Level 3対応RRCA
凍結判断CRCA
例外承認ICCA
ポストモーテムRRII

6. 運用ルール

項目内容
計測ウィンドウ30日間ローリング
ダッシュボード更新リアルタイム(1分間隔)
週次レポート毎週月曜に自動配信
SLOレビュー四半期ごと
ポリシーレビュー半期ごと

達成度チェック

観点達成基準
SLI設計ユーザー視点の指標が選定され、計算式が明確
SLO設計現状データとビジネス要件に基づく妥当な目標値
依存関係サービス間の依存を考慮したSLO設計
ポリシー4段階エスカレーションと凍結ルールが定義されている
運用可能性シンプルで実行可能な設計になっている

推定所要時間: 90分