Kompira

Menu Menu

System operation glossary

SRE

SRE(Site Reliability Engineering)とは、Googleが提唱する信頼性の高い本番環境システムを実行するための職務、マインドセット、エンジニアリング手法のセットです。

 

旧来のシステム運用業務では、手順書にしたがって開発チームが作り上げたアプリケーションをリリースする、機器の稼働状況をモニターする、機器やOS・ミドルウェアのメンテナンスを行う、ハードウェア障害に対して復旧作業などが行われていました。アプリケーションを開発するエンジニアと運用担当のエンジニアは部門・役割が分離されているのが一般的でした。

 

開発担当のエンジニアにとっては、アプリケーションをどんどんアップデートしてリリースすることで、利用者への提供価値が向上すると考える一方で、運用担当の視点ではリリース回数が多くなるほど、問題が発生する確率が高まり、システムの安定性が脅かされると考えます。このように「システムの価値」への開発・運用の相反する視点を総合的に判断して、ユーザーの利便性と安定稼働を両立させるための活動を行うことが求められるようになりました。

 

SREでは、サイトやサービスの信頼性を向上させるための施策を行いつつ、手作業や繰り返し行われる作業(トイル)を自動化を行うことで削減したり、SLO(Service Level Objewctive: サービスレベル目標)を元にしてエラーバジェットによる適切なリリースエンジニアリングを行うなどのアプローチを行います。

 

いままでは業務アプリケーションの実行環境の構築やメンテナンスの業務ごとに複雑な手順が必要で、作業手順書を見ながらの手作業での操作が中心でしたが、近年では、インフラ構築の主流がソフトウェアによって制御可能なクラウドになってきたことで ”Infrastructure as Code” が進んでいます。インフラ構成をプログラミングコード化・自動化することで作業ミスを抑制し迅速な環境構築・維持が可能になりました。このような背景からソフトウェアエンジニアが主体となるSREのような運用設計が可能となりました。