まだ第二部(約100頁)しか読めてないのでのちほど追記・まとめ予定。
どんな本?
- googleの運用チームにおけるいろんなベストプラクティスを束ねた本
- 小論文を束ねたような形式で、ひとりの著者により一貫して書かれた本ではない
印象に残ったフレーズ
- 『GoogleではすべてのSREに対して、チケット・オンコール・手作業といった運用業務の合計を50%にするよう上限を設けました』
- 残りの時間はサービス運用のための開発に充てるらしい
- 「開発/運用の分断による機能不全を回避」
- 運用業務にかけた時間を測定している
- 『DevOps? それともSRE?』
- この本ではDevOpsを「SREの中核的な方針のいくつかを幅広い組織・管理の構造・個人に対して一般化したもの」として捉えることもできると述べている。
- 『サービスの可用性が99.99%ということは、0.01%は利用できないということです。仕様できないことが許容されるこの0.01%が、このプロダクトのエラーバジェットです。このバジェットは超過しない限り、必要に応じて何にでも使うことができます』
- 『エラーバジェットは、SREとプロダクト開発者との間でインセンティブを一致させると共に、共同所有ということを強調します。エラーバジェットによって、リリースの頻度を判断することや、サービス障害に関するステークホルダとの議論を効果的に落ち着かせる』
- 不稼働率を『使う』というポジティブな言い方に変えているのが面白い。
- これによって開発に伴う「新しいサービス提供に伴う不稼働率」と運用に伴う「故障等による不稼働率」を同じ土俵に上げて論じている。
- 『モニタリングにおいては、アラートの領域のどの部分をとっても人間の解釈が必要であってはならない』
- 思想は理解するけど難しそうだなあ
- モニタリング出力を「アラート(すぐ対応)」「チケット(あとで対応)」「ロギング(ログるだけ)」の3段階に仕分けて出力するという思想はよさそう
- 『SREは、およそ70%のサービス障害は、動作中のシステム変更によって生じていることを発見しました』
- 定量的に分かっているの素晴らしい。7割かー
- 『キャパシティは可用性にとってきわめて重要なので、SREチームがキャパシティプランニングを受け持つことは自然なことです』
- 可用性が主でキャパシティが従という考えが面白い。
- 『可用性に関する限り、Googleでは通常、時間を基にしたメトリクスは意味を持ちません。(中略)代わりに、私たちはリクエスト成功率という観点から可用性を定義しています。』
- 可用性といえば時間という思い込みがあったけどそりゃあ場合によって違うか。
- 『私たちは概して、値の集合の平均よりも、パーセンタイルを優先的に扱います。そうすることで、データポイントのロングテイルの部分を考慮できるようになります。この部分は(中略)特徴を持っていることが多いのです。』
- 中央値と平均値ぐらいが一般的かと思っていたけど、パーセンタイルもなかなか一般的なのね。
- 『私たちは、閾値を学習したり、自動的に因果関係を検出したりするような「魔法の」システムは避けています。』
- 『こういった自動化のステップはすべて価値あるもの(中略)ですが、理想の世界では、外部に自動化の仕組みをもつ必要すらないでしょう、実際のところ、(中略)グルーとなるロジックをまったく持つ必要がないシステムのほうがいいのです。(中略)そうするためには、グルーとなるロジックのユースケースを挙げて、直接アプリケーション内で処理する方法を見つけ出す必要があります。』
- 『すなわち、システムが手動、自動、自律という階段を上がっていくについれて、自己検査のための能力がなければ生き残れないのです。』