progrhyme's tech blog

主にIT関連の技術メモ

『サイトリライアビリティエンジニアリング』を通読した

8月に邦訳本が発行されたGoogleの『SRE サイトリライアビリティエンジニアリング』を通読しました。

…といっても、今のところいくつかの章はスキップしてしまっているのですが、凡その全容は掴めたかな、というところです。

10月の終わり頃から読み始めましたが、すごく分厚くて(500p超)読むのに時間が掛かりました。
各章は10〜20ページぐらいの記事のような形になっているので、空き時間に章単位で読み進めていくとよさそうです。

全体的な感想

前職でサーバインフラに関わる仕事をしていたこともあり、わかりみの深い話が多かったです。
うんうんと頷くこともあれば、Googleのシステムに感動したり、目から鱗が落ちることも度々ありました。

本書は、サイトの信頼性を維持し、かつ、サービスの変更の速度を落とさないためにGoogleが実践している様々な取り組みや、Googleのシステム/アーキテクチャを解説しています。
技術的な内容はGoogleのシステム・インフラを前提としているものの、大規模システムに留まらない有益な示唆に富んでいると思います。

そういった技術的な各論も非常に面白いのですが、よりメタな概念として、本書から得られる学びの中で、以下の3つはキーポイントだと云えるでしょう:

  • SLOを定めること(3, 4章)
  • トイルの撲滅(5章)
  • ポストモーテムを書くこと(15章)

SLOについて

SLOについては、「クライアントのバックエンドサービスに対する過剰な信頼と依存を避けるために、わざとバックエンドサービスを計画的に停止している」(4章のコラム「Chubbyのグローバルな計画的サービスの停止」を参照)というのは、衝撃的な内容でした。
話としては理解できたものの、プロダクション環境で動いているバックエンドサービスを、そういう目的でわざと止めることが自分にできるかは未知数です。

ポストモーテムについて

この語は私にとって初見でした。
本書においては、「インシデント(なんらかのトラブルやサービス障害)の経緯を記録し、振り返りやその後の改善施策、教訓とともにまとめるドキュメント」と云えましょうか。
付録Dにポストモーテムの例も載っています。

15章では、Google内でのポストモーテムに対する考え方や、ポストモーテムを活用するいくつかの取り組みが紹介されています。
ポストモーテムを広い範囲に共有し、誰もがそこから学べるようにするというやり方は素晴らしいなと思いました。

むすびに

本書の中では、「こんな風にできたらいいな」と理想論に感じるような内容も無いではなかったです。
とはいえ、すぐにできることもありそうだし、目標を定める上でのベンチマークとして参考にすることもできそうだと思いました。

例えば、「SLOを定めましょう」「SLOを達成できているか計測しましょう」「これはトイルなので、工数削減のために機械化します」「障害をチケットに書いて後で振り返れるようにしましょう」とかは、当たり前のこととしてやっていけばいいなと思いました。

冒頭に書いたように、まだいくつか未読の章があるので、そちらも追って読んでしまおうと思います。