SRE
※エンジニア人事入門
SREとは「サイト・リライアビリティ・エンジニアリング(Site Reliability Engineering)」の頭文字を取った略称で、Webサイトやサービスの信頼性向上に向けた取り組みを行い、価値の向上を進める考え方および方法論です(この取り組みを行うエンジニアそのものを指すケースもあります)。
既に取り組んでいる企業も少なくないとは思いますが、SREは、まだまだ日本では理解が進んでいない概念です。この連載では、リクルートグループにおける実例を通じて、SREの実態をお伝えできればと思っています。
SREって具体的に何をするの? 本家Googleの取り組みとは
リクルートグループの話をする前に、まずは本家GoogleにおけるSREの取り組みを紹介しようと思います。同社のエンジニア組織のトップであるベン・トレイナー(Ben Treynor)によれば、SREを端的に説明すると、運用をソフトウェアエンジニアに依頼したときに生まれる仕事を指します(参照リンク)。
運用と言うと、人間が行う手作業が多いイメージを持たれるかもしれませんが、それをソフトウェアエンジニアに依頼するのですから、運用そのものを“ソフトウェアの問題”として捉え、対処してもらうわけです。
SREを行う組織は、基本的には運用部隊が行ってきた作業全般を請け負います。ソフトウェアエンジニアであるなら、手作業を自動化するモチベーションはあると思いますし、そのスキルも備わっているはず。「たとえサービスの拡大で作業量が増えたとしても、自動化でカバーしてくれ!」というのがSREへの期待なのです。
では、SREは具体的にどういった取り組みをしているのでしょうか。本家Googleの事例を見てみると、大きく4つの活動を行っていることが分かります。
1.SRE組織と方針
Googleは、ソフトウェアエンジニアとシステムエンジニアでSREチームを編成しました。彼らは、可用性やレイテンシ、パフォーマンス、変更管理、モニタリング、緊急対応、キャパシティプランニングに責任を持っています。
組織で取り組む業務の方針として、「トイル(Toil=労苦)」と呼ばれる、自動化できるにもかかわらず、手作業で行う運用作業にかける労働時間を「全体の50%まで」と制限しています。残りの時間で、自動化を目指すコーディングやサービスレベル向上に関連するプロジェクトに対応するというわけです。
引用元 ITmedia Enterprise