最終更新日:
SREとは、システムの信頼性を保つ運用の仕事を、ソフトウェアの開発の手法で仕組み化して進める考え方と、その役割です。
SRE は、Google が始めた、運用をソフトウェアの開発の手法で行う考え方です。Google の SRE の書籍は、SRE を「ソフトウェアのエンジニアに運用のチームを設計させたときに生まれるもの」と説明しています。手作業で繰り返している運用を、プログラムで自動化していくことが中心にあります。
よく知られた考え方に「エラーバジェット」があります。サービスの稼働率の目標(SLO)を決め、100%から目標を引いた分を、障害や停止を受け入れてよい「予算」とみなします。予算が残っていれば新しい機能を積極的に出し、使い切りそうなら変更を控えて信頼性の改善に力を回す、というように、開発の速さと安定の釣り合いを数字で決めます。また、Google は、SRE の時間のうち、チケットの処理や当番などの運用の作業を半分までに抑え、残りを改善の開発に充てるとしています。
SRE の専任のチームを置けるのは、規模の大きい会社に限られます。それでも、SLO を決める、人に知らせるアラートを行動が要るものに絞る、障害の後に個人を責めずに振り返る、手作業を減らす、といった考え方は、小さな体制でも取り入れられます。
関連する用語
- SLO(サービスレベル目標)システムやサービスが保つことを目指す水準を、稼働率や応答時間などの数値で決めた目標です。
- 可用性・SLAシステムが止まらずに使える度合いと、その水準を提供者と利用者の間で取り決めたものです。
- 監視システムが正常に動いているかを継続して確かめ、異常があれば知らせる仕組みと運用です。
- オブザーバビリティ(可観測性)システムが出すメトリクス・ログ・トレースなどのデータから、外側にいながら、システムの中で何が起きているかを調べられる状態にしておくことです。
- オンコール営業時間外にシステムの障害のアラートが出たときに、すぐ対応できるよう、担当者を決めて連絡を受けられる状態で待機しておく体制です。