可観測性とは

URL をコピー

可観測性とは、システムやアプリケーションの出力、ログ、パフォーマンス指標を調べることにより、その状態を監視、測定、理解する能力を指します。先進的なソフトウェアシステムやクラウド・コンピューティングでは、アプリケーションやインフラストラクチャの信頼性、パフォーマンス、セキュリティを確保するために、可観測性がますます重要な役割を担うようになっています。

ソフトウェアシステムの複雑化、マイクロサービスの普及、分散アーキテクチャへの依存度の高まりにより、可観測性の重要性が高まっています。

可観測性は、従来の監視システムを統合および拡張し、チームが問題の根本原因を特定できるようにします。可観測性によりステークホルダーは、アプリケーションやビジネスに関する質問に答えられるようになり、潜在的な問題についての予測や予想も可能になります。多様なツールやテクノロジーが使われているため、デプロイメントの可能性は膨大なマトリックスになりかねません。このことはアーキテクチャに影響を与えるので、チームは自分たちに合った方法で可観測性システムを設定する方法を理解しなければなりません。  

人工知能と機械学習

人工知能 (AI) 機械学習 (ML) は、異常の自動検出、根本原因の分析、予測的知見を提供するために、可観測性プラットフォームでますます使用されるようになりました。これらのテクノロジーは、複雑なシステムの問題を特定し、対処するために必要な時間と労力を削減するのに役立ちます。

ハイブリッドクラウドとマルチクラウド環境

ハイブリッドクラウドやマルチクラウド戦略を採用する企業が増える中、アプリケーションやサービスのデプロイ場所に関わらず、インフラストラクチャ全体を見渡すことができる可観測性ツールが求められています。

エッジデバイス

今後、エッジデバイスIoT (モノのインターネット) デバイス、その他のローカル・コンピューティング・デバイスが増加することで、これらの環境を監視および管理する上で新たな課題が発生するでしょう。そのような環境はリアルタイムの知見と迅速な対応が求められます。方法として、データ収集のための軽量エージェントの作成、エッジに適したデータフォーマットやプロトコルの使用、分散型のデータ処理および分析技術の導入などが考えられますが、依然としてセキュリティやプライバシーの面では堅牢な対策が不可欠です。

DevOps における可観測性

クラウドネイティブ・アプリケーションの信頼性とパフォーマンスを確保するために可観測性の重要性が高まる中、DevOps プロセスにおける可観測性に重点が置かれるようになっています。DevOps ツールチェーンへの可観測性ツールの統合や、アプリケーションのパフォーマンスと信頼性を継続的に改善するための可観測性データの利用もその一部です。

オープンソースの可観測性ツールの利用が増加

近年、Grafana、Jaeger、Kafka、OpenTelemetry、Prometheus といったオープンソースの可観測性ツールの普及が進んでおり、この傾向は今後も続くと言われています。この背景には、組織がプロプライエタリーな可観測性ツールに関連するコストの削減を望んでいることや、オープンソースツールが提供する柔軟性やカスタマイズのオプションが魅力ということがあります。

クラウドネイティブ・インフラストラクチャの導入が増加

クラウドネイティブ・インフラストラクチャを導入する企業が増えるにつれ、こうした環境に特化した可観測性ツールのニーズが高まることが予想されます。クラウドネイティブ・アプリケーションやインフラストラクチャから生成されるデータ量の増加に伴い、ML や AI は、クラウドネイティブの可観測性の領域でますます重要性を増していくでしょう。これらのテクノロジーでは、エンドユーザーに影響が及ぶ前に異常やパフォーマンスの問題を特定することができるため、組織は重大な問題が発生する前に問題にプロアクティブに対処することができます。

信頼性の向上

問題が拡大する前に検出し、解決することで、ダウンタイムを最小限に抑えてユーザーが利用できるシステムを維持できます。

トラブルシューティングの効率化

システムの動作に関する深い知見を得ることで、問題の根本原因を素早く特定し、効率的に解決できます。

最適化されたパフォーマンス

システム内のボトルネックや十分に活用されていないリソースなど、最適化すべき領域を特定し、より効率的なリソース配分とパフォーマンスの向上を可能にします。

データ駆動型の意思決定

最新のシステムパフォーマンスと動作情報を入手し、データ駆動型の意思決定と継続的な改善を可能にします。

可観測性と監視は関連する概念ですが、重要な相違点がいくつかあります。可観測性とは、外部からシステムの動作を調べることで、システムに関する疑問を投げかけることができる能力のことです。

クラウドネイティブ・インフラストラクチャを導入する企業が増えるにつれ、こうした環境に特化した可観測性ツールのニーズが高まることが予想されます。クラウドネイティブの可観測性ツールは、マイクロサービスコンテナなどのクラウドネイティブ・テクノロジーのデータを収集および分析し、これらの環境におけるシステムパフォーマンスに関する知見を提供できるよう設計されています。

