1.はじめに
オライリー・ジャパン発行オーム社の『SRE イトリライアビリティエンジニアリング』という書籍があります。
こちらは高額かつ大変分厚い書籍です。
この記事は、私が勉強のため本の内容を簡潔にまとめたものです。
全体像を理解することに重点を置いているので、非常にざっくりとした説明になっています。
私の解釈も交えて記載しているので、もしかすると記載内容に疑問を覚える方も出てくるかもしれません。
詳細は、実際に書籍を読んであなたの目で確認してください。
読まなくても、世間話で通じる程度の知識が欲しい場合は、この記事の内容で十分だと思います。
2.書籍の概要
この本は、GoogleのSREチームの人が自分たちはこうやって開発&運用しているよ、ということを説明した内容になっています。
本書でSREチームの目的は、Webサービスを稼働させること、そして最終的にはWebサービスの健全性に責任を持つことだと定義されています。
上記だけ聞くと、なんのこっちゃとなりますので、次項目で具体的な仕事内容について説明します。
3.SREエンジニアとは
IT業界の職種として、一般の人が思い浮かべるのはシステムエンジニアという名前でしょうが、システムエンジニアにも様々な職種があることは業界内の人なら知っていると思います。
非常に大まかなくくりなのですが、システムエンジニアを「開発」と「保守・運用」という二つのチームに分けた場合、SREは「開発」と「保守・運用」にまたがって活動する第三のチームとなります。
SREは「開発」の視点を持って「保守・運用」を効率化することが役割となります。
4.SREの仕事内容
では、SREチームは具体的にどんな仕事をするのでしょうか。
GoogleのSREチームは、次のような仕事に注力しているようです。
・システム監視(モニタリング)の設計、インシデント管理
・キャパシティプランニング、リソース管理
・プロビジョニング(ロードバランサ―の設定など)
・バックアップ、リストア設計
・リリースの設計
・ユーザーID登録などの運用作業自動化
などなど……お気づきの方もおられると思いますが、上記に述べた作業は、インフラエンジニアおよび運用エンジニアが実施していた仕事が含まれます。
企業によっては単純作業をする運用エンジニアと、設計をする開発エンジニアを分けていますが、イメージ的には運用エンジニアの上位に立って開発エンジニアと一緒に運用を設計をするのがSREの仕事となります。
最近は、SREエンジニアという職種が求人票に記載されるようになってきています。
しかしSREエンジニアに必要なキャリアというのは企業によって異なる上に、インフラエンジニアと開発エンジニア、半々の割合で応募されているようです。
インフラエンジニアであれば開発部署の仕事を理解していることが求められ、開発エンジニアであればインフラエンジニアの知識が要求されます。
さらに目的は「Webサイトの安定稼働」。シンプルですが奥深いのが、SREエンジニアという職種の仕事になります。
5.印象的だったこと
書籍を読む中で印象的に感じたのは、以下の文章でした。
・100%を信頼性の目標とすることは、基本的にいかなる場合にも間違っている
完璧を目指そうとするときりがなく、システム構築に掛かる費用(コスト)も増大します。
バランスを取ることが必要ですが、エンジニアではない社員が上役の場合、なんでもかんでも完璧に直せと言って困ることがあるので、現実にはなかなか難しいことです。
本文中には、メールアラートが大量に飛び過ぎて業務が過負荷になっていたところ、思い切ってメール通知を無効化したら調査する余裕ができたというような事例もありました。
権限があるなら是非とも周囲を説得して、無駄なメール通知を減らしたいものです。
・トイルは50%以下に抑える→SREは運用チームではない(少量の作業を楽しめるのであればトイルも悪ではない。問題は、運用ばかりでクリエイティブな改善ができないこと)
プログラミングが得意なエンジニアであれば、どんな作業も自動化してしかるべきだと考える方もいますが、四六時中設計しているのも疲れるものです。
私は単純作業も、片手間くらいならあって良いと思う人なので、Googleの人が上記のように言っているのを読んで気が楽になりました。
6.終わりに
書籍の内容を簡単に記載しましたが、いかがだったでしょうか。
あまり専門用語を使わず、平易な表現に直していますので、人によっては物足りないと思います。
私自身、このような記事を書くのは慣れていないので、甘口になっているのはご容赦ください。
また、SREの実践ができれば、具体的かつ専門的な内容で記事を書きたいと思います。
それではご拝読ありがとうございました!