このページの本文へ

FIXER Tech Blog - Learning

“SRE本”まずは106ページまで読んでみよう(まだ読んでいる途中だけどまとめてみる)

2024年05月16日 10時00分更新

文● なむゆ/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「まずは 106 ページまで読んでみよう まだ読んでいる途中だけど SRE 本についてまとめてみる」を再編集したものです。

ハイライト

 SRE本は分厚く見えますが「SREとは何か」については 106 ページまでにまとまっているのでまずは 106 ページまで読んでみるといいですよ!

はじめに

 「SREサイトリライアビリティエンジニアリング Google の信頼性を支えるエンジニアリングチーム」は、全550ページにもわたってサイトリライアビリティエンジニアリング(以下、SRE)というエンジニアリング手法とは何か、どのように行うのかについて書かれた本です。

 通称「SRE本」とも呼ばれており、SREというものについて知るための最初の一冊なのですが、何と言っても分厚いです。

 自分でも気になって読み始めて、私物としても買って読み進めているのですが読み切るのにはかなり時間がかかりそうです。

 ただ、全体でⅤ部まであるうちの第Ⅱ部まで読み終わり、ここがキリがよさそうに見えたので今の段階で一度、この本がどのようなことが書いてあって、どのように読むのがよさそうかについて現状の自分なりにまとめられればと思います。

「なぜ全部読み切る前から書評を書くの?」というのはあるのですが、理由としては二つあります。

・職場に最近この本がやってきて、周りのメンバーが興味を持っていそうなので。できれば一度読んでほしいので。鉄は熱いうちに打つ意味で
・おもに自分のため、現状での自分の認識を整理する意味で。この先読み進めて印象が変わればそれはそれで書籍を読んで成長したということです

 ということで、この記事の第一目的は職場の同じ部屋にいる周りのメンバーがSRE本を手にして読み始め、何かを得るところまで読み進めさせることになります。そうなるといいな。

 他にも、これからSRE本を読もうと考えている人にとって実際に読み始めるきっかけになったり、すでに読んでいる方にとってこの本が読みやすくなったりすると幸いです。

全容

 この本は全体で5部構成になっています。その中に各章があります。

 それぞれの部で書かれていることをざっくり紹介します。

第Ⅰ部 イントロダクション(1~24ページ)

 SREとは何か、どのようなことをするのかについて、それが生まれた当時のGoogleの背景を交えながら説明しています。

 ソフトウェアエンジニアの背景を持ったエンジニアで運用を行うことでソフトウェアエンジニアリングのアプローチで運用を考えること、それを通してサイトの信頼性を上げていくことがSREであるというのが結論になるかと思います。

第Ⅱ部 原則(25~106ページ)

 SREの仕事の原則について説明しています。

 ここで言う原則とは、SREではどのような要素に関心を持つか、どのように仕事を進めるかに関する諸々のトピックになります。

 そのため、この書籍を「サイトリライアビリティエンジニアがどのような仕事をするのかについて知りたい」というモチベーションで読むなら一番重点的に読むべきかと考えています。

 自分が読んでいるのは現状ここまでです。

第Ⅲ部 実践(107~408ページ)

 この章はSREで扱うトピックについて細かく、各論を述べています。

 全体で300ページもありますが、ひとつひとつのトピックの粒度が細かいのでここではディテールを詰めていくために読むことになりそうです。

第Ⅳ部 管理(409~478ページ)

 この章では、実際にSREチームを運用していくときの方法論について書かれています。

 新人SREがやってきたときにどのように学習経験を積ませて一人前のSREに成長させるかが主なトピックになります。

 逆に、自分が新人SREであったときにどのように業務を学んでいくべきかについて書かれていると見ることもできます。

第Ⅴ部 まとめ(479~496ページ)

 本当にその通りで、まとめの一言(一言ではない)が書かれています。

