SRE(サイトリライアビリティエンジニアリング) えすあーるいー・さいとりらいあびりてぃえんじにありんぐ
サイトリライアビリティSLOエラーバジェットToil削減GoogleDevOps
SREって何?インフラエンジニアとどう違うの?
簡単に言うとこんな感じ!
SREはGoogleが作った「信頼性をエンジニアリングで解決する役割」のことだよ。従来の運用担当が「手作業で監視・対応」していたのに対して、SREは「自動化・コード・データで信頼性を向上させる」ソフトウェアエンジニア的アプローチを取るんだ。「運用を工学的に解決するエンジニア」って感じかな!
SRE(Site Reliability Engineering)とは
SRE(Site Reliability Engineering:サイトリライアビリティエンジニアリング)とは、ソフトウェアエンジニアリングの手法をシステムの信頼性・可用性・運用の問題に適用するアプローチであり、そのアプローチを実践するエンジニアの職種でもあります。2003年にGoogleのBen Treynorが提唱・実践し、2016年にGoogle SRE Bookの公開により業界全体に広まりました。
SREの核心は「信頼性とリリース速度のトレードオフを数値(SLO・エラーバジェット)で管理する」ことです。全ての時間をインシデント対応に使うのではなく、時間の50%以上を自動化・改善・工学的解決に使うことを目標とします。手作業で繰り返す単純な運用作業をToil(トイル)と呼び、Toilを削減して高付加価値な業務に注力します。
DevOpsとの関係では、DevOpsが開発と運用の文化的融合を指すのに対し、SREはその具体的な実装方法の一つです。SREを採用している組織では、SREチームが本番環境への変更権限を持つ代わりに、開発チームに信頼性の基準を課します。
SREの主要コンセプト
| コンセプト | 説明 |
|---|---|
| SLI / SLO / SLA | 信頼性を測定・目標設定・契約する3層構造(詳細は「メトリクス・SLO」参照) |
| エラーバジェット | SLOまでの余裕(許容できる障害時間)。リリース可否の判断基準 |
| Toil | 手作業で繰り返す定型作業。SREはToilを50%以下に抑えることを目標とする |
| オンコール | 本番障害に24時間対応する当番制度。Alert設計とエスカレーションが重要 |
| ポストモーテム | 障害後の振り返り。「犯人探しではなく学習」のBlame-lessな文化が重要 |
| キャパシティプランニング | 将来のトラフィック増加を予測し、インフラを事前に拡張する設計 |
歴史と背景
- 2003年:GoogleのBen TreynorがSREチームを設立。ソフトウェアエンジニアに運用業務を担わせる新しい役割モデルを確立
- 2016年:Google SRE Book(「Site Reliability Engineering」)がO’Reillyから出版・無料公開。業界への普及が加速
- 2018年:「The Site Reliability Workbook」公開。SREの実践的な導入方法が整理される
- 2018年〜:Netflix・Amazon・Facebook等の大手テック企業がSRE組織を整備。ジョブ市場での需要が急増
- 2020年〜:中規模企業でもSREまたはSREプラクティスを部分的に採用する動きが広まる
- 2022年〜:Platform Engineeringの台頭。SREの知見を活かした「開発者向け内部プラットフォーム」の構築が注目される
SREの責任領域と他ロールとの関係
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| Google SRE Book | SREの実践を定義したバイブル。無料オンライン公開(sre.google) |
| OpenSLO | SLO定義の標準化仕様(CNCF Sandbox) |
| DORA Metrics | SREが参照するDevOps成熟度の4指標(デプロイ頻度・リードタイム・障害率・復旧時間) |
関連用語
- メトリクス・SLO — SREが設計・管理するSLO・SLI・エラーバジェットの詳細
- オブザーバビリティ — SREがシステム状態を把握するための基盤
- カオスエンジニアリング — SREチームが推進する意図的障害実験による信頼性向上
- IaC(Infrastructure as Code) — SREが推進するインフラの自動化・再現性確保の実践
- CI/CDパイプライン — SREがToil削減のためにデプロイを自動化する手段
- 分散トレーシング — SREがインシデントの根本原因分析(RCA)に活用するツール
- カナリアリリース — SREがエラーバジェットを守るために採用する段階的リリース戦略