SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2020】セッションレポート (AD)

アラート対応からデータ駆動の改善まで「攻めのモニタリング」を実現する5つのステップ【デブサミ2020】

【14-B-2】守りのモニタリングから攻めのモニタリングへ

  • このエントリーをはてなブックマークに追加

 これまでのアプリケーションやシステムのモニタリングは、障害を検知し、なるべく短時間で復旧させてサービスレベルを維持することに重きを置く、いわば守りの運用が中心だった。だが、それで終わらせていいのだろうか。New Relicの大谷和紀氏は、オブザーバビリティ(可観測性)を高めるための成熟モデルを紹介。計測データをとりながらの受動的な対応から、サービスレベルの策定やパフォーマンスの改善、ユーザー体験の向上を目標とした積極的対応、本番環境を使った「避難訓練」で対策度合いを検証する予測的対応、顧客満足がどれほど向上したかCSATスコアなどをベースにデータ分析するデータ駆動へとステップアップしていく方法を丁寧に解説した。

  • このエントリーをはてなブックマークに追加

New Relic株式会社 Senior Customer Success Manager 大谷和紀氏
New Relic株式会社 Senior Customer Success Manager 大谷和紀氏

オブザーバビリティを高めるための5つのステップ

 オブザーバビリティ(可観測性)の定義はさまざまだが、ITシステムやSRE(サイト信頼性エンジニアリング)のコンテキストでは、監視やログ収集、メトリクスなどを通じてシステムトラブル時に素早く原因特定、対応できるよう、安定稼働に必要な情報を常時収集することを指す。

 「従来のモニタリングは稼働状況の指標でしかなかったが、これだけでは足りない。たとえばサーバーのCPU使用率が95%になってエラーが発生、アラート通知が管理者に届いたが、10分後にチェックしにいったらCPU使用率は20%に落ち着いていた場合、エラーログがなければ何が起きたか分からず、改善もできない」

 New Relicの大谷和紀氏は、今後はオブザーバビリティを徐々に高めながら、受け身から攻めの運用監視に転じてビジネス価値を創出していく流れにあると説明する。

 では、どうすればオブザーバビリティを高めることができるのか。大谷氏は講演で同社が提唱するオブザーバビリティ成熟モデルを紹介し、各ステップを紐解いた。

オブザーバビリティ成熟モデル
オブザーバビリティ成熟モデル

 最初のステップは、計測を始めることだ。計測とは、正常に動作しているかどうかを判断するための材料を収集すること。オブザーバビリティを高める上での基本となる。

 大谷氏は「オブザーバビリティの4つの柱」として、メトリック、イベント、ログ、トレースを挙げた。メトリックは、エラー率や遅延など、時間で区切ってグループ化された測定値の集合を指す。イベントは、サーバーがリクエストを受け付けたときにエラーが起こったといった、ある瞬間に発生する個別のアクションのこと。ログは、特定のコードブロックが実行されたときにシステムが生成する、シンプルなテキスト行。そしてトレースは、異なるコンポーネント間における一連のトランザクションの因果連鎖だ。この4つを基軸に、計測を開始する。

 続くステップは、受動的対応を導入することだ。「アラート対応をちゃんとやろうという話」と簡潔にまとめた大谷氏は、「アラートが頻発するような状況であれば、まずはアラート対応をしっかりして、事態を収拾しなければ次に進めない」と指摘。サービス停止率や障害発生率、平均復旧時間(MTTR)を検証しながら、改善を繰り返すのがこの段階だ。

 受動的対応に慣れてきたら、次は積極的対応にステップアップする。ここでは、不安定さをなくしてパフォーマンスを改善、サービスレベルを策定し、ユーザー体験の定義と計測を実施する。

 具体例として、大谷氏はWebトランザクション時間のグラフを表示した。そのシステムのパフォーマンスは平均200ミリ秒で、グラフには2回のピークが発生。1回目は300ミリ秒弱、2回目は1000ミリ秒に達するピークとなった。では、どちらが問題か。大谷氏は「1回目の挙動は障害とはならないが、予測不能な、不安定な挙動。コントロールしづらいだけに、先回りしてできることをやって潰したい」と述べた。

 パフォーマンスの改善には、求められるレスポンスタイムや可用性などサービスレベルを決めることが重要だ。また、どのようなユーザー体験を提供したいのかを考えることも必要だ。たとえば、ショッピングサイトで商品一覧ページが表示されるまでどれくらいの時間がかかるのか、何ミリ秒だとユーザーは離脱してしまうのかなどを計測データで見極め、改善していく。これをうまくライフサイクルに当てはめて回していくことが、積極的対応の成功の秘訣と大谷氏は言う。

次のページ
不安定な挙動をコントロール下に置き、データ駆動でビジネス指標を向上

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2020】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12052 2020/03/24 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング