【えすあーるいー】

SRE とは?

最終更新:
💡 運用をソフトウェアの力で回す信頼性エンジニアリング

Site Reliability Engineering。Googleで生まれた、ソフトウェアエンジニアリングの手法でサービスの信頼性を高める運用のやり方、またはその職種。SLO・エラーバジェット・トイル削減が代表的な考え方。

📌 このページのポイント
SREの基本概念 SLI(指標) サービスの品質を 数値で測る指標 例: 稼働率 SLO(目標) SLIに対する 目標値を設定 例: 99.9% エラーバジェット 許容される障害の 量(余裕枠) 例: 30日で約43分 具体例 SLI=稼働率 → SLO=99.9% → エラーバジェット=30日で約43分(0.1%分の停止) バジェット残あり 残り75% → 新機能リリースOK バジェットを使い切りそう 残り5% → リリースを止めて信頼性改善を優先
SREはSLI・SLO・エラーバジェットで信頼性を定量管理し、開発速度と安定性のバランスをとる
ひよこ ひよこ
SREって運用エンジニアと何が違うの?
ペンギン先生 ペンギン先生
SREは、運用の仕事をソフトウェアエンジニアリングで解決しようとするのが特徴だよ。手作業の繰り返し(トイル)を自動化して減らし、空いた時間で信頼性を上げる仕組みを作るんだ。Googleでは運用作業を各SREの時間の50%未満に抑えるようにしているよ
ひよこ ひよこ
SLIとかSLOとか略語が多くてよくわからない…
ペンギン先生 ペンギン先生
SLI(Service Level Indicator)は「何を測るか」で、例えばリクエストの成功率や応答時間。SLO(Service Level Objective)はその目標値で、例えば「成功率99.9%以上」。SLA(Service Level Agreement)は顧客との契約で、守れないと返金などが決まっているものだよ
ひよこ ひよこ
ペンギン先生 ペンギン先生
SLOとの差の分だけ「失敗してもいい量」があると考えるものだよ。SLOが99.9%なら0.1%が予算。予算が残っていれば新機能のリリースなどリスクのある変更を進められて、使い切ったらリリースを一時止めて信頼性の改善を優先する、という判断に使うんだ
ひよこ ひよこ
なんで100%を目指さないの?
ペンギン先生 ペンギン先生
Googleは、信頼性を一段上げるコストは直線的に増えず、前の段階の100倍かかることもあると説明しているよ。それにユーザーが使う回線や端末のほうが信頼性が低ければ、99.99%と99.999%の違いは体感できない。だから利用者に必要十分な目標を決めて、残りの力を開発に回すんだ
ひよこ ひよこ
SREチームを作るにはGoogleみたいな大企業じゃないとダメ?
ペンギン先生 ペンギン先生
専任のSREチームを置く形は、ある程度の規模がないと合わないこともあるよ。でもSLOを決めてエラーバジェットで判断する、手作業を自動化する、といった考え方は小さなチームでも取り入れられる。SREを開発チームに入れて一緒に働く形も紹介されているんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
SREって出てきたら「ソフトウェアエンジニアリングの手法でシステムの信頼性を高めるやり方・職種」と思えればだいたいOK!
📖 おまけ:英語の意味
「Site Reliability Engineering」 = サイト信頼性エンジニアリング
💬 2003年にGoogleのBenjamin Treynor Slossが始めたよ。「ソフトウェアエンジニアに運用チームを設計してもらったら生まれるもの」と説明されているんだ

参考資料

← 用語集にもどる