Header background

可観測性とは何か?ログ、メトリクス、トレースだけではありません

組織がクラウドネイティブ技術を採用するにつれ、システムアーキテクチャの複雑さと規模は劇的に拡大しています。顧客体験がこれまで以上に重要となる中、ITチームは問題をより迅速に追跡・対応するプレッシャーに直面しています。こうした課題に対処するため、チームは高度に分散化された複雑なコンピューティング環境において、問題を積極的に特定・解決しワークフローを自動化できる可観測性ソリューションに目を向けています。では、可観測性とは何でしょうか?そして、それを適切に実現するためにチームは何をすべきでしょうか?

可観測性とは何か?

ITおよびクラウドコンピューティングにおいて、可観測性とは、システムが生成するデータ(ログ、メトリクス、トレースとして記録されるもの)に基づいて、システムの現在の状態を測定する能力を指します:

  • ログはイベントの詳細を記録します
  • メトリクスは、サービスのパフォーマンスや健全性を数値化するために使用される測定値を収集します
  • トレースは、リクエストに応答してサービスがエンドツーエンドで接続する方法を追跡します

クラウドネイティブ環境の複雑化が進み、障害や異常の潜在的な根本原因を特定することが困難になるにつれ、近年では可観測性の重要性が高まっています。

クラウドサービスは分散型で動的なアーキテクチャに依存しているため、可観測性とは、組織がクラウドのパフォーマンスデータを解釈するために使用する特定のソフトウェアツールや手法を指す場合もあります。

可観測性の仕組み

可観測性は、マルチクラウド環境内のエンドポイントやサービスから得られる計測データに基づくテレメトリに依存しています。現代の環境では、あらゆるハードウェア、ソフトウェア、クラウドインフラストラクチャコンポーネント、コンテナ、オープンソースツール、マイクロサービスが、あらゆるアクティビティの記録を生成します。可観測性の目的は、これらすべての環境と技術間で何が起きているかを理解し、問題を検知・解決することで、システムの効率性と信頼性を維持し、顧客満足度を高めることにあります。

可観測性の実装

組織では通常、OpenTelemetryなどのオープンソース計測ツールを含む、複数の計測手法を組み合わせて可観測性を実装します。

多くの組織では、運用、ソフトウェア開発ライフサイクル、アプリケーションセキュリティ、エンドユーザー体験に対するイベントの重要性を検知・分析するための支援として、可観測性ソリューションも導入しています。

チームが観測可能性データの収集と活用を開始するにつれ、そのメリットが IT 部門だけでなくビジネス全体にも及ぶことを実感しています。

オブザーバビリティを洗練されたアプリケーションパフォーマンスモニタリング(APM)の流行語と捉える方もいらっしゃるかもしれませんが、オブザーバビリティとモニタリングを比較する際には、いくつかの重要な違いを念頭に置く必要があります。

監視と可観測性:監視と可観測性の違いは何でしょうか?

可観測性は、単に別の名称のモニタリングなのでしょうか?端的に申し上げれば、そうではありません。可観測性とモニタリングは関連性があり、互いに補完し合うこともありますが、実際には異なる概念です。

モニタリング

モニタリングのシナリオでは、通常、後で発生すると予想されるパフォーマンスの問題について警告するダッシュボードを事前に設定します。しかし、これらのダッシュボードは、問題が発生する前にその種類を予測できるという重要な前提に基づいています。

クラウドネイティブ環境は動的で複雑なため、この種の監視にはあまり適していません。つまり、どのような問題が発生するかを事前に予測することはできないのです。

可観測性

監視可能性のシナリオでは、チームが環境を完全に計測し、包括的な監視可能性データを提供することで、何が起きているかを柔軟に調査し、予期していなかった問題の根本原因を迅速に特定することが可能となります。

従来、業界では可観測性をログ、メトリクス、トレースと定義してきました。しかし、より複雑なクラウド環境では、可観測性はメタデータ、ユーザー行動、トポロジーおよびネットワークマッピング、コードレベルの詳細へのアクセスなど、より広範な要素を包含する必要があります。

Observability pillars include logs, metrics, and traces.
可観測性の柱には、ログ、メトリクス、トレースが含まれます。現代の可観測性には、メタデータ、ユーザー行動、トポロジーおよびネットワークマッピング、コードレベルの詳細も含まれます。

可観測性が重要な理由

エンタープライズ環境において、可観測性は部門横断的なチームが高度に分散化されたシステム内で発生している事象について、具体的な疑問を理解し回答するのに役立ちます。可観測性により、何が遅延しているか、何が機能不全に陥っているか、そしてパフォーマンスを改善するために何が必要かを把握することが可能となります。可観測性ソリューションを導入することで、チームは問題に関するアラートを受け取り、ユーザーに影響が及ぶ前に積極的に解決することができます。

「未知の未知」を理解する

現代のクラウド環境は動的で、規模や複雑さが絶えず変化しているため、チームはほとんどの問題について認識も監視もできません。可観測性は、この「未知の未知」という一般的な課題に対処し、新たな種類の問題が発生した際に、継続的かつ自動的に理解することを可能にします。

AIOpsとDevSecOpsの自動化

また、オブザーバビリティはIT運用向け人工知能(AIOps)の重要な機能でもあります。クラウドネイティブアーキテクチャを採用する組織が増えるにつれ、DevSecOpsライフサイクル全体でより多くのプロセスを自動化する手段としてAIを活用し、AIOpsを実装する方法も模索されています。テレメトリの収集からテクノロジースタック全体で発生している事象の分析まで、あらゆるものにAIを導入することで、アプリケーションの監視、テスト、サービスレベル目標(SLO)の測定、継続的デリバリー、アプリケーションセキュリティ、インシデント対応を自動化するために不可欠な、信頼性の高い答えを得ることが可能になります。

ユーザー体験の最適化

可観測性の価値はITユースケースに留まりません。可観測性データの収集・分析を開始すれば、デジタルサービスがビジネスに与える影響を把握する貴重な窓口が得られます。この可視性により、コンバージョンの最適化、ソフトウェアリリースがビジネス目標を達成していることの検証、最重要事項に基づくビジネス判断の優先順位付けが可能となります。

また、観測可能性ソリューションが合成監視および実ユーザー監視を用いてユーザー体験データを分析する場合、ユーザーが問題に気付く前に課題を発見し、実際の即時フィードバックに基づいてより優れたユーザー体験を設計することが可能となります。

可観測性のメリット

可観測性は、ITチーム、組織、エンドユーザーすべてに強力なメリットをもたらします。以下に、可観測性が実現するユースケースの一部をご紹介します。

1 アプリケーションパフォーマンス監視

エンドツーエンドの完全な可観測性により、組織はアプリケーションのパフォーマンス問題、特にクラウドネイティブ環境やマイクロサービス環境で発生する問題の根本原因を、より迅速に特定することが可能となります。また、高度な可観測性ソリューションを活用することで、より多くのプロセスを自動化でき、運用チームとアプリケーション開発チーム間の効率性とイノベーションを向上させることができます。

2 DevSecOpsとSRE

可観測性は、高度なツールを導入した結果として得られるものではなく、アプリケーションとその基盤インフラの基盤となる特性です。ソフトウェアを開発するアーキテクトや開発者は、可観測性を考慮した設計を行う必要があります。そうすることで、DevSecOpsチームやSREチームは、ソフトウェアデリバリーライフサイクルにおいて可観測データを活用・解釈し、より優れた、より安全で、より耐障害性の高いアプリケーションを構築することが可能となります。

3 インフラストラクチャ、クラウド、Kubernetes環境の監視

インフラストラクチャおよび運用(I&O)チームは、オンプレミスおよびクラウドインフラストラクチャKubernetes環境の監視において、可観測性ソリューションが提供する強化されたコンテキストを活用できます。この統一された可観測性ベースのアプローチにより、アプリケーションの稼働時間とパフォーマンスの向上、問題の特定と解決に必要な時間の短縮、クラウドレイテンシ問題の検出、クラウドリソース利用の最適化、Kubernetes環境および最新のクラウドアーキテクチャの管理改善が実現します。

4 エンドユーザー体験

優れたユーザーエクスペリエンスは、企業の評判を高め、収益を増加させ、競合他社に対して羨望の的となる優位性をもたらします。エンドユーザーが問題に気付くよりずっと前に問題を発見・解決し、要求される前に改善を行うことで、組織は顧客満足度と顧客維持率を高めることができます。また、リアルタイム再生によるユーザー体験の最適化も可能であり、エンドユーザーが実際に体験している状況を直接把握できるため、改善すべき点を迅速に合意形成できます。

5 ビジネスアナリティクス

ビジネスアナリティクスにより、組織はビジネスコンテキストとフルスタックアプリケーションの分析・パフォーマンスを統合し、リアルタイムのビジネスへの影響を把握、コンバージョン最適化の改善、ソフトウェアリリースが期待されるビジネス目標を達成していることの確認、組織が内部および外部のSLAを順守していることの確認が可能となります。

6 DevOps および DevSecOps の自動化

DevSecOpsチームは、可観測性を活用して開発するアプリケーションに関するより深い洞察を得るとともに、テストやCI/CDプロセスを自動化することで、より高品質なコードを迅速にリリースできます。これにより、組織は対策会議や責任のなすり合いに費やす時間を削減できます。これは生産性の観点からのメリットであるだけでなく、効果的なコラボレーションに不可欠な良好な協力関係を強化します。

こうした組織的な改善は、さらなるイノベーションとデジタルトランスフォーメーションへの道を開きます。そして何よりも重要なのは、最終的にエンドユーザーが高品質なユーザーエクスペリエンスという形で恩恵を受けることです。

システムを可観測化するにはどうすればよいでしょうか?

可観測性についてご存知の方なら、ログ、メトリクス、分散トレースの測定値を収集することが成功の3つの柱であることをご存じでしょう。しかし、バックエンドアプリケーションからの生のテレメトリを観察するだけでは、システムがどのように動作しているかの全体像は把握できません。

フロントエンドの視点を見落とすと、実際のユーザーにとって、アプリケーションやインフラストラクチャが現実世界でどのように動作しているかの全体像が歪められたり、誤って表現されたりする可能性があります。3本柱のアプローチを拡張し、ITチームはユーザーエクスペリエンスデータをテレメトリ収集に追加することで、死角を排除する必要があります:

  1. ログ:ログとは、特定の時間に発生した個別のイベントを構造化または非構造化テキストで記録したものです。
  2. メトリクス:メトリクスとは、カウント値や測定値として表される値であり、多くの場合、一定期間にわたって計算または集計されます。メトリクスは、インフラストラクチャ、ホスト、サービス、クラウドプラットフォーム、外部ソースなど、様々なソースから生成されます。
  3. 分散トレース:トレースは、トランザクションやリクエストがアプリケーション間を流れる際の活動を追跡し、サービス間の接続方法(コードレベルの詳細を含む)を示します。
  4. ユーザーエクスペリエンス:ユーザーエクスペリエンスデータは、アプリケーションにおける特定のデジタル体験に対する外部からの視点(ユーザー視点)を追加することで、従来の可観測性テレメトリを拡張します。これは、本番環境前の環境においても有効です。

オンデマンドのパフォーマンスクリニック「Dynatraceによる分散トレーシング」にご参加いただき、Dynatraceの分散トレーシングの実践方法と、それがもたらすビジネス価値について詳しく学びましょう。

可観測性の3本柱だけでは不十分な理由

当然ながら、データ収集はあくまで出発点に過ぎません。適切なログ、メトリクス、トレースにアクセスできるだけでは、環境の真の可観測性を得るには不十分です。そのテレメトリデータを活用して、エンドユーザー体験とビジネス成果の向上という最終目標を達成できたとき、初めて可観測性の目的が達成されたと言えるのです。

オープンソースソリューションの重要性

組織が環境を監視するために活用できるその他の可観測性機能も存在します。OpenTelemetryなどのオープンソースソリューションは、クラウド環境におけるテレメトリデータ収集の事実上の標準を提供します。これらのオープンソースソリューションはクラウドネイティブアプリケーションの可観測性を強化し、開発者や運用チームが複数の環境にわたるアプリケーションの健全性について一貫した理解を得ることを容易にします。

リアルユーザーモニタリング(RUM)と合成テストの役割

組織はリアルユーザーモニタリングを活用することで、ユーザーエクスペリエンスをリアルタイムに可視化できます。単一リクエストの経路を追跡し、その過程で各サービスと行うあらゆるインタラクションに関する洞察を得ることが可能です。チームは合成モニタリングを用いてこのエクスペリエンスを観察したり、実際のセッションの記録を閲覧したりできます。これらの機能は、APIやサードパーティサービス、ブラウザで発生するエラー、ユーザー属性、ユーザー視点からのアプリケーションパフォーマンスに関するデータを追加することで、テレメトリを拡張します。

リアルユーザーモニタリングにより、IT、DevSecOps、SREの各チームはリクエストの完全なエンドツーエンドの経路を把握できるだけでなく、システムの健全性に関するリアルタイムの洞察にもアクセスできます。そこから、アプリケーションのパフォーマンスに影響を与える前に、健全性が低下している領域を事前にトラブルシューティングすることが可能です。また、障害からの復旧をより容易に行い、ユーザーエクスペリエンスをより詳細に理解することもできます。

