可観測性: 分散システムのトレーサビリティ

可観測性: 分散システムのトレーサビリティ

ソースノード: 1990640

「発送済み」と表示された高価な小包を待ったことがありますが、それがどこにあるのかわかりませんか? 追跡履歴は 11 日前に更新を停止し、ほとんど希望を失いました。 しかし、待ってください。 不安な待ち時間から解放されるように、トレーサビリティが改善されればよかったのにと思います。 ここで「可観測性」の出番です。

技術的な状況では、ソフトウェアやデータ システムでこれが発生するのを回避したいと考えるでしょう。 これにより、システムのログとメトリックを収集し、内部状態を通知する監視ツールを採用します。 監視は、エラーの内容、発生した場所、時期をシステムに知らせたい場合に最適ですが、エラーの解決方法は教えてくれません。

XNUMX 年以上前、監視ツールには、根底にあるシステムの問題のコンテキストと先見性が欠けていたため、チームは日常的な運用エラーのデバッグに限定されていました。 今日、私たちはマイクロサービスの分散した世界で働き、生活しています。 データパイプライン; 複数の監視ツールを使用しても、「アプリケーションが常に遅いのはなぜですか?」などのビジネス上の質問に答えることはできません。 または「問題が発生したのはどの段階で、スタック内のどの程度の深さですか?」 または「環境の全体的なパフォーマンスを向上させるにはどうすればよいですか?」 これらの決定を積極的に行い、システム、アプリケーション、およびデータを全体的に可視化することが必要になります。

この ブログ投稿 by Etsy は XNUMX 年前に出版され、XNUMX 番目の段落でまさにその事実を述べています。

「通常、アプリケーション メトリックは、XNUMX つの中で最も困難ですが、最も重要です。 それらはあなたのビジネスに非常に固有のものであり、アプリケーションが変化するにつれて変化します (そして Etsy は大きく変化します)。」

では、あらゆるものをどのように測定するのでしょうか? 可観測性から始めます。

可観測性とは何ですか?

「可観測性」という言葉は 造られた Rudolf Emil Kálmán による 1960 年の工学論文で、数学的制御システムについて説明しています。 彼はそれを、システムの内部状態が外部出力の知識からどれだけうまく推測できるかの尺度として定義しました。 でも、モニタリングのように聞こえませんか? 基本的に、はい、それは監視です。

最近、可観測性が非常にホットな話題になっています。 いくつかの市場調査によると、これは XNUMX 億ドル規模のプラットフォームです。 多くの組織がこの概念を採用し、分散システムとパイプラインをエンドツーエンドで可視化するためのフレームワークとして採用しています。 ただし、可観測性は監視と混同されます。 今のところ、モニタリングはオブザーバビリティのサブセットであると言えます。オブザーバビリティは大きな包括的な用語の XNUMX つです。 

可観測性により、トレース、ログ、およびメトリックを収集して集約することにより、分散トレースが可能になります。 これらが何を推測するか見てみましょう:

  • トレース: システムがリクエストを受信すると、そのリクエストが送信元から送信先までライフサイクル全体でどのように流れたかがトレースによってわかります。 トレースは「スパン」で表されます。 トレースはスパンのツリーであり、スパンはトレース内の単一の操作です。 システム内のエラー、遅延、またはボトルネックを特定するのに役立ちます。
  • ログ: これらは、システムで発生した操作または変更について通知する、マシン生成のタイムスタンプ付きイベントです。 ログは、これらのエラーやシステムの変更を照会するためによく使用されます。
  • 指標: これらは、CPU、メモリ、ディスクの使用状況、およびシステムが一定期間にわたってどのように実行されているかについての定量的な洞察を提供します。

これらの属性は、追跡可能性を備えた監視フレームワークを強化します。 トレーサビリティは、システムを呼び出すリクエスト、あるコンポーネントから別のコンポーネントへのトラバースにかかる時間、呼び出す他のサービス、エラーをスローするか、生成するログ、状態を追跡するためのレンズを提供します。これらのトレースを収集、集約、分析すると、e コマース Web サイトでの顧客のタイムラインなど、情報に基づいた貴重な意思決定を行うことができます。 、製品を検索するのにかかった時間、製品を表示した時間、HTML ページが画像や埋め込みビデオなどの完全な詳細を読み込んだか、システムが支払いを認証して処理するのにかかった時間など。

分散環境でオブザーバビリティを使用して何を達成するか?

