一覧に戻る
Lv.2

SRE(サイト信頼性エンジニアリング)

Site Reliability Engineering

システムの運用や保守をプログラムで自動化し、サービスの信頼性を高める手法。

簡単に説明すると

SREっていうのは、Webサービスやアプリがトラブルなく動き続けられるように、システムの管理や点検をプログラムで自動化する仕組みのことなんだ。 これまでは人が手作業で行っていたサーバーの監視や復旧作業などを、プログラムを組んで自動で処理できるようにするよ。 世界中で使われている大手のSNSや動画配信サービスなど、アクセスが集中しやすい大規模なシステムを維持するために取り入れられているよ。

名前のヒミツ

SRE(エスアールイー)は、英語のSite(サイト)、Reliability(信頼性)、Engineering(エンジニアリング)を組み合わせた言葉なんだ。 ITインフラの運用管理をソフトウェアの開発と同じようにプログラムの力で解決して、サービスの信頼性を高めようという考え方からこう呼ばれているよ。

くわしく見てみよう!

SREとは、Webサービスやシステムを安定して稼働させるために、ソフトウェア開発の技術を使ってシステム運用を効率化・自動化する具体的な仕組みや手法のことなんだ。
開発と運用の壁を取り除く「DevOps」という共通の思想を、具体的な数値目標や厳格なルールを用いて組織に実装する役割や体制だね。

SREを最も特徴づけるのが、信頼性を数値で管理する仕組みなんだ。具体的には、「SLI(サービスレベル指標)」と「SLO(サービスレベル目標)」を用いてサービスの安定性を測定するよ。
さらに、目標から逆算して許容できる不具合の猶予を「エラーバジェット(エラーの予算)」として定義するんだ。このバジェットが残っていれば新機能のリリースを優先し、バジェットを使い果たすとリリースを止めてシステムの復旧や安定化に専念する、という客観的な判断ルールを設けているよ。

また、SREには「トイル(toil)」と呼ばれる手作業の定型業務を業務全体の50%以下に抑えるという目標が掲げられているんだ。残りの50%以上の時間を、自動化のためのプログラム開発など、システムの信頼性を向上させるための創造的な仕事にあてることを目指しているよ。
このように、感覚に頼るのではなく、データと具体的なルールに基づいて運用を仕組み化していくアプローチがSREなんだね。