マイクロサービスアーキテクチャにおける分散トレースの応用

マイクロサービスアーキテクチャにおける分散トレースの応用

[[404533]]

[51CTO.com クイック翻訳]マイクロサービス アーキテクチャの分散トレースは、インターネット ベースのビジネス組織でより広く使用されるようになる新しい概念です。

マイクロサービス アーキテクチャは、複数の独立したサービスを使用してアプリケーションを拡張するまったく新しい方法を導入します。モノリシック アーキテクチャと比較して、回復力、スケーラビリティ、生産性、効率性の向上に役立ちます。

ただし、エラーの追跡やインフラストラクチャ全体のトラフィックの監視が困難になるなど、独自の複雑さも生じます。したがって、これらの複雑さを排除するために、多くの組織が分散トレースのアプローチを採用しています。このアプローチは、高度なデバッグの問題を解決し、ネットワークの可視性を向上させるのに役立ちます。また、エンドツーエンドのレイテンシ、特定のサービスや機能など、現在発生しているバグを絞り込むことで開発者をサポートします。

この記事では、分散トレースの方法とそれがマイクロサービス アーキテクチャに与える影響を紹介します。

分散トレースの説明

可観測性とは、インフラストラクチャの動作をきめ細かいレベルで監視することです。これにより、インフラストラクチャ内の可視性が最大化され、インシデント管理チームがマイクロサービス アーキテクチャの信頼性を維持できるようになります。

可観測性は、メトリック、アラート (イベント)、ログ、トレースなどのさまざまな形式 (ツール) でシステム データを記録することによって実現されます。これらの機能により、インフラストラクチャの内部の健全性に関する詳細な情報が得られます。ここでは、トレースの重要性と、それが分散トレースにどのように進化したかを分析します。

1. 追跡

トレースは、アプリケーション フローとデータの進行を継続的に監視することであり、通常はアプリケーション スタック内のユーザーの移動を表します。これにより、システム全体の動作と状態がより明確になり、理解しやすくなります。分散リクエスト トレースは、クラウド コンピューティング アプリケーションの健全性を維持するのに役立つ、観測可能性に対する進化的なアプローチです。

分散トレースは、トランザクション要求を追跡し、マイクロサービス アーキテクチャのパスを通過するときに関連するすべてのデータを記録するプロセスです。業界全体で使用され、構造化された形式でトレーサビリティを検査および視覚化します。このデータ追跡方法は、SRE/DevOps チームがインフラストラクチャの異常につながる技術的な障害を迅速に理解して調査するのに役立ちます。

これは、クラウドネイティブ アプリケーション全体の可観測性のための標準化されたフレームワークである OpenTelemetry などのツールを使用することで実行できます。これは、トレースに対するベンダー中立的なアプローチであると考えられています。

2. 分散トレースが必要なのはなぜですか?

2018 年に実施された調査によると、従来の組織の 63% が施設をマイクロサービス アーキテクチャに変更しています。モノリシック アーキテクチャからマイクロサービス アーキテクチャへの大きな移行により、高度に分散されたシステムでのデータ追跡の必要性がより明らかになりました。この分散トレースは、きめ細かい観測機能を備えた監視システムにおける一般的な課題を大幅に軽減します。

たとえば、世界中に何百万人ものユーザーがいるインタラクティブなソーシャル ゲーム プラットフォームを考えてみましょう。これらのユーザーが特定の好みのデータをプラットフォームに入力すると、プラットフォームはデータを迅速に処理し、適切な結果を提供する必要があります。ここで、分散トレースは、各ユーザーのリクエストをキャプチャし、さまざまなマイクロサービスがそれらのリクエストを処理し、非常に短時間で期待される結果を提供するという重要な役割を果たします。

このソーシャル ゲーム プラットフォーム インフラストラクチャが処理するいくつかの問題に分散トレースがどのように役立つかを見てみましょう。

これらの機能の一部は次のとおりです。

  • インフラストラクチャ全体にエンドツーエンドの可視性を提供します。
  • 上記のゲーム プラットフォームでは、分散トレースによってユーザーの位置とユーザー データを追跡し、システムに保存します。ユーザーのリクエストに従い、それに関連するすべての必要なデータを記録します。この機能により、プラットフォームはアーキテクチャ内でエンドツーエンドの可視性を実現します。
  • サービスの依存関係に関する情報を提供します。
  • マイクロサービス環境内の各サービスは、ユーザー要求を完了するために相互に依存します。ここで、ゲーマーがステータスを更新すると、アーキテクチャ内の中央サーバーとその他のさまざまな位置ベースのノードにアクセスして他のゲーマーと通信し、このタスクを完了します。したがって、各サービス リクエストでは、他の関連サービスに関する情報が提供されます。
  • システム障害が発生した場合でも回復力を確保します。
  • 無効なユーザー資格情報が原因で失敗するゲーム プラットフォームのアプリケーションの購入機能について考えてみましょう。分散トレースを使用すると、開発者はさまざまなログを検索することなく、支払いポータルの API プロセス トレースを簡単に識別して問題を修正できます。すべてのトランザクションを必要なネットワークデータとともに記録することで、多くの時間を節約できます。

