みなさんこんにちは。ネコ好きなマネージドサービス部の塩野です。
最近オブザーバビリティのことに関わることが増えてきましたので、最近読んだオライリーの「オブザーバビリティ・エンジニアリング」という書籍について、運用エンジニアの視点から感想を添えつつご紹介したいと思います。
紹介した本の情報
出版社 :オライリー・ジャパン
この本は、ここ数年よく耳にするようになった「オブザーバビリティ」という概念について、基礎から実践まで幅広く解説しています。
なぜオブザーバビリティが必要なのか?
書籍のタイトルになっているオブザーバビリティという概念についてお伝えします。
皆さんはシステム障害が発生した際に原因究明に何時間も費やしたり、毎日毎日大量に飛んでくるアラートの嵐にうんざりしたりした経験はありませんか?
私も当然経験があり、障害調査にたくさんの時間を溶かしたり、日々アラートの嵐との戦いに明け暮れています。最近のシステムは昔のものと比べると機能が複雑化しており、従来のモニタリング手法ではこういった対応が難しくなっています。本書の「オブザーバビリティ・エンジニアリング」では、この問題に対する解決策として「オブザーバビリティ」を提唱しています。
オブザーバビリティってなに?
オブザーバビリティを一言で言うなら「システムの内部状態を外部からどれだけ正確に把握できるか」という能力です。もともと制御理論の分野で使われていた用語ですが、現代のシステムにおいても非常に重要な概念となっています。
従来のモニタリングは、あらかじめ設定したメトリクス(指標)を監視し、閾値を超えたらアラートを出すという受動的なアプローチでした。しかしオブザーバビリティは、システムのログ、メトリクス、トレースなどの詳細なデータを取得し、それらをあらゆる角度から分析することで未知の障害やパフォーマンス問題を積極的に発見し、迅速に問題解決することを目指します。
私たち運用エンジニアにとって、オブザーバビリティを実現することで複雑化するシステムの問題を迅速に特定し、それが運用負荷の軽減やシステムの安定稼働につながるものと信じています。オブザーバビリティは、まさにそのための強力なツールといったところでしょう。
オブザーバビリティを実現するために
本書では、オブザーバビリティを実現するための具体的な技術についても詳しく解説されています。それぞれどのようなものか見ていきましょう。
構造化イベント
オブザーバビリティの基礎となるのは、「構造化イベント」で、オブザーバビリティを実現するための基本的な構成要素です。システムのあらゆる事象を記録するためのデータ形式で、ツールなどを使って構造化イベントを分析することで事象のインサイトを得ることができます。
トレース
トレースはリクエストがシステム内をどのように処理されるかを追跡する技術です。特に分散システムにおいて問題の発生箇所を特定するために不可欠です。トレースをさらに詳細分類すると分散トレース、トレースID、スパンIDなどに分かれ、これらを使用することで、サービスやコンポーネント、リクエストの流れなどを追跡することができます。
イベント解析
オブザーバビリティデータの分析には、主に2つのアプローチがあります。
まず1つめが過去の経験や知識に基づいて、あらかじめ想定される問題を調査する方法です。従来のモニタリングはこのアプローチを採用しているため、経験に基づいた閾値を設定しその閾値を超えないことを監視します。
2つ目は事前知識に頼らずにシステムの挙動を観察しながら仮説を立てて、仮説をもとに検証していく方法です。オブザーバビリティを導入することでこのアプローチをとることができます。また、オブザーバビリティツールを使用することで、こうした仮説検証のサイクルを自動化して効率的なデバッグを支援してくれます。
まとめ
「オブザーバビリティ・エンジニアリング」の内容について、私なりの理解と感想を交えながらご紹介させていただきました。まだまだ書き足りない部分も多くありますが、運用エンジニアにとってオブザーバビリティは日々のシステム運用に欠かせないものになりつつあります。
本書はそういったオブザーバビリティの基本的な概念から、その実現方法や運用への適用、その先にあるビジネスインパクトまで、幅広くカバーしている点が非常に優れていると感じました。
実践編
実際にオブザーバビリティを導入してみたいなと思われましたら、どのような工程(作業)が必要になるのかについて、下記記事でNew Relicを使用した導入概要を記載していますのでご一読頂けましたら幸いでございます。
宣伝
弊社では、こうしたオブザーバビリティの導入を促進するサービスのご紹介を行っております。もしご興味をお持ちの方は、こちらのサービスご紹介ページの一番下にあるお問合せフォームよりお問合せ頂けましたら幸いでございます。