# サービスとしての運用(OaaS)
## 定義
サービスとしての運用(Operations as a Service = OaaS)とは、汎用のセルフサービス運用機能を作成するための、汎用で一見シンプルな設計パターンである。自動化された手順を定義および実行するための機能を安全に分散させるためのプラットフォームという考え方を核とする。Damon Edwards([[Rundeck Inc.]] 共同創業者)が『SREの探求』第10章で提唱した。(Source: [[@2021__OReillyJapan__SREの探求 - Chapter 10 大企業でSRE導入の道を開く方法]] §10.7.3)
OaaS は、従来のチケット駆動型リクエスト履行や、権限のある運用チームが作成した静的な「ボタン」型セルフサービス(定義は「作成者」、実行は「利用者」という分業)とは異なり、自動化の**定義**と**実行**の両方の機能を運用機能の利用者側に渡す「完全なセルフサービス」を目指す。AWS の EC2 が仮想マシンをボタン一つで確保できるだけでなく、ユーザーが独自のマシンイメージ(AMI)と設定を作成できることを画期的とした例が引かれ、ガバナンスは運用者とエンドユーザーが共有する。(Source: [[@2021__OReillyJapan__SREの探求 - Chapter 10 大企業でSRE導入の道を開く方法]] §10.7.1, §10.7.3)
設計パターンとして成功するための要件は次の3点である。
- **軽量性と言語非依存性**: プラットフォームは軽量であり、広く利用されている任意のスクリプティング言語・ツールと組み合わせて機能する必要がある。1つの言語・自動化フレームワークへの標準化を強制することは、大企業の異種混在という性質を考えると非現実的であり、組織の動きをスローダウンさせる恐れがある。
- **アクセス制御と監査可能性**: 高いレベルのアクセス権限を持つ人々・チームに対応できる最高水準の制御が必要である。
- **可観測性との一体化**: モニタリング・オブザーバビリティのプロジェクトと組み合わせる場合に最も効果を発揮する。「把握すること」と「実行すること」を最初から同じ重みで扱わないと、運用の健全性・状態・設定に対する可視性が欠けたまま自動化だけが先行する。
OaaS は運用の現場で使うどのような組織モデルとも互換性を持つよう設計される。機能横断型チームの組織モデル(各機能横断型チームにSREがチーム派遣型で伴う)でも、開発と運用/SREが分離された従来型に近い組織モデル(共通のSREチームが「構築と運用」を担う)でも、組織にふさわしいセルフサービス機能を開発するメリットは共通する。SRE スタイルの運用を導入し高パフォーマンス企業と評価される会社(例: Netflix の Spinnaker・Winston・Bolt)は、特定目的のツール群を構築してセルフサービス機能を実現している場合が多いが、これらは元々その企業の集中的な専用組織向けに新規開発された専用ツールである点で、大企業が数十年にわたる買収・蓄積による異種混在性を前提に必要とする汎用性とは異なる。(Source: [[@2021__OReillyJapan__SREの探求 - Chapter 10 大企業でSRE導入の道を開く方法]] §10.7.3)
## 横断的知見
(複数ソースが出揃い次第追記)
## 未解決の問い
- OaaS は Rundeck 社のマーケティング上の用語(自社製品の設計思想の一般化)としての性格も持つ。同種の汎用セルフサービス基盤(例: Spinnaker のような Netflix 発ツール、あるいは 2020 年代の Internal Developer Platform)と比較したとき、OaaS 固有の主張(言語非依存性・軽量性)はどこまで独自か、他ソースでの裏付けが必要。
- 「自動化を定義および実行する機能を組織内のどこであれ作業の流れが改善される場所に移す」というパターンは、具体的にどの権限モデル(RBAC・承認ワークフロー等)で実装されるべきか、本 concept の現ソース群には具体的な実装例が乏しい。
- OaaS プラットフォームの軽量性・言語非依存性という要件は、[[プラットフォームエンジニアリング]] が扱う Internal Developer Platform の設計原則(ゴールデンパス・オープン標準優先)とどこまで一致し、どこで異なるか。
- 図10-9・図10-10で示される「チーム派遣型SRE」「構築と運用のSRE」という役割分担は、[[SREエンゲージメントモデル]] の4区分(Kitchen Sink/Product・Embedded・Consulting・Infrastructure/Tools)のどれに対応するか、本 concept の現ソース群では未整理。
## 関連
- 概念: [[プラットフォームエンジニアリング]] — 開発者向け内部セルフサービス基盤という同種の設計思想。OaaS(2018年原書)は「プラットフォームエンジニアリング」という用語が一般化する以前に、汎用セルフサービス運用基盤を明示的に設計パターンとして名付けた先行例
- 概念: [[トイル]] — セルフサービスによるトイル削減(反復リクエストの自動化)
- 概念: [[Handover Communications]] / [[待ち行列理論]] — OaaSが解消しようとする引き継ぎ・キューの構造的コスト
- 概念: [[SRE組織変革]]
- 実体: [[Damon Edwards]] / [[Rundeck Inc.]]
- ソース: [[@2021__OReillyJapan__SREの探求 - Chapter 10 大企業でSRE導入の道を開く方法]]
## 出典
- Damon Edwards, 「大企業で SRE 導入の道を開く方法」, David N. Blank-Edelman(編)『SREの探求』, オライリー・ジャパン, 2021, 10 章.