【えすあーるいー】

SRE とは?

💡 「運用をコードで解決する」Googleが生んだ信頼性エンジニアリング
📌 このページのポイント
SREの基本概念 SLI(指標) サービスの品質を 数値で測る指標 例: 稼働率 SLO(目標) SLIに対する 目標値を設定 例: 99.9% エラーバジェット 許容される障害の 量(余裕枠) 例: 月43分まで 具体例 SLI=稼働率 → SLO=99.9% → エラーバジェット=月43分(0.1%分のダウン許容) バジェット残あり 75% → 新機能リリースOK バジェット消費済み 5% → 変更凍結・信頼性改善に集中
SREはSLI・SLO・エラーバジェットで信頼性を定量管理し、開発速度と安定性のバランスをとる
ひよこ ひよこ

SREって運用エンジニアと何が違うの?

ペンギン先生 ペンギン先生

従来の運用エンジニアは手作業で監視・対応・メンテナンスをしていた。SREはソフトウェアエンジニアリングのスキルを使って運用業務を自動化する。繰り返しの手作業(トイル)を減らして、信頼性向上のためのシステム開発に時間を使う発想だよ。

ひよこ ひよこ

SLIとかSLOとか略語が多くてよくわからない…

ペンギン先生 ペンギン先生

SLI(Service Level Indicator)は「何を測るか」で、例えばリクエストの成功率やレスポンスタイムSLO(Service Level Objective)は「どこまで許容するか」の目標値で、例えば「成功率99.9%以上」。SLAService Level Agreement)は顧客との契約上の約束。SLISLOSLAの順に外向きになっていくイメージ。

ひよこ ひよこ
ペンギン先生 ペンギン先生

「許容される障害量」のこと。SLOが99.9%なら、0.1%分は壊れてもいい。この0.1%がエラーバジェット。バジェットが残っていれば新機能リリースなどリスクのある変更ができる。使い切ったら信頼性回復を優先する。これで開発速度と安定性のバランスを数値で判断できる。

ひよこ ひよこ

なんで100%を目指さないの?

ペンギン先生 ペンギン先生

99.9%→99.99%にするコストは10倍以上かかることもある。しかもユーザーのネットワークやデバイスの信頼性がそれ以下なら、サーバー側だけ100%にしても意味がない。「ユーザー体験に必要十分な信頼性」を目標にして、残りのリソースを新機能開発に回す方が合理的、という考え方だね。

ひよこ ひよこ

トイルって具体的にどんな作業?

ペンギン先生 ペンギン先生

手動で繰り返す運用作業のこと。例えば手動でのサーバー再起動アカウント作成、ログの目視確認、定型的なデプロイ作業など。Googleでは「SREの業務時間の50%以上をトイルに費やしてはいけない」というルールがある。残りの時間はトイルを自動化するコードを書くことに使う。

ひよこ ひよこ

SREチームを作るにはGoogleみたいな大企業じゃないとダメ?

ペンギン先生 ペンギン先生

そんなことはない。SREの考え方は規模に関係なく使える。小さなチームでも「SLOを決めてエラーバジェットで判断する」「手作業を自動化する」は実践できる。専任のSREチームを持てなくても、開発チームがSREの原則を取り入れる「Embedded SRE」というアプローチもある。大事なのは役職名ではなく信頼性をエンジニアリングで解決する文化だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
SREって出てきたら「ソフトウェアエンジニアリングの手法でシステムの信頼性を高める職種・アプローチ」と思えばだいたいOK!
📖 おまけ:英語の意味
「Site Reliability Engineering」 = サイト信頼性エンジニアリング
💬 2003年頃にGoogleのBen Treynorが「運用チームにソフトウェアエンジニアを配置したらどうなるか」という発想で始めた
← 用語集にもどる