つまり、クラウドネイティブの可観測性とは、マイクロサービス・アーキテクチャを使用して構築され、コンテナやサーバーレス環境にデプロイされた先進的なクラウドネイティブ・アプリケーションを監視、分析、トラブルシューティングするための手法と言えます。クラウドネイティブの可観測性の柱として、以下のものが挙げられます。

メトリクスKubernetes 環境とアプリケーションに関する定量的なデータの収集に重点を置いています。メトリクスには、CPU やメモリの使用量、ネットワークトラフィック、リクエストの待機時間などのデータを含めることができます。Kubernetes には多くの組み込み型メトリクスが用意されていますが、より詳細なメトリクスを収集するために、追加のツールやライブラリを使用する必要がある場合もあります。

ログ:Kubernetes 環境とアプリケーションからのログデータの収集と分析に重点を置いています。ログは、アプリケーションの動作に関する価値ある知見を提供し、問題のトラブルシューティング、パフォーマンスのボトルネックの特定、セキュリティ脅威の検出に使用することができます。

トレース:Kubernetes 環境とアプリケーション全体におけるリクエストやトランザクションの実行に関するデータを収集することに重点を置いています。トレースは、アプリケーションでリクエストやトランザクションがどのように処理されるかを理解し、パフォーマンスの問題を特定し、アプリケーションのパフォーマンスを最適化するのに役立ちます。

イベント:アプリケーションのデプロイ、スケーリングイベント、エラーなど、Kubernetes 環境内で発生する重要なイベントに関するデータを収集することに重点を置いています。イベントは、Kubernetes 環境の健全性を監視し、問題が発生したときに迅速に対応するのに役立ちます。

可観測性によってシステムの信頼性と効率的な運用が保証されるため、可観測性は SRE (サイト信頼性エンジニアリング)や DevOps に不可欠です。可観測性の重要性は、システムのパフォーマンスや動作に関する深い知見を提供し、プロアクティブな監視、トラブルシューティング、最適化を可能にする能力にあります。 

開発者、運用チーム、サイト信頼性エンジニアが可観測性データを使ってソフトウェアシステムの問題を特定、分析、解決するためには、一定の手順を踏む必要があります。これは「デバッグジャーニー」と呼ばれています。

監視、アラート、またはユーザーから報告されたインシデントから発生する場合、問題を検出することから可観測性の道のりが始まります。

検出されたら、チームは重大性を判断して優先順位をつける必要があります。このトリアージプロセスでは、ユーザー、システム、全体的なパフォーマンスへの影響を評価します。

優先順位の高いものから収集した可観測性データを調査し、パターンや相関関係を特定します。

潜在的な相関関係やパターンを特定した後、チームはデータを深く掘り下げて問題の根本原因を探ります。

原因を特定した上で、コード変更、Hotfix、インフラストラクチャ調整などで修正を実施し、解決状況が良好であるかどうかチームで監視を続けます。

DevOps と SRE のための可観測性には、システムを効果的に監視、トラブルシューティング、最適化するためのツール、プロセス、専門知識の組み合わせが必要です。そして可観測性は企業が顧客に高品質のデジタルサービスを提供できるようにする上で重要な役割を担っています。Red Hat OpenShift Observability は、システムのベースラインを開発するために必要な情報を提供し、そのベースラインからの逸脱について監視および警告して、平均検出時間 (MTTD) と平均復旧時間 (MTTR) を短縮する機能を提供します。

Red Hat® OpenShift® Observability は、可観測性のツールとテクノロジーを繋ぎ、統一された可観測性エクスペリエンスを実現することで、先進的なアーキテクチャの複雑性を解決します。このプラットフォームは、システムのさまざまなメトリクス、ログ、トレース、イベントをリアルタイムで可視化、監視、分析し、アプリケーションやエンドユーザーに影響が及ぶ前に問題を迅速に診断およびトラブルシューティングできるよう設計されています。

Red Hat OpenShift は、クラウド・アプリケーションのパフォーマンスと信頼性を向上させるための可観測性機能を提供します。アプリケーションからデータを収集および分析することで、顧客に影響が及ぶ前に問題を特定し、インフラストラクチャを最適化し、コストを削減することができます。また、アプリケーションの動作をより深く理解できるようにし、プロアクティブな修復を可能にします。これらの機能により、ユーザーはパブリッククラウド、オンプレミス、エッジといったあらゆるフットプリントにわたって、アプリケーションとインフラストラクチャのパフォーマンスおよび健全性について深い知見を得ることができます。

このプラットフォームは、システムのさまざまなメトリクス、ログ、トレース、イベントをリアルタイムで可視化、監視、分析し、アプリケーションやエンドユーザーに影響が及ぶ前に問題を迅速に診断およびトラブルシューティングできるよう設計されています。

