> [!abstract]
> クラウド顧客は、自身のアプリケーションが信頼性高くかつ十分な性能で動作するという、強固で理解しやすい約束(サービスレベル目標、すなわち SLO)を求める。しかしクラウドプロバイダは、任意の顧客挙動と共有リソースの統計的多重化がもたらす隠れた干渉という技術的困難を前に、そのような約束を提供することを避けたがる。既存のクラウド SLO はコーナーケースへの防御を重視しており、正常挙動の定義は二の次になっている。この他の緊張関係と相まって、SLO の定義は驚くほど難しい。本論文では、この問題がサンプルデータに基づいた統計的意思決定の課題と類似性を持つことを示す。そして、サービスレベル期待(SLE)と顧客挙動期待(CBE)からなる相互に有益な枠組みが、プロバイダと顧客の間でリスクを明示的に分担することで、現行の SLO が抱える多くの問題を改善すると主張する。
## 論文情報
| 項目 | 内容 |
|------|------|
| 著者 | [[Jeffrey C. Mogul]], [[John Wilkes]] |
| 所属 | Google Inc., Mountain View, CA |
| 発表媒体 | HotOS '19 (Workshop on Hot Topics in Operating Systems) |
| 開催地 | Bertinoro, Italy |
| 発表日 | 2019年5月13日〜15日 |
| DOI | [10.1145/3317550.3321432](https://dl.acm.org/doi/10.1145/3317550.3321432) |
| ページ数 | 6 |
| 分類 | ポジション・ビジョン論文 |
## 概要
本論文は HotOS'19 に採録されたポジション論文であり、クラウドサービスにおける SLO(サービスレベル目標)の定義が実践的に困難である理由を分析し、その解決策として SLE(サービスレベル期待)と CBE(顧客挙動期待)という新たな枠組みを提案する。
現行の商用クラウド SLO の多くは可用性のみを扱い、リソースの過少供給が引き起こす問題には対応できていない。著者らは Google での経験に基づき、SLO 定義の難しさを統計学における意思決定の難しさとの類比で捉え、「法律家のように考えるのをやめ、統計家のように考えよ」という視点の転換を提唱する。
SLO の種別を整理したうえで、プロバイダ固有のリスク(シェアリング非依存リスク)と顧客挙動に依存するリスク(シェアリング依存リスク)を区別して扱い、後者については SLE と CBE を双方向的に設定することでリスク分担を明示化する枠組みを示す。
## 問題設定
### プリンシパル・エージェント問題
クラウドサービスにおいて、顧客(プリンシパル)は低コストと高信頼性の両立を望み、プロバイダ(エージェント)はリソースを多重化してコストを抑えたい。この利害の非対称性が「プリンシパル・エージェント問題」を生み出し、SLA(サービスレベル合意)はその利害を再調整するための契約的装置となる。
SLA は「SLO + 違反時の結果」と定義される。SLO(サービスレベル目標)は SLI(サービスレベル指標)への述語であり、SLI が測定可能な量を指す。例えば「月次稼働率 99.99% 以上」という SLO は、稼働率という SLI への述語である。
### SLO 定義の困難さ
著者らは以下の課題を列挙する。
- **複雑性の隠蔽**: 「月次稼働率」という一見単純な SLO の中にも、計測粒度・集計期間・「稼働」の定義・ネットワーク到達性の定義・マイグレーション中の扱いなど多くの曖昧さが潜む。
- **コストと数量のトレードオフ**: SLO の計測・評価にはリソースコストが伴い、プロバイダは必要な SLO 数を絞らざるを得ない。
- **顧客挙動への依存**: ネットワークスループット保証など、性能 SLO の多くは顧客側の挙動に依存する。プロバイダが制御できない要因が SLO の達成を左右する。
- **コーナーケース防御への偏り**: 既存 SLA の法的性格から、プロバイダは稀な最悪ケースへの対応に SLO を集中させる傾向がある。これにより正常時の挙動への期待が明示されない。
- **"ナイン" 表現の限界**: 月間の不稼働時間を平均化する指標は、短時間障害の頻発と長時間障害の希少性を区別できない。ブラックフライデーのような重要日の障害と閑散期の障害を同等に扱う問題もある。
- **検証可能性の問題**: プリンシパル・エージェント問題の帰結として、顧客はプロバイダの自己申告を信頼できず、独立に検証可能な SLO が望ましいが、それが難しい SLO 種別もある。
### SLO の種別
著者らは SLO を以下の四種に分類する。
1. **契約的 SLO**: 法的合意を支える従来型。違反時の結果は金銭的補償。コーナーケースを対象とする。
2. **競争的 SLO(顧客満足 SLO)**: SLE(サービスレベル期待)として内部運用されることが多い。通常挙動の期待を定義する。
3. **コンポジショナル SLO**: 上位システム設計者が依存性を把握するための SLO。例えば可用性ゾーン間の障害非相関性。
4. **制御ループ SLO**: プロバイダが内部システムを能動的に管理するための SLO。アラートや自動負荷シェディングの閾値として機能する。
異なる種別の SLO を一本化しようとすることは、二つの異なる問題を一つの SLO で解こうとする誤りであり、長い不毛な議論を生む。
## 提案手法
### 統計学との類比
著者らは「専業統計家のアプローチ」と「SLOgician のアプローチ」の類比を示す。
| 統計学 | SLO 定義 |
|--------|----------|
| 意思決定の明確化(オペレーショナライゼーション) | 意味ある SLO の特定 |
| サンプリング(バイアスなく予算内で) | SLI データ収集(コストとフィデリティのバランス) |
| 推論手法の選択(統計家の最深部の技能) | SLO 述語の定義(最も難しい部分) |
| 検定力分析(必要サンプルサイズの決定) | 計測予算の決定 |
統計学から得られる最重要の教訓は**謙虚さ**である。不確実性の下での推論においては完全な確信は持てず、場合によっては敗北を認めなければならない。同様に、予測不可能なワークロードと複雑な共有インフラの性能モデル化困難さ、そして必要な全計測データ収集の非現実性を前に、ある種の SLO は実現不可能であることを認める必要がある。
SLOgician の手順として以下を提示する。
1. 回避すべき悪い結果と達成したい良い結果を列挙する
2. ビジネス意思決定者と違反時の結果(返金額など)に合意する
3. それらの結果をオペレーショナライズする(定量化可能な指標に変換する)
4. 悪い結果が起きているかどうかを判断するためのデータ収集方法と集計方法を決定する
5. そのデータ上でどの述語が SLO 達成を判定するかを決定する
6. 利用可能な計測予算の範囲で必要なデータを収集できるか確認する
### SLE と CBE の枠組み
共有リソースに起因する不確実性に対処するため、著者らは結果志向の SLO から期待志向への転換を提案する。
- **SLE(サービスレベル期待, Service Level Expectations)**: プロバイダが顧客に対して提供できる挙動の期待。最悪ケースではなく通常挙動・平均的挙動を対象とする。
- **CBE(顧客挙動期待, Customer Behavior Expectations)**: プロバイダが顧客に対して期待する挙動。CBE が満たされる場合にのみ対応する SLE が適用される。
この双方向の枠組みにより、リスクが明示的にプロバイダと顧客の間で分担される。薬品の副作用(患者が負うリスク)と製造誤差(製薬会社が負うリスク)の類比が示されている。
**シェアリング非依存 SLO** は顧客挙動によらないリスク(コントロールプレーン障害、フェイルオーバー機構の不備、地域内の複数可用性ゾーンへの同時メンテナンスなど)を対象とし、比較的記述が容易である。
**シェアリング依存 SLO** は共有 L3 キャッシュ・メモリバスによる CPU 性能の不確実性、リンク過負荷・キューオーバーフローによるネットワーク性能の不確実性、ディスク帯域過負荷による遅延などを扱う。これらについては、SLO を契約的ではなくコンポジショナル(ガイダンス)として提供し、SLE/CBE で双方向期待を明示する。
CBE 違反はリアルタイムでの強制が難しい場合が多いが、事後的な検出は有効である。例えば L3 キャッシュミスは CPU カウンタで、ネットワーク・インキャストはスイッチ計測で検出できる。契約的 SLA において CBE 違反が検出された場合、プロバイダの義務を免除する条件として組み込むことが可能である。
CBE は追加的な制約に見えるが、顧客とプロバイダの協調関係を促進し、法的紛争を回避する方向へ両者を導く。
## 新規性
本論文の主要な概念的貢献は以下の三点である。
1. **SLO 種別の体系化**: 契約的・競争的・コンポジショナル・制御ループという四分類を提示し、種別ごとに適切な SLI と述語が異なることを明示した。
2. **統計学との構造的類比**: SLO 定義問題と統計的意思決定問題が同型であることを示し、「SLOgician」という専門職的役割の必要性を導いた。特に「謙虚さ」(uncertainty の下での限界の認識)を統計学から SLO 実践への転用可能な知見として示した。
3. **SLE/CBE 枠組みによるリスク分担の双方向化**: 従来の一方向的な「プロバイダが顧客に保証する」モデルから脱却し、プロバイダと顧客が互いに期待を明示し、リスクを分担するモデルを提案した。これにより、シェアリング依存の不確実性を SLO 枠組みの中に組み込むことが可能となる。
## 考察
著者らは未解決問題として以下を列挙する。
- シェアリング非依存リスクとシェアリング依存リスクの境界をどう定義するか。リソース共有の判断はプロバイダに委ねられており、製品差別化(スポットインスタンス対高可用性インスタンス)によっても変化する。
- SLO の定義は顧客挙動・プロバイダインフラの進化・新たな障害モードの発見に伴って進化しなければならない。原理から SLO 閾値を演繹することは困難であり、インクリメンタルな改善プロセスが現実的である。
- 顧客 X の予期しない L3 キャッシュ挙動が顧客 Y に影響し、プロバイダが CBE 違反を検出しない場合、顧客 Y はどのコスト効率的な手段で被害を証明できるか。サードパーティ監査のサポートが必要かもしれない。
- SLO の品質をその履歴と独立的に計測したシステム・顧客の健全性指標(障害履歴、サポートチケット等)と対照することで検証できるか。
## 強み / 弱点・課題
### 強み
- Google の実務経験に根ざした問題設定であり、SLO が「驚くほど難しい」ことをより深い構造的分析に昇華している。
- SLO を種別・目的に応じて分類する枠組みは、実務者がどの種の SLO を議論しているかを明確にする実用的な価値がある。
- 統計学との類比は、SLO 定義を専門的スキルを要する学問的営みとして位置づけ、特に「謙虚さ」という規範的含意を提示する。
- 双方向的な SLE/CBE 枠組みは、プロバイダが制御困難なリスクを顧客と協調して管理するための実践的な設計原理を与える。
### 弱点・課題
- ポジション論文のため実装・評価がなく、SLE/CBE 枠組みの実際の効果は示されていない。採用コストや顧客の理解可能性についての議論も薄い。
- SLO 数の増加に対する懸念を著者ら自身が認識しているにもかかわらず、SLE と CBE の組み合わせはさらに多くの SLO/CBE を必要とする逆説がある。
- シェアリング非依存リスクとシェアリング依存リスクの境界定義を未解決問題として残しており、実装者には具体的な指針が不足する。
- CBE の事後的検出は可能であっても、法的証拠としての適格性や顧客間の干渉の帰因問題には深く踏み込めていない。