分散システムの進化は、組織が集中型のモノリス アーキテクチャから分散および分散型のマイクロサービス アーキテクチャに移行し始めたときに始まりました。 そして、これはまだ進行中の作業であり、多くの組織がシステムとアプリケーションのマイクロサービスの性質を取り入れています。 そして、これはすべてに起因する可能性があります ビッグデータ そしてスケーリング。 分散環境を管理するには、継続的な学習、人員の追加、フレームワークとポリシーの変更、IT 管理などが必要です。 本当に大きな変化です。

以前は、限られたモノリシック環境では、ハードウェア、ソフトウェア、データ、およびデータベースがすべて 2000 つの屋根の下にありました。 XNUMX 年代のビッグ データの出現により、システムの監視とスケーリングが大きな懸念事項になり始めました。 多くの場合、組織はさまざまな監視ツールを使用して、さまざまなアプリケーションのニーズに対応していました。 その結果、すぐに回復力、可視性、信頼性の低い運用上のオーバーヘッドになりました。

これらすべての問題が、オブザーバビリティの採用を引き起こしました。 現在、複雑な環境で分散トレースを行うために、セキュリティ、ネットワーク、アプリケーション、およびデータ パイプライン用に複数の可観測性ツールが存在します。 それらは従兄弟である監視ツールと共存し、従兄弟から情報を収集し、独自のトレース データから追加情報を集約することを利用します。

これらすべてのシステムには多くの可動コンポーネントがあり、そのトレースをキャプチャすると、5 つの W のストーリー (いつ、どこで、なぜ、何を、どのように) を説明できます。 たとえば、午後 1 時 43 分に DATAVERSITY の Web サイトにアクセスして、いくつかのブログ投稿を読んだとします。 dataversity.net にアクセスすると、HTTP 要求がシステムに記録されます。 ブログ投稿の検索を開始し、データ ガバナンスの投稿に移動します。その投稿を 17 分間読み、午後 2 時にタブを閉じます。

また、ネットワーク パケット キャプチャのために、ネットワーク システムに対して他の呼び出しが行われます。 オブザーバビリティ ツールはすべてのスパンを収集し、それらを XNUMX つまたは複数のトレースに統合して、ライフサイクル中に形成されたパスを確認できるようにします。 ネットワークの遅延やシステムの欠陥などの問題が発生した場合、分析 (タマネギの皮をむく) と問題のデバッグ (どのレイヤーでエラーが発生したか) が簡単になりました。

現在、大規模な分散環境では、アプリケーションが数百万のリクエストを受け取ると、トレース データが膨大な量になります。 これらのトレースを収集して分析すると、ストレージの消費とデータ転送にコストがかかります。 そのため、コストを節約するために、トレース データがサンプリングされます。ほとんどの場合、エンジニアリング チームは、何がうまくいかなかったか、またはエラー パターンが何であるかを調査するために、一部の断片しか必要としないためです。

この小さな例から、私たちはシステムについてより深い洞察を得ていることがわかります。 そのため、大規模なシステムを考慮して、エンジニアリング チームは、サンプリングされたデータをキャプチャして処理し、システムの現在の構造を改善したり、新しいコンポーネントを適用または廃止したり、別のセキュリティ レイヤーを追加したり、ボトルネックを取り除いたりすることができます。 

組織は可観測性を選択する必要がありますか?

最終的な目標は、ユーザー エクスペリエンスの向上とユーザー満足度の向上であることを理解する必要があります。 自動化されたプロアクティブな可観測性フレームワークを使用すると、これらの目標を達成するための道筋が容易になります。 継続的な改善と最適化の文化を確立することは、最適なビジネスおよびリーダーシップのアプローチと見なされます。 

このデジタル トランスフォーメーションの時代に、オブザーバビリティは、ビジネスがデジタル ジャーニーで成功するために必要不可欠なものになっています。 洞察力に富んだトレースを提供するオブザーバビリティは、単なるデータドリブンではなく、データインフォームドになるように操作します。

まとめ

監視とオブザーバビリティという用語を同じ意味で使用していますが、監視はシステムの健全性とそこで発生するイベントに関する情報を提供するのに役立ちますが、オブザーバビリティはエンドのより深い層から収集された証拠に基づいて推論を行うのに役立ちます。エンド環境。

オブザーバビリティは、データ ガバナンス フレームワークのコンポーネントであり、そのコンポーネントとして認識されることもあります。 増え続けるデータ ボリュームがコモディティ ハードウェアのネットワーク上に存在するこの世代では、アーキテクチャを可能な限りシンプルに保つことが不可欠です。 そして明らかに、将来的に環境を管理することは不可能な作業になります。 これにより、適切で自動化されたガバナンス ポリシーとルールを実装して、システム、パイプライン、およびデータの整理された大規模なメッシュを維持し、遅かれ早かれ行動を起こす必要があります。

タイムスタンプ:

より多くの データバーシティ