kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

監視を育てよう! /「入門 監視」を読んだ

今年1月に出版された「入門 監視」を読んだ.出版前から予約をしていたけど,他に積読もあり,読み始めるのが少し遅れてしまった.評判通り素晴らしく,特に「監視」というテーマをうまく言語化している本だと感じた.目次を見るとわかる通り,「あれも監視!これも監視!」という幅の広さに気付くことができる.本書は1人で読んで終わりにするのではなく,チームで輪読会をしてディスカッションをするなど,改善に繋げるために継続的に読むと良さそう.さらに本書で学んだ内容に Dive Deep するために他の書籍も併読するべきだと思う.今回は関連する書籍も紹介しようと思う.

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

目次と正誤表

  • 1章 : 監視のアンチパターン
  • 2章 : 監視のデザインパターン
  • 3章 : アラート、オンコール、インシデント管理
  • 4章 : 統計入門
  • 5章 : ビジネスを監視する
  • 6章 : フロントエンド監視
  • 7章 : アプリケーション監視
  • 8章 : サーバ監視
  • 9章 : ネットワーク監視
  • 10章 : セキュリティ監視
  • 11章 : 監視アセスメントの実行
  • 付録A : 手順書の例:Demo App
  • 付録B : 可用性表
  • 付録C : 実践 監視 SaaS

正誤表は以下にある.今回「第1刷」を読んでいて誤植に気付いたけど,今から買えば直ってそう.

www.oreilly.co.jp

動いているかどうかを監視しよう

1章「監視のアンチパターン」の中で,「チェックボックス監視」に依存するのではなく「動いているかどうかを監視しよう」という内容がある.CPU Utilization など,コンポーネント個別のメトリクスを監視することも重要だし,障害になる予兆を検知できる可能性もあるけど,1番重要なのは「ユーザ影響」であり,まず「動いているかどうか」を監視するべきということを改めて認識できた.個人的に経験のあるシチュエーションとしては「営業担当(など)がサービスの障害に1番に気付く」ことで,インフラ側のアラートは出ていなかったりする.これこそ「ユーザ影響」を監視できていないのでは?と考えさせられた.

「アラート」と「オンコール」

3章「アラート、オンコール、インシデント管理」は個人的に必読だと思う内容だった.サービスを運用していると深夜にアラートが出る場面も多く,変にアドレナリンを発生させながら障害対応をしていたけど,定期的に続くと生活に支障が出る場合もあった.本書では最初にベストプラクティスが6点紹介されていて,どれも「ウッ!」と刺さる項目になっていると思う.さらに後半には「オンコールローテーション」の話題があり,チームでディスカッションをするネタになると思う.

  • アラートにメールを使うのをやめよう
  • 手順書を書こう
  • 固定の閾値を決めることだけが方法ではない
  • アラートを削除し,チューニングしよう
  • メンテナンス期間を使おう
  • まずは自動復旧を試そう

「リアルユーザ監視」と「シンセティック監視」

6章「フロントエンド監視」の中で,アプローチとして2種類「リアルユーザ監視 (RUM : Real User Monitoring)」「シンセティック監視 (Synthetic Monitoring)」があると書かれている.重要なのは「動いているかどうか」だけではなく「パフォーマンス良く動いているかどうか」という観点で,フロントエンド監視を考えさせられる内容だった.本書では「シンセティック監視」の代表例として WebPageTest が紹介されていたけど,シンプルな外形監視なら Uptime Robot もあり,僕は Uptime Robot を使ってブログを監視している.

www.webpagetest.org

uptimerobot.com

あと Navigation Timing API などは「超速本」を読むと良さそう.個人的に1番詳しく載っている書籍だと思う.

超速!  Webページ速度改善ガイド ── 使いやすさは「速さ」から始まる (WEB+DB PRESS plus)

超速! Webページ速度改善ガイド ── 使いやすさは「速さ」から始まる (WEB+DB PRESS plus)

関連書籍

監視に関連する書籍だと,2012年に出版された「Effective Monitoring and Alerting」が好きで,July Tech Festa 2017 に登壇したときにも引用した.また現在は技術講師をしているため「モニタリングは2種類あるんです!」という話をすることもある.今後は本書「入門 監視」も合わせて紹介しようと思う.

f:id:kakku22:20190315145356j:plain

Effective Monitoring and Alerting: For Web Operations (English Edition)

Effective Monitoring and Alerting: For Web Operations (English Edition)

July Tech Festa 2017 の資料は以下にある.DevOps の事例として見て頂ければと!

kakakakakku.hatenablog.com

他には,2016年に出版された「ソフトウェアエンジニアのための ITインフラ監視[実践]入門」もある.

kakakakakku.hatenablog.com

Monitoring is Dead

本書の1ページ目に「監視の定義」として「Monitoring is Dead」が紹介されている.資料も動画も公開されているけど,これは是非動画を見て欲しい.本当におもしろい.内容としては「モニタリングとはシステムやコンポーネントの振る舞いを観察するものである」という主張で,本書でも繰り返し出てきた「ユーザ視点での監視」と同じと言える.

vimeo.com

付録 C「実践 監視 SaaS」

本書を読むなら @songmu さんの「付録 C」も必読と言える.Mackerel を代表例として「監視 SaaS」をどのように選定するか?など,詳しくまとまっている.「ハッカビリティを備えているか」という観点も良い.特に後半にある「監視を育てる」という話が好きで,過去に @songmu さんが発表した「運用・監視もコード化する。開発者が監視まで考える方法論」の中にある「監視とはシステムに対する高速健康診断である」という名言を思い出した.当時僕はこの名言に刺激を受けた.

songmu.github.io

まとめ

  • 「入門 監視」を読んだ
  • 「監視」というテーマをうまく言語化している
  • チームで輪読会をしてディスカッションをするなど,改善に繋げるために読むと良さそう

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

関連記事

2016年に「監視を育てる」ために改善した内容をまとめている.実践的な事例として見て頂ければと!

kakakakakku.hatenablog.com

ajitofm で「入門 監視」の出版秘話を聞ける.「テスト駆動開発」の文脈を知らない人だと「付録 C」「フロクシー」に聞こえてそうw

ajito.fm

Mackerel アンバサダー

「監視」繋がりだと,実は今年2月に「Mackerel アンバサダー」にノミネートして頂いた!

mackerel.io

2ヶ月に1回を目標に Mackerel 関連の記事を書きながら貢献していく予定.Trello にもタスクを作ってある.よーし!監視を育てるぞ!

f:id:kakku22:20190315151549p:plain