オブザーバビリティを高めるための5つのステップ
オブザーバビリティ(可観測性)の定義はさまざまだが、ITシステムやSRE(サイト信頼性エンジニアリング)のコンテキストでは、監視やログ収集、メトリクスなどを通じてシステムトラブル時に素早く原因特定、対応できるよう、安定稼働に必要な情報を常時収集することを指す。
「従来のモニタリングは稼働状況の指標でしかなかったが、これだけでは足りない。たとえばサーバーのCPU使用率が95%になってエラーが発生、アラート通知が管理者に届いたが、10分後にチェックしにいったらCPU使用率は20%に落ち着いていた場合、エラーログがなければ何が起きたか分からず、改善もできない」
New Relicの大谷和紀氏は、今後はオブザーバビリティを徐々に高めながら、受け身から攻めの運用監視に転じてビジネス価値を創出していく流れにあると説明する。
では、どうすればオブザーバビリティを高めることができるのか。大谷氏は講演で同社が提唱するオブザーバビリティ成熟モデルを紹介し、各ステップを紐解いた。
最初のステップは、計測を始めることだ。計測とは、正常に動作しているかどうかを判断するための材料を収集すること。オブザーバビリティを高める上での基本となる。
大谷氏は「オブザーバビリティの4つの柱」として、メトリック、イベント、ログ、トレースを挙げた。メトリックは、エラー率や遅延など、時間で区切ってグループ化された測定値の集合を指す。イベントは、サーバーがリクエストを受け付けたときにエラーが起こったといった、ある瞬間に発生する個別のアクションのこと。ログは、特定のコードブロックが実行されたときにシステムが生成する、シンプルなテキスト行。そしてトレースは、異なるコンポーネント間における一連のトランザクションの因果連鎖だ。この4つを基軸に、計測を開始する。
続くステップは、受動的対応を導入することだ。「アラート対応をちゃんとやろうという話」と簡潔にまとめた大谷氏は、「アラートが頻発するような状況であれば、まずはアラート対応をしっかりして、事態を収拾しなければ次に進めない」と指摘。サービス停止率や障害発生率、平均復旧時間(MTTR)を検証しながら、改善を繰り返すのがこの段階だ。
受動的対応に慣れてきたら、次は積極的対応にステップアップする。ここでは、不安定さをなくしてパフォーマンスを改善、サービスレベルを策定し、ユーザー体験の定義と計測を実施する。
具体例として、大谷氏はWebトランザクション時間のグラフを表示した。そのシステムのパフォーマンスは平均200ミリ秒で、グラフには2回のピークが発生。1回目は300ミリ秒弱、2回目は1000ミリ秒に達するピークとなった。では、どちらが問題か。大谷氏は「1回目の挙動は障害とはならないが、予測不能な、不安定な挙動。コントロールしづらいだけに、先回りしてできることをやって潰したい」と述べた。
パフォーマンスの改善には、求められるレスポンスタイムや可用性などサービスレベルを決めることが重要だ。また、どのようなユーザー体験を提供したいのかを考えることも必要だ。たとえば、ショッピングサイトで商品一覧ページが表示されるまでどれくらいの時間がかかるのか、何ミリ秒だとユーザーは離脱してしまうのかなどを計測データで見極め、改善していく。これをうまくライフサイクルに当てはめて回していくことが、積極的対応の成功の秘訣と大谷氏は言う。