3. 分散トレースはどのように機能しますか?

ユーザーリクエスト中に分散トレースを実行する方法を見る前に、いくつかの基本的な用語を理解しておきましょう。

  • リクエスト: この用語は、さまざまなクラウド コンピューティング アプリケーション、マイクロサービス、およびその他の機能が相互に通信する方法を示します。
  • スパン: スパンは、サービスが特定の時間間隔で何を実行するかと、それに対応するメタデータをサービスに伝えます。これらはトレースの基本的な構成要素です。
  • トレース: 単一または複数のスパンで構成されるエンドツーエンドのユーザー リクエストを意味します。
  • タグ: これらは、各スパンに関連付けられた情報 (メタデータ) であり (パスに沿って記録されます)、スパン中に実行された操作の詳細な概要を提供します。

一方、トレースは、関連付けられたタグを持つ一連のスパンで構成されます。

以下では、分散トレースがリクエストを処理する方法について説明します。

(1)分散トレースのプロセスは、エンドユーザーがシステムやアプリケーションと対話し始めたときに始まります。たとえば、新しいユーザーがインタラクティブなモバイル ゲーム プラットフォームに登録する場合、電子メール ID を入力してパスワードを設定する必要があります。

(2)各ユーザーリクエストはHTTPリクエストに変換され、固有のトラッキングID(グローバルID)が割り当てられます。ここで、ユーザーデータが抽出され、一意の ID が割り当てられます。

(3)リクエストがホストシステムを通過する際、各システム操作はスパンとみなされ、サブ操作はサブスパンとみなされる。トレースの最初のスパンはルート スパンとも呼ばれます。この例では、電子メール ID がルート スパンになり、パスワードが子スパンになります。

(4)各ユーザー操作には3つのIDが付与されます。

  • 追跡IDをリクエストする、
  • ルートスパンID、
  • サブスパン ID。

(5)エンドユーザーからの各固有のリクエスト(スパン)には、リクエストの処理に関するすべての情報(タグ)がエンコードされます。これらのデータには以下が含まれます。

  • ユーザーリクエストを処理するマイクロサービスの名前とアドレス。
  • リクエスト実行時のプロセス関連のイベントとログのシナリオ。
  • リクエスト タグをクエリおよびフィルター処理し、セッション ID、データベース ホスト、HTTP メソッド、およびその他のさまざまなキー識別子によってリクエストを示します。
  • リクエストの処理中にシステムで障害が発生した場合のエラー メッセージとスタック トレースに関する情報。
  • これで、処理されたすべてのデータに、ソースから宛先までのパスの追跡に関する関連情報を含むグローバル ID が添付されます。
  • 最後に、ユーザーが要求した旅行中に追跡されたすべての情報は、対応するデータ ストレージ 施設に保存されます。このゲーム プラットフォームでは、データは将来の参照用にバックエンド サーバーのデータベース層に保存されます。

4. 分散トレースツールの種類

さらに、アーキテクチャ間で分散トレースを実行するためのツールがあり、これは次の 3 つのサブカテゴリに分類できます。

(1)コード追跡ツール:コンピュータプログラム(コード)の実行中の追跡。これらのツールは、コードの各行、宣言された変数、使用された条件文、反復された関数を追跡し、最終的にコードの期待される出力を提供するのに役立ちます。これらはコード分析や診断の目的に非常に役立ちます。コード トレース ツールの例としては、OpenTracing、OpenZipkin、Appdash などがあります。

(2)データ追跡ツール:追跡は、ソースシステムを使用して主要データ要素(CDE)またはテレメトリデータの検証中に実行され、統計的プロセス制御(SPC)手法を使用して監視されます。データ追跡ツールの例としては、Datadog、Jaeger、New Relic、Dynatrace、Lightstep などがあります。

(3)プログラム(プロセス)追跡ツール:アプリケーション実行中の追跡操作を確立する。実行された命令のインデックスと実行中に参照されたデータのトレースが含まれます。これらは、開発者がデバッグの目的で頻繁に使用します。これらのツールの例としては、Strace、Ltrace、Opensnoop、Valgrind Lackey などがあります。

インフラストラクチャの分散トレースを開始するにはどうすればよいですか?

