サービスの信頼性を、手作業の運用ではなくソフトウェアエンジニアリング(測定・自動化・設計)で実現する考え方と職種。
Google で SRE チームを立ち上げた Ben Treynor Sloss は、SRE を「ソフトウェアエンジニアに運用チームの設計を任せたら起きること」と説明しています。運用を人の頑張りで支えるのではなく、コード・自動化・データで回るようにするのが SRE です。
| 考え方 | 内容 | よくある誤解 |
|---|---|---|
| 信頼性は機能の1つ | ユーザーにとって「使えない」は最大のバグ。信頼性を測り、目標を決め、改善する | 「落ちないようにする係」ではない |
| 100% を目指さない | 目標(SLO)を決め、余り(エラーバジェット)の範囲で新機能のリリースを攻める | 「とにかく止めない」は変化を止めてしまう |
| 手作業(トイル)を減らす | くり返しの手作業は自動化し、仕事時間の半分以上をエンジニアリングに使う | 運用=手順書どおりに作業すること、ではない |
| データで判断する | メトリクス・SLO・ポストモーテムで、感覚ではなく事実で決める | 「経験と勘」だけで判断しない |
面接ではこう答える
SRE は、サービスの信頼性をソフトウェアエンジニアリングで支える役割です。SLO で信頼性の目標を開発と合意し、エラーバジェットの範囲でリリースのスピードと安定性のバランスを取ります。障害対応だけでなく、監視・自動化・キャパシティ計画を通じて、サービスを安心して変更し続けられる状態を作るのが仕事だと考えています。
SREとの関わりこの職種そのもの。第2部以降の技術は、すべてこの目的のための道具です。