SREとは何か
ストーリー
「コードレビューとテストで開発段階の品質は守れるようになった。 でも、本番環境で動き続けるサービスの品質はどう守る?」
松本先輩が本番環境のダッシュボードを見せた。
「SRE、Site Reliability Engineering だ。 Google が生み出した、本番環境の信頼性を エンジニアリングで解決するアプローチ。 『品質の番人』の仕事は開発で終わりじゃない。 本番で動き続けてこそ本当の品質だ」
SRE の概要
SRE とは
SRE(Site Reliability Engineering)は、Google が2003年に始めたエンジニアリング手法です。「ソフトウェアエンジニアリングのアプローチで運用の問題を解決する」という考え方に基づいています。
従来の運用: SRE:
├── 手動オペレーション ├── 自動化
├── 経験と勘 ├── データ駆動の意思決定
├── 変更は少ない方が安全 ├── 適度な変更が信頼性を高める
├── 運用チーム vs 開発チーム ├── 同じチーム で協力
└── 100%の可用性を目指す └── 適切な信頼性目標を設定
SRE の基本原則
| 原則 | 説明 |
|---|---|
| SLI/SLO | サービスの信頼性を数値で定義する |
| エラーバジェット | 許容されるダウンタイムを「予算」として管理する |
| トイルの削減 | 手動で繰り返す作業を自動化で排除する |
| ポストモーテム | 障害から学び、再発を防止する(責任追及しない) |
| 段階的ロールアウト | カナリアリリースなどで変更のリスクを最小化 |
SRE と DevOps の関係
DevOps = 文化・哲学
「開発と運用の壁を壊し、協力してサービスを提供しよう」
SRE = 具体的な実践方法
「DevOps の哲学を、具体的な方法論とツールで実現しよう」
→ SRE は DevOps の具体的な実装の一つ
| 比較項目 | DevOps | SRE |
|---|---|---|
| 性質 | 文化・ムーブメント | 具体的な手法・役割 |
| 信頼性目標 | 一般的な概念 | SLI/SLO で数値化 |
| 変更管理 | CI/CD の推進 | エラーバジェットで制御 |
| 自動化 | 推奨 | トイル削減として体系化 |
| 障害対応 | 協力して対応 | ポストモーテム文化 |
なぜ 100% の可用性を目指さないのか
99.9% vs 99.99% の現実
| 可用性 | 年間ダウンタイム | 月間ダウンタイム | コスト |
|---|---|---|---|
| 99% | 3日15時間36分 | 7時間12分 | 低 |
| 99.9% | 8時間46分 | 43分12秒 | 中 |
| 99.99% | 52分34秒 | 4分19秒 | 高 |
| 99.999% | 5分15秒 | 26秒 | 非常に高 |
| 100% | 0 | 0 | 無限大 |
可用性を1ナイン上げるごとに:
├── コストは約10倍に増加
├── エンジニアリングの複雑性が急増
└── 変更の速度が低下
→ ユーザーが気づかない範囲でのダウンタイムは許容し、
その「予算」をイノベーションに使う
ユーザーの体感
ユーザーの接続環境:
├── ISP の可用性: 99.9%
├── ルーターの可用性: 99.9%
├── Wi-Fi の可用性: 99%
└── デバイスの可用性: 99.9%
→ 全体の可用性: 約 99.7%
サービスが 99.99% でも、ユーザーの実体験は約 99.7%
→ サービスだけ 100% を目指しても意味が薄い
SRE エンジニアの役割
SRE エンジニアの仕事:
50% ソフトウェアエンジニアリン グ
├── 自動化ツールの開発
├── モニタリングシステムの構築
├── インフラのコード化
└── 信頼性向上のための開発
50% 運用
├── オンコール対応
├── インシデント対応
├── キャパシティプランニング
└── ポストモーテムの実施
まとめ
| 項目 | ポイント |
|---|---|
| SREの本質 | ソフトウェアエンジニアリングで運用問題を解決 |
| DevOpsとの関係 | SREはDevOpsの具体的な実装方法の一つ |
| 100%を目指さない | 適切な信頼性目標を設定し、余力をイノベーションに |
| 基本原則 | SLI/SLO、エラーバジェット、トイル削減、ポストモーテム |
チェックリスト
- SREの定義と基本原則を説明できる
- SREとDevOpsの関係を理解した
- 100%の可用性を目指さない理由を説明できる
- SREエンジニアの役割を理解した
次のステップへ
SREの概要を理解したら、次はSLI/SLOの設計方法を学びます。サービスの信頼性を具体的な数値で定義する方法を見ていきましょう。
推定読了時間: 30分