以下は、マイクロサービス アーキテクチャで分散トレースを開始するのに役立つリンクの一覧です。

  • アーキテクチャに分散トレースを実装するには、「OpenTelemetry (OpenTracing + OpenCensus)」の手順に従います。
  • Docker 上でネイティブに Jaeger を実行している組織は、Jaeger のドキュメントに記載されている手順に従うことができます。
  • Java または Docker を使用してインフラストラクチャを構成する場合は、関連する手順に従って、インフラストラクチャに OpenZipkin を適用します。
  • マイクロサービス アーキテクチャに分散トレース パターンを適用するには、「分散トレース パターン」を参照してください。
  • IBM Garage アプローチなどのマイクロサービス ベースの Web アプリケーション全体に分散トレースを実装します。
  • ネットワーク パスに沿ってシステム要求をトレースし、システムが期待どおりに動作しない理由を理解するには、分散トレース ガイドを理解する必要があります。
  • 分散トレースを使用したマイクロサービス アーキテクチャとその動作を理解するには、分散トレースを使用したマイクロサービスを理解する必要があります。

したがって、上記の戦略を実行または実践することで、分散トレース システムをあらゆるマイクロサービス アーキテクチャに実装できます。

分散トレースがますます採用されるようになると、いくつかの課題も生じます。信頼性を維持するには、ベスト プラクティスを維持しながらこれらの機能を実装する必要があります。

マイクロサービス アーキテクチャで分散トレースを採用するためのベスト プラクティス:

  • エンドツーエンドの計測を実装し、すべての受信および送信サービス呼び出しのトレースを記録します。
  • レイテンシ、トラフィック、エラー、飽和度 (使用率) などの SRE シグナルと RED (応答、エラー、期間) メトリックに焦点を当てて、すべてのシステム トレースをログに記録しながらそれらにアラートを設定し、期間メトリックに焦点を当ててシステムの動作を調査します。
  • 常に OpenTelemetry (OpenTracing + OpenCensus) 標準化に従い、採用したツールが世界標準を満たしていることを確認します。
  • 将来の参照用に、カスタマイズされたビジネス メトリックと追跡範囲をすべて記録します。

結論は

分散トレースは、マイクロサービス アーキテクチャを監視するための効果的な手法です。ネットワーク パスに関するより正確なデータと情報を提供します。実装の課題は、標準化された分散トレース ツールと SRE 信号メトリックのエンドツーエンドの計測を採用することで克服できます。

原題: マイクロサービス アーキテクチャでの分散トレースの使用、著者: Biju Chacko、Merlyn Shelley

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  クラウドネイティブ CI/CD フレームワーク Tekton の初体験

>>:  クラウドコンピューティングなしではモノのインターネットが成功できない理由

推薦する

ウェブサイトのコンテンツを更新するときに無駄なコンテンツの蓄積を避ける方法

ウェブサイトのコンテンツの更新は、SEO 最適化において重要な役割を果たします。検索エンジン最適化で...

profitserver: スペイン語の VPS、50% 割引、無制限のトラフィック、カスタム ISO、月額 2.88 ドルから

profitserver は、スペインのマドリードにある 16 番目のデータ センター VPS (サ...

ファーウェイ政府クラウドは呂梁のビッグデータ産業の発展をリードし、呂梁の経済変革を支援します

呂梁は、涼しく快適な気候、安定した地質構造、豊富な電力供給など、明らかな立地上の優位性を備えており、...

新しいサイトの過剰最適化を避ける方法

最近、著者が所有する 2 つの新しい Web サイトが降格されました。以前に公開された記事の中には、...

Baidu ImagesはGoogle Imagesに似せるために大幅に再設計されました

Baidu Fans (Baiduer.com.cn) によると、Baidu Pictures は ...

トレーニングウェブサイト運用ガイド: ページング戦略

タイトルにあるページネーションとは、記事一覧ページやカテゴリーページなどで、コンテンツが多すぎて 1...

Rexel China は、マルチチャネル戦略とデジタル変革を加速するために Informatica PIM システムを導入しました。

高品質の製品情報は、成功しているブランド、メーカー、販売業者、小売業者に決定的な利点をもたらし、収益...

内部リンクのnofollowは重みの配分を制御する

nofollow属性が導入された後、Matt Cutts氏は何度も、フォーラムやブログなどのコメント...

Baidu SEO の提案は本当にランキングの向上に役立ちますか?

数年前、Baiduが独自のSEO提案ツールをリリースし、それがBaidu Statisticsに付属...

クラウドコンピューティングが世界を変える

クラウド コンピューティングは、人間とテクノロジーの境界をなくすことで世界をどのように変えるのでしょ...

operavps: 米国住宅用 VPS (住宅用 IP/ホーム IP/ISP IP)、月額 24.99 ドルから、1Gbps 帯域幅/無制限トラフィック、Windows/Linux

Operavpsは2008年に設立され、主にVPS、RDP、独立サーバー事業を展開しています。データ...

良いタイトルはあなたのウェブサイトに一生役立つでしょう。ウェブサイトのタイトルを最適化するにはどうすればよいでしょうか?

ユーザーにウェブサイトを訪問してクリックしてもらうにはどうすればよいでしょうか。検索エンジンの最適化...

Amazon Web Services、13の新しい機械学習サービスと機能を発表

[51CTO.com クイック翻訳] Amazon の Amazon Web Services (A...