SREとは?
SREとは?
SRE(Site Reliability Engineering、サイト信頼性エンジニアリング)は、IT運用に対するソフトウェアエンジニアリングのアプローチである。SREはソフトウェアをツールとして活用し、システムを管理し、問題を解決し、運用タスクを自動化する。
SREは、拡張性があり信頼性の高いソフトウェアシステムを作成する際に有用な方法である。コードによって大規模にシステムを管理できるため、数千台から数十万台に及ぶマシンを管理するシステム管理者に、より高い拡張性と持続可能性を提供する。
この概念は、Googleのエンジニアリングチームに所属していたGen Treynor Slossによって生み出された。
SREを使用するメリット
新機能を適切なタイミングでリリースし、ユーザーがその機能を安定的に利用できるようにする。
SREエンジニアの役割
SREは、追加の運用経験を持つソフトウェア開発者、ソフトウェア開発技術を持つシステム管理者、またはIT運用担当者といった経歴が求められる独特な役割である。
SREチームは、コードのデプロイ、設定、モニタリング方法だけでなく、本番環境におけるサービス可用性、レイテンシー、変更管理、緊急対応、容量管理も担当する。
新しくリリースする機能と、サービスレベル契約(SLA)を利用して、サービスレベル指標(SLI)およびサービスレベル目標(SLO)を通じて、システムの信頼性要件を定義すべきタイミングを判断できる。
SREでは100%の信頼性を期待せず、障害に備えた計画を用意する。
DevOpsとの違い
DevOpsは、迅速で高品質なサービス提供を通じてビジネス価値と対応力を向上させるための、企業文化、自動化、プラットフォーム設計に対するアプローチである。
SREはDevOpsの実装と見なすことができる。
| SRE | DevOps | |
|---|---|---|
| 主な関心 | 拡張性、運用指標、自動化 | 開発とデプロイプロセスの統合 |
| 担当者 | 運用に関心のある開発チーム | 開発に関心のある運用チーム |
| 測定指標 | サービスレベル目標(SLO)の最大値・最小値 | 主にシステムTelemetry |
| 適用企業 | クラウドネイティブ環境のITサービス企業 | オンプレミスからクラウドへ移行する企業 |