オブザーバビリティとは、簡単に説明すれば「アウトプットからシステムをどれだけよく理解できるか」ということです。制御理論では、オブザーバビリティとはシステムが外部出力する情報から、そのシステム内部の状態についてエンジニアが推測する方法として定義されています。
オブザーバビリティは、エンジニアが生成されるデータに基づいてシステムを分析、最適化するための事前対策的なアプローチを可能にします。オブザーバビリティプラットフォームは、ログ、メトリクス、トレースの収集、保管、分析、可視化を行い、ソフトウェアシステムのすべての運用データに関するコネクトされたリアルタイムビューを提供するための中央集約化された方法です。また、アプリケーションやインフラストラクチャについて問い、システム動作を理解してシステムパフォーマンスの向上に必要な答えを得るための柔軟性も備えています。
オブザーバビリティがなぜ現代のデジタルビジネスで重要なのか
今日のシステムとは、Kubernetesクラスターやクラウドインフラストラクチャで実行される、オープンソースでクラウドネイティブの複雑なマイクロサービスです。世界各地に分散した開発チームとコンポーネントにより、かつてない速度で開発とデプロイが進められています。
今日の組織は、DevOpsチーム、継続的な配信、アジャイルな開発に依存し、ソフトウェアの配信プロセス全体がかつてない速さで進行しています。そのため、問題の発生時にその検知がさらに難しくなる可能性があります。
メインフレームと静的オペレーションの時代は、問題が発生してもその原因を突き止めることはごく簡単で、既知のパラメータに基づいて事前設定された静的アラートがオペレータに問題を警告してくれていました。これらのシステムでは同じような障害が繰り返し発生するため、これで十分でした。
システムが複雑になるにつれて、ソフトウェアのパフォーマンスに何が起こっているのかを明らかにする試みがモニタリングツールで行われました。モニタリングデータと時系列解析により、アプリケーションのパフォーマンスを追跡できたのです。それは、管理可能なプロセスでした。
今日において、複雑さは圧倒的なものとなっています。考えうる障害の原因はいくらでもあり、焦燥感を抱えて画面を凝視していると、それは無限のように感じられます。サーバーがダウンしているのか?クラウドプロバイダのサービスが停止しているのか?エンドユーザーの利用に影響を与えるような新しいコードを誰かがプッシュしたのか?
こういった複雑な分散型システムで作業をしている場合、オブザーバビリティがなければ、チェーン内の壊れたリンクの特定はほぼ不可能になります。今ではマイクロサービスアーキテクチャーが一般的となり、責任はチーム全体に分散されています。個別のアプリ担当者はおらず、多くのチームによる関与が必要となります。自分がオーナーでないアプリケーション領域も理解して分析し、トラブルシューティングを行う必要があります。分散型システムの全体を通じてリクエストやボトルネックを追跡できる、ディストリビューティッド(分散)トレーシングのようなツールが必要です。
お客様の組織におけるオブザーバビリティ実施のビジネスケースは明らかです。2023年のオブザーバビリティ予測では、5分の2(40%)が、オブザーバビリティはシステムのアップタイムと信頼性を向上させると回答しました。さらに言えば、半数以上の回答者が、オブザーバビリティの実践から年間50万ドル以上の総価値を獲得していると回答しています。計算してみると、オブザーバビリティへの支出の年間ROIの中央値は、すべての回答者にわたり100%でした。
モニタリングとオブザーバビリティの違い
両者の違いを理解するには、まず「従来のモニタリング」システムの弱点をしっかり理解する必要があります。
従来のモニタリングの問題
従来のモニタリングが追跡できるのは、「既知の未知」だけです。これは、マイクロサービスと分散型システムが共存する複雑な世界では、従来のモニタリングではうまく機能しないことを意味します。追跡できるのは、自分が事前に確認事項として設定したことだけです(たとえば、「アプリケーションのスループットは?」、「計算容量はどのくらいか?」「特定のエラーバジェットを超えたらアラートを送信」など)。
オブザーバビリティが鍵を握る
オブザーバビリティには、それまで自分が思いつきもしなかったパターン、すなわち「未知の未知」を理解できる柔軟性があります。
オブザーバビリティは、何が問題なのかだけではなく、それがなぜなのかを理解する能力を与えてくれます。
オブザーバビリティとモニタリング
誤解のないように言うと、オブザーバビリティはモニタリングの必要性を排除するものではありません。モニタリングは、オブザーバビリティを実現するための手段のひとつとなります。
このように考えてみてください。オブザーバビリティ(名詞)は、複雑なシステムをどれだけよく理解できるかというアプローチです。モニタリング(動詞)は、そのアプローチをしやすくするための行動です。
よりよいオブザーバビリティの構成とは
最新システムのオブザーバビリティは、MELTと呼ばれることの多い、メトリクス、イベント、ログ、トレースという4つの基礎的な要素を備えています。ただし、これだけでは、よりよいソフトウェアシステムを構築し、運用するのに必要なインサイトを得ることはできません。以下は、オブザーバビリティを最大限活用するのに必要となる領域です。
オープンインストゥルメンテーションは、コード(エージェント)を使用して、ソフトウェアアプリケーションを通過するデータを追跡、測定します。オープンインストゥルメンテーションとは、テレメトリーデータを、データを生成するベンダー固有のエンティティと紐づけずに収集することです。オープンソースやテレメトリーデータソースの例には、OpenTelemetryやPrometheusなどのベンダーに依存しないオブザーバビリティフレームワークがあります。
相関性とコンテキスト
俯瞰で捉えることは不可欠であり、それは大量の未処理のテレメトリーデータを持つ大企業のアプリケーションであればなおさらです。収集されたテレメトリーデータは、相関性とコンテキストについて解析される必要があり、その結果浮かび上がるパターンや異常性を理解することができます。
プログラマビリティ
企業は、固有のビジネス目標に基づき、カスタムアプリケーションを利用して独自のコンテキストとキュレーションを作成する柔軟性を必要とします。
AIOpsツール
最新のインフラストラクチャを常に利用可能な状態に保つには、インシデント対応を加速させる必要があります。AIOpsソリューションは、機械学習モデルを利用して、インシデントデータの関連づけ、集約、優先順位付などのIT運用プロセスを自動化します。これらのツールが、誤警報を無くし、問題を早期に検知し、平均解決時間(MTTR)を加速するのに役立ちます。
では、オブザーバビリティツールの真価とは?
顧客体験の向上
オブザーバビリティツールは、デジタルビジネスの複雑さが増していても、より良い顧客体験を創出する力をエンジニアや開発者に与えてくれます。オブザーバビリティを利用して、すべてのテレメトリーデータタイプを収集、調査、アラート、および関連づけることができます。ユーザーの行動を理解し、ユーザーが望むよりよいデジタルエクスペリエンスを提供できます。そして、コンバージョン率、リテンション、ブランドロイヤルティを高めます。
ダウンタイムの短縮とMTTRの改善
オブザーバビリティにより、運用効率を高め、イノベーションと成長を加速させやすくなります。たとえば、チームはオブザーバビリティプラットフォームを利用して、発生した重要なインシデントについて理解し、再発の未然防止に取り組むことができます。
チームの効率性とイノベーションを強化
新しいビルドをプッシュしたら、アプリケーションのパフォーマンスを観察し、エラー率が急上昇したり、アプリケーションのレイテンシが長くなる理由を突き止めることができます。どのノードに問題があるのか知ることができます。
他にも多くのメリットがありますが、お客様からのフィードバックの一部を以下にご紹介します。
- 運用データについて信頼できる唯一のソース
- 稼働時間とパフォーマンスの把握
- デジタルビジネスのパフォーマンスのリアルタイムな変化を可視化
- チーム間のコラボレーションを強化し、問題をトラブルシューティングして迅速に解決
- イノベーション文化の実現
- 進化した運用効率性により、高品質のソフトウェアを大規模に作成し、市場投入までの時間を加速化
- データドリブンなよりよいビジネス判断を行い、投資を最適化するための具体的な詳細を提供
オブザーバビリティ導入を促進する要因
2023年のオブザーバビリティ予測では、1,700名の回答者のうち半数近く(49%)が、オブザーバビリティのニーズを促進する第一の戦略またはトレンドとして、セキュリティ、ガバナンス、リスク、コンプライアンスへのさらなる注力と回答しました。
その他の要因としては、ビジネスアプリケーションのワークフローへの統合(38%)、人口知能(AI)技術の導入(38%)、クラウドネイティブのアプリケーションアーキテクチャーの開発(38%)、マルチクラウド環境への移行(37%)、顧客体験マネジメント重視の強化(35%)などがありました。
また、レポートでは、自社組織において、以下のようなベストプラクティスを含む、15の成熟したオブザーバビリティの特性すべてを導入しているとしたのは回答者の1%のみでした。
- ソフトウェアのデプロイメントにCI/CDの実践が活用されている(44%)
- インフラストラクチャが自動化ツールを使用して設定、オーケストレーションされている(43%)
- 臨機応変なデータクエリ能力(35%)
- インシデント対応の一部が自動化されている(34%)
- テレメトリー(メトリクス、イベント、ログ、トレース)が複数チームで活用できるよう単一のビューに統合されている(31%)
- テレメトリーデータを使ってビジネス関連の文脈を考慮し、イベントやインシデントのビジネスインパクトを数値化している(27%)
- ユーザーがテレメトリーデータとその可視性に幅広くアクセスできる(27%)
- インストゥルメンテーションが自動化されている(25%)
- テレメトリーが技術スタック全体にわたり収集されている(24%)
- カーディナリティの高いデータの取り込み(21%)
もっとも一般的なオブザーバビリティ使用事例
SREおよびIT運用チームは、複雑なシステム(人々が毎日使うアプリ)を稼働させ続ける責任があります。しかしオブザーバビリティは、ソフトウェア開発のライフサイクルを通じて、誰もが関心を寄せていることです。
ソフトウェアエンジニアリングのチームは、エラーがいつ、なぜ発生するのかなど、ソフトウェアシステムの健全性、パフォーマンス、ステータスを把握するためにオブザーバビリティを使用します。システムの出力(イベント、メトリクス、ログ、トレースなど)を調べて、そのシステムのパフォーマンス状況を判断できます。
小規模チームとオブザーバビリティ
小規模チームは、特にリソースが限られている場合に、オブザーバビリティツールから多大なメリットを得ることができます。
小規模な機能横断型のチームでは、どのメンバーも複数のタスクを担当していることが多く、システムのパフォーマンスを監視し分析する能力がきわめて貴重になります。
オブザーバビリティツールは、アプリケーションとインフラストラクチャの健全性と動作に関する包括的なビューを提供するため、チームはすばやく問題を特定し、それに対処できます。小規模チームはスタックの各コンポーネントに専属のスタッフを配置する余裕がないことが多いので、これは特に重要です。
データ収集を自動化してリアルタイムのインサイトを提供するオブザーバビリティツールのおかげで、チームメンバーはより効率的に業務に集中し、個々のサーバーのレビューやデバッグに費やす時間を削減できるようになります。
実際の稼働状況について知りたければ、私たちのお客様がいかにNew Relicを使用して効率性を大幅に高めたかについてご覧ください。
オブザーバビリティツールにより、小規模チームは生産性を最大化し、トラブルシューティングを能率化し、最終的には、限られたリソースに負担をかけることなく、より信頼性と満足度の高いユーザー体験を提供できるようになります。
オブザーバビリティとDevOps
マイクロサービスにより、デプロイの頻度が劇的に増加しました。あまりにも多くのことが変化しているため、チームがそれぞれの環境で起こりうるあらゆる障害のモードを事前定義することは現実的ではありません。アプリケーションコードだけではなく、それをサポートしているインフラストラクチャ、また消費者の行動や要求についても同様です。
オブザーバビリティは、本番環境のシステムをテストし、質問し、あらかじめ予測できなかった問題について調査するために必要な柔軟性をDevOpsチームに与えてくれます。
オブザーバビリティによるDevOpsチームの支援:
- 明確なサービスレベル目標(SLO)を確立し、インストゥルメンテーションを実装し、測定可能な成功に向けて準備し、力を合わせます
- チームのダッシュボードを確立し、応答を調整し、すべての変更の効果を測定することでDevOpsのプラクティスを強化します
- 進捗を確認し、アプリケーションの依存関係とインフラストラクチャリソースを分析し、ソフトウェアユーザーのエクスペリエンスを継続的に向上させる方法を見つけます
オブザーバビリティに関する結論
オブザーバビリティは、トラブルシューティングへの事前対策的なアプローチを可能にし、ソフトウェアシステムを効果的に最適化します。ソフトウェアシステムのすべての運用データに関するリアルタイムの相互に繋がった視点を提供し、アプリケーションとインフラストラクチャについての臨機応変な問いを可能にします。
分散されたチームにより開発された複雑なシステムを使用する現代において、オブザーバビリティは必須です。オブザーバビリティは従来のモニタリングを超えて、エンジニアが「何が」問題かだけでなく、それが「なぜ」なのかを理解するのを助けます。
テレメトリーデータを理解するために、オブザーバビリティツールは、オープンインストゥルメンテーション、相関性、コンテキスト分析、プログラマビリティ、AIOpsツールを包括しています。顧客体験を向上させ、ダウンタイムを短縮し、チームの効率を高め、全チームにおけるイノベーションの文化を促進します。
オブザーバビリティを始めましょう。New Relicをお試しください。
最新のオブザーバビリティの力を得て、ソフトウェアエンジニアや開発者はソフトウェアライフサイクル全体を通してデータドリブンなアプローチを採用できます。パワフルなフルスタック分析ツールを備えた統合データプラットフォームに、イベント、メトリクス、ログ、トレースなどすべてのテレメトリーを取り込み、優れたソフトウェアを計画、構築、デプロイ、実行して、イノベーションと成長を促進する優れたデジタルエクスペリエンスを提供することができます。
調査で明らかになったインサイトとベストプラクティスの詳細については、2023年オブザーバビリティ予測レポートをご覧ください。
オブザーバビリティについてさらに詳しく学ぶには、統合型オブザーバビリティプラットフォームを実際に体験するのが最良の方法です。New Relicを始めましょう。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。