可観測性とは?

可観測性は、システムのステータスをその外部出力に基づき説明するソフトウェアベースの能力です。

多くの場合、システムは強力で高機能であるほど、複雑になります。残念なことに、複雑になるほど、予測不可能性が高くなります。障害やパフォーマンスボトルネック、バグなどが発生しますが、それらの発生の根本原因を突きとめることは必ずしも簡単ではありません。複雑な最新システムを使用すると、予測不可能な障害の可能性が高くなるだけでなく、起こり得る障害モードの件数が増加します。この傾向を打開するために、IT、開発、運用の各チームは自身でシステムの調査が可能な監視ツールを実装し始めました。

しかし、進歩に伴い、現代のシステムの複雑さは、従来の監視機能で対応できる範囲を超えるようになりました。今や、システムを未知の障害から保護するための実績ある戦略は「監視」ではありません。有効な戦略は「可観測性」により、システムをより「監視可能」にすることです。

可観測性と監視の違いはわずかですが、その違いは重要です。それぞれの機能と目標を考察すると、チームはこの違いについて理解を深め、可観測性戦略から多くの成果を得ることができます。

監視では、ユーザーは事前定義済みの一連の測定基準とログを使用してシステムのステータスを観察、解釈できます。つまり、既知の障害モードのセットを検出できます。監視は、傾向の分析、ダッシュボードの構築、問題発生時の対応チームへのアラート通知に不可欠です。アプリケーションがどのように動作しているか、どのように拡大しているか、どのように使用されているかについて、情報を提供します。しかし、監視を行うには、起こり得る障害モードについて明確に理解する必要があります。つまり、「既知の未知」(すでに認識しているリスク) の特定には役立ちますが、「未知の未知」(まったく予測外であり、検討されていないため、完全に監視することが不可能なリスク) への対処には役立ちません。

これは問題です。複雑なシステムのほとんどにおいて、「未知の未知」の件数は、備えを固めることが比較的容易な「既知の未知」よりもはるかに多いからです。さらに困ったことに、この「未知の未知」のほとんどは「盲点」と呼ばれ、発生の可能性が非常に低いため、それぞれの特定と計画は多大な労力の無駄になるという事実があります。起こり得る「未知の未知」は膨大な数にのぼり、脅威となります。これらの問題がどうなるのか、問題を監視する方法でさえ予測できないため、システム自体から可能な限り多くのコンテキストを絶えず収集する必要があります。可観測性は、このコンテキストを提供します。可観測性により、健全性チェックは回避され、ソフトウェア自体がどのように動作しているかが深く掘り下げられます。可観測性は、インサイトの収集と監視を支援する機器を使用し、システムの外部出力に基づく内部ステータスの理解度を測定します。

監視が行われるのは、何かが観測可能になった後です。可観測性がなければ、監視は不可能です。

ソフトウェアは日々、複雑化しています。インフラストラクチャにはマイクロサービス、ポリグロットパーシステンスや、大きいコンテナーを複雑な小さいシステムに分解するコンテナーなど、パターンの組み合わせがあります。

それと同時に、製品の数も増加しています。組織が新しいイノベーションに取り組むためのプラットフォームや方法は多数存在します。また、環境の複雑化も進んでいます。すべての組織が増え続ける問題に対処しているわけではありません。観測可能なシステムがなければ、問題の原因は未知であり、標準的な着手ポイントもありません。

信頼性

可観測性の第 1 目標は信頼性です。顧客のニーズに従って適切に、確実に機能する効果的な IT インフラストラクチャには、パフォーマンスの測定が必要です。可観測性ツールは、ユーザーの動作、システム可用性、キャパシティ、ネットワークスピードをユーザーに通知し、すべてを最適のパフォーマンスに保ちます。

セキュリティとコンプライアンス

コンプライアンスの遵守が必要な組織には、コンピューティング環境の可観測性が必要です。可観測性からイベントログまで完全な可視性を備えることで、侵入者、セキュリティの脅威、ブルートフォース攻撃の試み、起こり得る DDoS 攻撃を検出できます。

収益拡大

イベント分析機能は、行動と、アプリケーションのフォーマット、スピードなどの変数によって行動がどのような影響を受ける可能性があるかについて、貴重な情報をもたらします。このデータをすべて分析すると、収益創出と新規顧客の獲得に向けて、ネットワークとアプリケーションの最適化に関する実用的なインサイトが得られます。

可観測性は、ログ、メトリック、トレースの 3 つの柱に分類されます。

ログ

これは、システム上で発生したイベントのレコードです。ログは自動的に生成され、タイムスタンプが付けられ、ファイルに書き込まれて変更不可能になります。ログは、システムのステータスに関するメタデータやイベントの発生日時を含む、イベントの完全なレコードを提供します。ログはプレーンテキストで書き込まれるか、特定のフォーマットで構造化される場合があります。

メトリック

メトリックは、経時的に測定されたデータの数値表現です。イベントログが特定のイベントについての情報を収集するのに対し、メトリックはシステムパフォーマンス全体から得られる測定値です。メトリックは通常、アプリケーションの SLI についての情報を提供します。

トレース

ネットワーク上で発生する、因果関係のあるイベントのレコードです。イベントは単一のアプリケーション内で発生する必要はありませんが、同一の要求フローに含まれる必要があります。トレースは、要求の実行に関係する別々のシステムから収集されたイベントログのリストの形式にフォーマットできます。

可観測性の 3 つの柱は、単独では結論を導き出すことが困難なデータソースを集約するのに役立ちます。これは本質的に、可観測性が次の 2 つの要素に依存するためです。

  • 大量のランタイムコンテキストを含むハイコンテキストなテレメトリデータ
  • そのデータを反復的に操作し、コードを展開せずに新しいインサイトを収集する能力

これら 2 つの要素を整備すると、システムとアプリケーションの可観測性の向上に必要な生のリソースが得られます。

可観測性が効果的であるかどうかは、それが実現可能かどうかによって決まります。コンテキストのあるテレメトリデータはすべて、それを実用的にするためのリソースがチームに欠けていれば、まったく役に立ちません。

コンテキストとトポロジ

コンテキストとトポロジは、動的なマルチクラウド環境において相互接続された多くのコンポーネントとの関係を理解できる点で役に立ちます。コンテキストメタデータは、起こり得るリアルタイムのトポロジマップを作成し、スタックを通じた、サービス、プロセス、ホストの因果関係を理解しやすくします。

継続的な自動化

IT の作業は手動設定から解放されます。すべてのシステムコンポーネントの自動検出、計測、ベースライン設定が行われます。継続的な自動化により、重要なことの把握を優先するイノベーションプロジェクトが追加されます。可観察性は拡張性があり、制限のあるチームが少ない労力で多くを達成することが可能となります。

AI による支援

包括的な故障の木解析を、コードレベルの可視性と組み合わせると、試行錯誤や推察、相関関係に依存せずに異常の根本原因を特定できます。また、因果関係に基づく AI は、あらゆる異常を検出して未知のものを発見します。

オープンなエコシステム

可観測性を拡張して外部データソースを含めるのが賢明です。トポロジマッピング、自動検出、計測と、大規模な可観測性に必要とされるアクションに関する答えを提供できます。

ビジネスに合わせて拡張できる機能

ServiceNow で、問題を発生前に予測しましょう。