Imperfection

てっくぶろぐ

【初学者必読!】O’REILLYの『入門 監視』を読んでみた

これまで当たり前のようにメトリクス!ログ!ヘルスチェック!と監視に関連する単語を使ってきたが、もしどこかで「監視ってなんですか?何のためにやるんですか?」と聞かれた際に、回答はできるだろうけど、どこかモヤっとした不安感があるなぁ、、と思ったのがきっかけでこそこそと勉強することに。 ただそれだけだったら勉強するには至らなかったが、Kubernetesとかマイクロサービスとかを扱っていると、監視というのは非常に重要なキーワードとなる。 ここでは自分と同じような人も含め、下記のような人は特に一読をお勧めしたい。

  • 「監視」をこれからやるので地盤となる基礎を固めておきたい初学者
  • 「監視」やってきたけど基礎が不安、、一応さらっと復習したい中級者
  • クラウドネイティブな監視ってこれまでとどう違うの?中級者亜種

今日ご紹介する本

この本を購入したのだが、翌週にはO’REILLYサブスクリプションサービスに登録したので後々後悔することに....

読んだ中でためになった部分の抜粋と感想

構成管理ツール、データベースの管理方法に詳しいのがプロジェクトで1人だけ、ということがないのと同様に監視を役割として特定の人に与えるのはアンチパターン。 監視は役割ではなくスキルであり、チーム内のメンバーが一定の知識を持っている必要がある。

自分も含め、身の回りでも監視について考えるのは決まって一部のインフラ・アプリ開発者でその他の人は設計がどうなっているか、仕組みがどうなっているかすら興味を持たないことが多かった。 「監視は役割ではなくスキル」という言葉があるように、Kubernetesの台頭によって監視にまつわるエコシステムも活発にコードラインが伸びていて、(サービスメッシュの代表的なOSSであるIstioは3か月に1度のアップデートが行われている。)テクノロジによって多くの課題が解決できるようになった事に対して、導入や管理に一定以上の技術的な難度も加わったのも確実にあると感じる。 そんな中でIstioやPrometheus等の技術スタックを使って監視を実現できるというのはどうみてもスキルとして認識されていいはず。

監視とは複雑な問題であり、たった一つのツールで解決できるような問題ではない。プロのメカニックが工具箱を持ち歩くのと同じように汎用的・もしくは専門的なツールが必要になる

たった一つで解決できるような万能的なツールは存在しないからこそ、我々は専門的なツールを組み合わせて「組み合わせ可能な監視基盤」を作る。 メトリクス収集はPrometheus、サービスメッシュはIstioでやってみるか、ダッシュボードはGrafanaで一本化したいな。とか、複数のツールを疎に結合させることでPrometheusよりもイケてるメトリクス収集ツールがあれば即チェンジ!を可能にする。 なので特定の技術スタックに依存しない、常にツール間は疎結合であるというのが、近年のクラウドネイティブな監視システムと言える。

「ユーザ視点での監視」
まず監視を追加すべきなのはユーザが一番気にするところである「アプリケーションが動いているか。」そこからWebノードやワーカノードといったコンポーネントに素早く対象を広げていきつつも、「このメトリクスはユーザへの影響をどう教えてくれるのか」と常に自問自答してみてください。

監視をいざやるとすると、特に複雑な基盤構成だとなおさら混乱して手を付ける順序を誤ったり、本来監視可能な場所を意図せず見逃す可能性が高い。 そこで本書で記載されているのが、「迷ったらまずはユーザが気にするところから作っていけ」ということ。 ユーザを発起点としてロードバランサ、Webおよびアプリケーションサーバ、DB...というように段階を踏んでいくと網羅的に組み込んでいける。

最後に

  • 監視の定義やフロントエンドからサーバサイドそれぞれでどんなことを考えるべき?を知るには持ってこいの本
  • ビジネス的な「監視とは」な内容にとどまらず、技術的にかなり細かいところまで記載されていて、技術的なところを期待して買ったもののむしろニッチすぎて読み飛ばした章もあったくらい
  • 初学者向けとは思いつつも、監視を一度現場で構築したことがある・考えてみたことがある人にはさらに深い気づきを与える本だと思うのでぜひおすすめしたい

本書の内容を簡潔にまとめているスライドがあったので共有

この本読んでおくと、これから先、どこかで監視について向き合うための正しい考え方を身に付けられそう。そんな風に感じた本でした!!!