“SRE-サイトリライアビリティエンジニアリング- Googleの信頼性を支えるエンジニアリングチーム” を読んだ

Keiji Matsuzaki
5 min readFeb 4, 2018

--

良さそうな本である、というのを他の書評を見て気になったので会社に買ってもらった。読んでみて、SREではなくても職業プログラマであれば読むべきであるよな、という感想。

チーム・設計・運用の点を実体験を交えて書かれた本

SRE本にかかれている内容は、チーム・設計・運用の面で、GoogleのSREチームが経験した内容が元になっている。

  • Googleのプロダクション環境
  • リスク管理
  • サービスレベル目標
  • トイルの撲滅
  • エンジニアの過負荷
  • データセンターやマシン管理の話
  • データ処理
  • プロダクトローンチの工夫
  • コミュニケーション
  • 他業界の取り組み

トイルの撲滅

  • 雑務をどれだけ定常的なものを減らせるか、という内容で、とても興味を引いた。
  • エンジニアが毎日の、繰り返しでつまらない作業はモチベーションが下がるし良くないというものだ。
  • 運用にまつわる障害や、突発的な割込みに備えた予測・時間配分、見積もりを心がけたい。

自動化

  • SRE本の例で挙げられていたのはDNS障害。
  • 定常的なメンテ確認などは自動化が容易い。
  • 手作業と自動化の作業分離をうまく行わないと障害に繋がる
  • 例として行き過ぎた自動化による障害の発生がコラムに書かれていた。

オンコール対応

  • 障害発生時や、アラート対応時に実際にエンジニアが対応する件。よくある話。
  • 労働時間外での事象の発生に対して、ケアができなければ問題であるという話が出ている。そりゃそうだ。
  • ストレスがかぶらないように、そういった作業が発生することを予測できるよう、50%は割込みとして見積もりを予めしておくことが必要。

トラブルシューティング

  • 運用では問題が発生するのは避けられないが、ポストモーテム(死後解剖の訳らしいが)が必要
  • 何が問題で、原因となり、どのような対応を行いどのように解決したか。
  • ポストモーテムを残すことで、個人への糾弾はしなくなり、チームや、組織の知見として溜め込んでいける仕組みを構築できる
  • ポストモーテムに関連する話は、SRE本で量を多めに解説、記述されている。

過負荷や、カスケード障害への対応

  • 負荷が高まっている状態の時に、何かしらインスタンス・LBが負荷によりサービス提供ができなくなると、対応できなくなった負荷が残りのインスタンスやLBにかかるようになり、連鎖的な障害が発生する
  • カスケード障害はうっかりで発生することが多いようだ。甘い見積もりや、テストでのクエリ送信量の変更で許容量以上の負荷を与えてしまう、など。
  • アプリケーションから見えてくる処理では、なかなか負荷への視野は広がらず、運用しなければ気が付かなかったり、予見できなかったり、警戒できないことも出るだろう。が、それだと製品の安定したリリースが行えない
  • アプリケーションはWebになってから、更新は無条件になり、日付に縛られなくなったが、代わりに変更が大量にはいることによる障害がでやすくなった。この点についていきなりの過負荷発生や、カスケード障害に対応するためオンコール対応が必要になるのか、と考えた…

大規模なシステムのデータ運用・プロダクトローンチ

  • 分散cronについて、という点が印象的だった。たしかにサーバによってcronの起動がことなるが、システム間は連携しているしていることがあるよなーと思った。他のところはどのように運用しているんだろ
  • GoogleではPaxosを利用しているとのことだ。
  • https://qiita.com/kumagi/items/535c9b7a761d2ed52bc0
  • Google Workflowとのことで図を介して紹介が行われていたが、データ処理についてタスクマスターという中央サーバにデータを中継して別サービス同士をつなぐ設計をしているようだ
  • データ完全性に章をけっこう割いている。論理削除や、リビジョン管理、バックアップやリカバリーについて記述されている。
  • データロスト時どのようにデータをロールバックし、安全な状態に戻すか?の実体験がかかれていた。Google Musicの件や、Gmailの件。
  • プロダクトローンチについてローンチ前のチェックリスト管理や、キャパシティプランニングの管理、開発プロセス、外部サービス依存など、ローンチに関して必要なことはこれだよね、という点がまとまっていた。

コミュニケーション

  • SREの教育についてページが割かれている。
  • いきなりアサインされた人間は事業ドメインや作業について知覚できていない
  • いきなり放り出されても当人が困るだけなので教育しよう
  • 書かれていることが属人的なことを排除した教育内容になっていてとても良い
  • 見習いたい。scrapboxに知見を貯めるように今個人的にしているが、もっと推し進めていきたい。

GoogleのSREって

総合的に色々やっててやばい。もっともっと、彼らの仕事について知りたい。

--

--