DevOps 測定: システムをモニタリングしてビジネス上の意思決定に役立てる

モニタリングとは、ビジネス上の意思決定を行うことを目的として、アプリケーションやインフラストラクチャをトラックして情報を収集、分析、使用するプロセスです。モニタリングは、システムと作業に関する分析情報を提供する重要な機能です。適切に実装されたモニタリングで迅速なフィードバックが得られるため、ソフトウェア開発ライフサイクルの問題を早期に見つけて修正できます。

また、モニタリングを活用して、ソフトウェア開発や配信パイプライン以外の領域に従事する人員や、他の事業部門にシステムに関する情報を伝えることもできます。運用のダウンストリームで取得された知見は、開発や製品管理などのアップストリーム チームに統合できます。たとえば、NoSQL データベースをデータストアとして使用する高度にスケーラブルなアプリケーションの運用で得られた知見は、同様のアプリケーションを構築するデベロッパーにとっても役立つ情報になりえます。

このようにして知見を共有することで、本番環境の問題、デプロイのエラー、顧客の使用パターンなどから教訓をチームで迅速に特定できます。このような教訓を組織全体で共有することで、人材やシステムの改善に役立てることができます。

モニタリングの実装方法

効果的なモニタリングを行うには、以下の要素が重要となります。

  • アプリケーションのパフォーマンスやインフラストラクチャなど、バリュー チェーン全体における重要な領域からデータを収集する。
  • 収集したデータを使用してビジネス上の意思決定を行う。

データの収集

データをより効率的に収集するには、開発作業、テスト、QA、IT オペレーションを可視化するモニタリング ソリューションを、自社サービスまたはマネージド サービスとして実装する必要があります。機能やビジネスに適した指標を選択してください。DevOps の指標と測定については、2015 DevOps Enterprise Forum のホワイトペーパー(PDF)をご覧ください。

データを活用してビジネス上の意思決定を行う

収集したデータを変換して可視化すると、さまざまなオーディエンスがそのデータにアクセスできるようになり、彼らの意思決定でこれらのデータを利用できるようになります。たとえば、運用データはアップストリームで共有できます。また、レポートやブリーフィングに適切な形でこのデータを組み込むことや、このデータを会議で使用してビジネス上の意思決定の判断材料にすることもできます。ここでの「適切」は、関連性が高く、タイムリーで、正確で、わかりやすいことを意味します。

このような会議では、コンテキストを提示する必要があるので注意してください。これは、そのデータに精通していない人員でも、データがディスカッションとどう関連しているか、意思決定でそのデータがどう役立つかを理解できるようにするためです。たとえば、以下の質問に対してどのように答えるかを確認します。

  • これらの値は比較的高いのか、それとも低いのか。
  • 想定通りなのか。
  • 変更を予定しているのか。
  • このデータは過去のレポートと比較してどう違うのか。
  • これらの数値は、興味深い、あるいは明白ではない形でテクノロジーやインフラストラクチャの影響を受けているか。

モニタリングでよくある問題

システムのモニタリングでよくある問題には、次のようなものがあります。

  • 事後対応型のモニタリング。たとえば、モニタリング データを使用して、システムがクリティカルなしきい値に近づいたときにアラートを発生させるのではなく、システムがダウンしたときにのみアラートが発生させる場合など。

  • モニタリングの対象範囲が狭すぎる。たとえば、ソフトウェア開発と配信パイプライン全体ではなく、1~2 つの領域をモニタリングしている場合など。この場合、モニタリング対象となっている領域のみがフォーカスされているため、モニタリング対象として最適ではない領域がハイライトされる可能性があります。

  • 局所的な最適化にフォーカスしている。たとえば、1 つのサービスのストレージ ニーズに対する応答時間の短縮に注力していて、その改善でより広範なインフラストラクチャが恩恵を受けることができるかどうかを評価していない場合など。

  • すべてをモニタリングしている。システム上のすべてを対象としてデータを収集しレポートすると、オーバー アラートのリスクや大量のデータに圧倒されるリスクが生じます。モニタリング手法を慎重に選ぶことで、重要な領域に注目できるようになります。

モニタリングの改善方法

モニタリングの効果を高めるために、次の 2 つの重要な領域に注力することをおすすめします。

  1. バリュー チェーン全体で重要となる領域からデータを収集する。

    収集したデータを分析してギャップ分析を行うことで、組織に適したデータを収集できているかどうかを確認できます。

  2. 収集したデータを使用してビジネス上の意思決定を行う。

    収集されるデータは組織全体に価値をもたらすものである必要があります。また、選択する指標は組織にとって有用なものである必要があります。有用なデータは、DevOps から Finance まで、多くのチームが活用できます。

    また、モニタリング情報を表示するための適切なメディアを利用することも重要です。情報の表示方法は、その使用方法に応じて変える必要があります。DevOps チームにとっては、リアルタイム ダッシュボードが最適であるかもしれませんが、長期間にわたり測定される指標の場合、定期的に生成されるビジネス レポートが適しているかもしれません。

    最も重要なことは、データが利用可能で、共有されていて、意思決定の指針となっていることです。共有スプレッドシートで始めることが最善の方法であれば、それを使用してください。その後で、ダッシュボードに移行します。まずは、できることから始めてください。

モニタリングの測定方法

効果的なモニタリングであれば、ソフトウェア開発と配信のパフォーマンスを向上できます。ですが、システムでモニタリングの効果を測定することが難しい場合があります。システムから収集されるデータ量とそのデータの種類を自動的に測定できる場合もありますが、そのデータが使用されているか、どこで使用されているかなどの情報を把握することはより困難です。

次の記述に対してどの程度同意できるかを検討して、組織におけるモニタリングの有効性を評価する際に役立ててください。

  • アプリケーション パフォーマンス モニタリング ツールから取得されたデータは、ビジネス上の意思決定に使用されます。
  • インフラストラクチャ モニタリング ツールから取得されたデータは、ビジネス上の意思決定に使用されます。

次のステップ