まずは106ページまで読んでみよう

 この書籍は全体で550ページもあります、一息では読み切れないのもごもっともです。

 ただ、この書籍を読む最初の一番の目的は「SREとは何か」であるかと思います。

 その場合は、最初の106ページまで読むと大体ほしいものが見つかるかと思うので、まずはそこまで読んでみるのがおすすめです。

 というのも、全容で書いた通り、第Ⅱ部ではSREの仕事の原則について説明しています。

 ここを読めば、SREの基本的な考え方やそのための概念を理解することができます。

 SREの話題でよく言われるトイルとは何か、SLI、SLO、SLAとは何か、エラーバジェットとは何か、エラーバジェットを使ってどのように仕事をするのかがわかります。

 そしてそれらのためにどのように監視や自動化を進めていくのか、アプリはどのようにリリースするのかの具体的な方針が書かれています。

 その前の第Ⅰ部ではSREとは何かの概要がつかめるので、第Ⅰ部と第Ⅱ部まででSREについての概要と基本的な考え方が身に付けられてしまいます。

 逆に、第Ⅲ部は 300ページもあるものの中身としてはアラートや障害対応、ロードバランシングといった各論に入っていくのであとで時間を作って読むか、最低限気になったトピックだけ拾い読みする読み方でも良さそうです。

 ということで、SRE本を読むならまずは最初の106ページまでをそれなりに集中して読んで、それから他の部を読むのがSREとは何かについて知る上では良さそうです。

次に読むなら?

 第Ⅳ部が良さそうです。

 というのも、第Ⅳ部ではSREの主に育成方法が解説されているのですが、逆に見ると自分がSREらしいスキルを身に付けたいときにどのように動くべきか、学ぶべきかが書かれているともいえるためです。

 第Ⅰ部、第Ⅱ部と読んできてSREというエンジニアリング手法に興味が出てきたら次はそれを身に着けるための方法が知りたくなるかと思います。

・プロジェクトの目的を理解しながら作業を行う  
・ポストモーテムを読む/書く  
・他のメンバーが行っている障害対応を横で見る(シャドウイングする)

 など、目次を見ただけでもやるべきことが見つかりそうです。

 自分も、次に読むならここかなと考えています。

「SREとは?」今答えるなら

 今の理解を試すため、あとでもっとSREについて知ったあとで読み返して恥ずかしくなるために今のSREについての理解を書いておきます。

 サイトリライアビリティエンジニアリングとは、文字通りサイトの信頼性を高めることを目的としたエンジニアリング手法です。

 業務としては主にインフラの運用ですが、ここにソフトウェアエンジニアリングのアプローチを組み込むことでより良い運用を目指します。

 例えば、サイトの許容できるレベルの信頼性についてSLOをプロダクトオーナーと合意し、それを満たすことを目標にインフラを運用します。

 SREチーム内では許容できるSLOと現状の余裕分をエラーバジェットとして管理し、SLOを下回らないように(国内では「SLOを割る」という言い方もあるようです)プロダクト開発チームと折り合いをつけながらサイトの信頼性とプロダクト開発のスピードを両立します。

 運用における繰り返しの仕事、オーバーヘッドをトイルと呼び、これについてはできる限りうまく自動化したり仕組みを改善(エンジニアリング)することで減らそうとします。

 まとめると、特に運用をエンジニアリングで改善するという考え方をすることがソフトウェアエンジニアリングのアプローチをとるということで、サイトリライアビリティエンジニアリングそれがなのかな… と今は考えています。

 そうするとサイトリライアビリティエンジニアリングという文字通りの意味「サイトの信頼性」からは少し離れている気もするのですが、そこは「はじめに」で著者も認めているとおり、その内容をはっきりと表現出来ていないということなのかなと思います。

 最初に名前を付けた時と実際に運用していく中で振る舞いやコアにあるものが変わってくることはよくあることなので、これもそういうものなのかな…… という理解です。

おわりに

 今回の記事では「SRE サイトリライアビリティエンジニアリング」という書籍について、途中まで読んだ状態で内容をまとめてどのように読むと読みやすいかを考えて説明してみました。

 全体ではかなり分厚い書籍ですが、まずは特に最初の106ページを読もうと考えて読むとそれなりにハードルが下がるかと思うのでおすすめです。

 周りのメンバーや他の人がこの書籍から何かを得る助けになっていると幸いです。また、自分でも 第Ⅲ部から先も引き続き読み進めるつもりです。

 全体を読んでから何か考えが変わったりしたらまたブログを書くと思います~

参考
SRE サイトリライアビリティエンジニアリング Google の信頼性を支えるエンジニアリングチーム

なむゆ/FIXER
Kubestronautになりました。
たぶん社内Kubernetes最強タイです。

カテゴリートップへ

この連載の記事