過重な負担を負うチームを忘れないでください

IT組織は最善の意図と戦略を持っていても、既に過重な負担を抱えるチームが、膨大なデータとインサイトを絶えず監視・理解し、対応する能力を過大評価しがちです。可観測性には多くの複雑な課題が伴いますが、これらの課題を克服した組織は、その価値を実感することでしょう。

可観測性の課題とは?

可観測性は常に課題でしたが、クラウドの複雑さと急速な変化のペースにより、緊急の課題となっています。クラウド環境、特にマイクロサービスやコンテナ化されたアプリケーション環境では、はるかに大量のテレメトリデータが生成されます。また、チームが過去に解釈する必要があったものよりも、はるかに多様なテレメトリデータが生成されます。さらに、これらすべてのデータが流入する速度が非常に速いため、情報の流れについていくこと自体が困難であり、パフォーマンスの問題をタイムリーにトラブルシューティングするために正確に解釈することはなおさら難しくなっています。

組織はまた、可観測性に関して以下のような課題に頻繁に直面します。

1 データのサイロ化

複数のエージェント、異種データソース、サイロ化された監視ツールが存在するため、アプリケーション間、複数のクラウド、ウェブ・モバイル・IoTなどのデジタルチャネルにおける相互依存関係を理解することが困難です。

2. データ量、速度、多様性、複雑性

AWSAzureGoogle Cloud Platform(GCP)など、絶えず変化する現代のクラウド環境において、あらゆるコンポーネントから収集される膨大な量の生データから答えを得ることは、ほぼ不可能です。これは、数秒で起動・停止が可能なKubernetesやコンテナについても同様です。

3 手動による計測と設定

ITリソースが、新しいタイプのコンポーネントやエージェントごとに手動で計測機能を実装し、コードを変更することを余儀なくされると、観測性データからの洞察に基づくイノベーションに取り組むよりも、観測性の設定にほとんどの時間を費やすことになります。

4 本番環境前のテスト環境の不足

本番環境移行前の負荷テストを実施しても、開発者はコードを本番環境にプッシュする前に、実際のユーザーがアプリケーションやインフラに与える影響を観察・理解する手段を持ちません。

5 トラブルシューティングによる時間の浪費

アプリケーション、運用、インフラストラクチャ、開発、デジタルエクスペリエンスの各チームがトラブルシューティングに巻き込まれ、問題の根本原因を特定しようと試みます。貴重な時間を、推測やテレメトリデータの解釈、解決策の考案に費やすことになります。

6 複数のツールとベンダー

単一のツールでは、アプリケーションアーキテクチャの特定領域の可観測性を提供できるかもしれませんが、アプリケーションのパフォーマンスに影響を与え得るすべてのアプリケーションやシステムにわたる完全な可観測性を提供できない場合があります。

7 根本原因の特定が困難

また、あらゆる種類のテレメトリデータが、問題の根本原因の特定やユーザーエクスペリエンスへの影響の理解に等しく有用であるとは限りません。その結果、チームは複数のソリューションをまたいで答えを探し求め、テレメトリデータを苦労して解釈することに時間を浪費してしまいます。本来なら、その専門知識をすぐに問題の解決に注ぐことができるはずなのです。

しかし、単一の信頼できる情報源があれば、チームはより迅速に答えを得て、問題をトラブルシューティングすることができます。

単一の信頼できる情報源の重要性

組織は、アプリケーションインフラ全体を完全に可視化し、パフォーマンス問題の根本原因を正確に特定するために、単一の信頼できる情報源が必要です。クラウドの複雑性を制御し、関連するすべてのデータを収集し、AIで分析できる単一のプラットフォームがあれば、チームは問題がアプリケーション自体にあるか、それを支えるアーキテクチャにあるかを問わず、あらゆる問題の根本原因を即座に特定できます。

単一の信頼できる情報源により、チームは以下のことが可能となります:

  • テラバイト規模のテレメトリデータを、ITチームが断片的なデータから状況を推測するのではなく、確かな解決策へと変換します
  • インフラストラクチャの重要な領域について、従来では把握できなかった文脈的な洞察を得ることができます
  • 強化された認識力により、従来の監視ツールを使用する場合よりも迅速な対応を可能にし、共同作業とトラブルシューティングプロセスのさらなる加速を実現します