Red Hat OpenShift Observability の 5 つの柱

データストレージ

ログ、メトリクス、トレースなど、さまざまな可観測性ツールやプラットフォームから生成されたデータを、分析および監視のために一元化された場所に保存します。システムのパフォーマンスに関する知見の獲得、問題の検出と診断、運用の最適化を行うためにこれらのツールに依存している企業にとって、このデータの保存は非常に重要です。Red Hat OpenShift Observability では、Prometheus と Thanos でメトリクスを、Loki でログを、Jaeger と Elasticsearch でトレースを保存します。

データ収集

システム、ネットワーク、アプリケーション内のさまざまなソースから、ログ、メトリクス、トレースなどのさまざまな種類のデータを収集し、分析および監視のために一元化された場所に保存するために送信します。Red Hat OpenShift Observability では、Prometheus でメトリクスを、Vector でログを、OpenTelemetry でトレースを収集します。

データの分析

可観測性の柱から収集したデータを分析および解釈して、システム、ネットワーク、アプリケーションの動作やパフォーマンスに関する知見を獲得します。このプロセスでは、 データ分析の手法を使用して、データ内の傾向、異常、相関を特定します。Red Hat OpenShift Observability は、データ分析を行い、Red Hat OpenShift のコンソール内でネイティブに表示します。

データの提供

可観測性の柱から収集したデータを適切なステークホルダーにタイムリーかつ効率的に提供します。このプロセスでは、データ提供のワークフローを定義し、提供チャネルを設定し、問題が発生したときにステークホルダーに通知するためのアラートと通知を設定します。  Red Hat OpenShift Observability でこれを実現するため、データを集約して標準化し、アラート用に備える Observability Operator を提供しています。

データの可視化

可観測性の柱から収集したデータを、理解、解釈しやすいようにビジュアルで表現します。Red Hat OpenShift Observability は、Red Hat OpenShift コンソールに組み込まれたグラフ、チャート、ダッシュボードを用いてデータを表示し、ユーザーがデータ内のパターン、傾向、異常を迅速に特定できるようにします。

Red Hat 製品の可観測性

統合されたテスト済みのサービス一式を備えたエンタープライズ・アプリケーション・プラットフォームであり、ユーザーの選ぶインフラストラクチャを使ってアプリケーションを市場に投入するために活用できます。

Red Hat Advanced Cluster Management for Kubernetes のロゴ

Red Hat Advanced Cluster Management for Kubernetes には、マルチクラスタ管理の統一、ポリシーベースのガバナンス、アプリケーション・ライフサイクル管理の拡張を実現する各種機能と、クラスタの健全性とパフォーマンスをプロアクティブに監視する機能が含まれています。

Red Hat Insights はプラットフォームとアプリケーションを継続的に分析して、リスクの予測、アクションの推奨、コストの追跡を行い、ハイブリッドクラウド環境の適正な管理を支援します。

ソフトウェアが複雑になるにつれ、信頼性の高い計測コンポーネントを提供するためにはより多くのリソースが必要となります。ここでプロプライエタリーな可観測性製品を使っていては、重複と非効率を招きます。市場は転換期を迎えており、競合企業同士がオープンソースのコアで協力し、スタックの上位で競争する (価格も同様) ことがより効率的になってきています。膨大な量のオープンソースの可観測性プロジェクトがあるため、Operator はバラバラに切断され、ユーザーが統一されたスタックを作成するのを妨げている可能性があります。Red Hat OpenShift Observability は、無数のオープンソースの可観測性 Operator を繋ぎ、それらを連携させて、統一された可観測性エクスペリエンスを実現することで、この問題を解決しています。  オープン・ハイブリッドクラウドにおける、お客様の選択肢と柔軟性に対する Red Hat の取り組みは、Red Hat が利用しているすべての可観測性オープンソース・プロジェクトへの貢献にも反映されており、コミュニティのためにオープンソース・コンポーネントを強化しています。Red Hat は、パブリッククラウド、オンプレミス、エッジなど、あらゆるフットプリントにおいて、統合され、一貫性があり、シンプルな、1 つの可観測性エクスペリエンスを提供します。

続きを読む

記事

機械学習とは

機械学習 (ML) は人工知能 (AI) のサブカテゴリで、アルゴリズムを使用してパターンを識別し、一連のデータ内で予測を行います。 

記事

コンテナについて理解する

コンテナは、アプリケーションとランタイム環境全体、つまり実行に必要なすべてのファイルをパッケージ化し、分離させるテクノロジーです。

記事

Kubernetes とは

Kubernetes はオープンソースのコンテナ・オーケストレーション・プラットフォームで、コンテナ化アプリケーションのデプロイ、管理、スケーリングに伴う多くの手動プロセスを自動化します。