What is observability graphic

ITチームにとって実用化可能かつ拡張性のある可観測性の実現

可観測性を実現するためには、リソースに制約のあるチームが、膨大なテレメトリデータをリアルタイムで収集し、それに基づいて行動を起こすことが必要です。リアルタイムでの対応により、ビジネスに影響を与える問題がさらに拡大したり、そもそも発生したりすることを防ぐことができます。チームが可観測性を実用化かつ拡張可能にする方法の一部を以下に示します。

1. コンテキストとトポロジーの理解

IT環境のコンテキストとトポロジーを理解するには、アプリケーションとインフラストラクチャを計測し、あらゆるエンティティ間の関係性や、数十億もの相互接続されたコンポーネント間の相互依存性を特定する必要があります。豊富なコンテキストメタデータによりリアルタイムのトポロジーマップが実現され、スタック全体における垂直的な因果依存関係と、サービス・プロセス・ホストを横断する水平的な因果依存関係の両方を把握することが可能となります。

2 継続的な自動化の実現

すべてのシステムコンポーネントの自動的な検出、計測、ベースライン設定を継続的に行うことで、ITの労力を手動設定作業から解放し、重要な事象の理解を優先できる付加価値の高いイノベーションプロジェクトに振り向けることが可能となります。可観測性は「常時稼働」かつスケーラブルになるため、リソースに制約のあるチームでも少ないリソースでより多くの成果を上げられます。

3 真のAIOpsを確立する

包括的なAI駆動型フォールトツリー分析とコードレベルの可視性を組み合わせることで、チームは時間のかかる人的な試行錯誤に頼ることなく、異常の根本原因を自動的に特定できます。さらに、因果関係に基づくAIは、チームが認識または監視していない「未知の未知」を発見するために、異常な変更点を自動的に検出します。これらの実用的な知見は、DevOpsおよびSREチームが必要とする、より迅速かつ正確な対応を推進します。

4 オープンなエコシステムの構築

オープンなエコシステムは、Dynatrace、Google、Microsoftなどのベンダーが主導するオープンソースプロジェクトであるOpenTelemetryなどの外部データソースまで可観測性を拡張します。OpenTelemetryは、トポロジーマッピング、自動ディスカバリーと計測、大規模な可観測性に必要な実用的な回答を提供するプラットフォーム向けに、テレメトリ収集と取り込みを拡大します。

5 AIの活用

AI駆動のソリューションベースのアプローチは、クラウドの複雑性に伴う課題を解決することで、可観測性を真に実用的なものにします。可観測性ソリューションは、複数のソースからますます高速で発生する膨大なテレメトリデータの流れを解釈しやすくします。単一の信頼できる情報源により、チームはアプリケーションのパフォーマンス低下につながる前に、問題の根本原因を迅速かつ正確に特定できます。また、障害が発生した場合でも、復旧までの時間を短縮できます。

高度な可観測性は、サーバーレスプラットフォーム、Kubernetes環境、マイクロサービス、オープンソースソリューションを横断するエンドツーエンドの分散トレースを通じて、アプリケーションの可用性も向上させます。リクエストの開始から終了までの全行程を可視化することで、チームはアプリケーションのパフォーマンス問題を事前に特定し、エンドユーザー体験に関する重要な知見を得ることができます。これにより、組織が将来の成長を支えるためにアプリケーションインフラを拡張する中でも、ITチームは懸念事項に迅速に対応することが可能となります。

あらゆるものに可観測性を

数か月、あるいは数年をかけて自社ツールを構築したり、観測可能性のパズルのほんの一部しか解決できない複数のベンダーをテストしたりする余裕はありません。代わりに、すべてのシステムとアプリケーションを観測可能にし、実行可能な答えを提供し、技術的・ビジネス的価値を可能な限り迅速に提供できるソリューションが必要です。

Dynatraceの高度な可観測性は、これら全ての機能を単一プラットフォームで提供し、組織が現代のクラウドの複雑性を制御し、より迅速に変革することを可能にします。今こそ、包括的な可観測性をあらゆるクラウド移行に組み込むことが極めて重要です。Dynatraceでは、このアプローチを「クラウドを正しく実現する」と呼んでいます。

無料eBook『クラウドネイティブ環境における高度な可観測性へのアップグレード』では、高度な可観測性がクラウドネイティブ環境で実用的な解決策をどのように提供するかを解説しております。ぜひご一読ください。