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

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

[[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 の初体験

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

推薦する

良いニュースは遠くまで広まらないが、悪いニュースは広く広まる。ウェブサイトの人気を高める近道

アメリカの企業であるホーメルフーズは、長年にわたり、苦悩と怒り、そして無力感に苛まれてきました。同社...

ウェブサイトの基盤と検索エンジンのアルゴリズムを相互に補完させる方法について説明します

Baidu におけるウェブサイトのランキングの変動は、多くのウェブマスターにとって頭痛の種となってい...

クラウド ストレージ: 企業はどのようにデータ ストレージの拡張を計画すればよいでしょうか?

企業が発展するにつれて、ビジネスの変化により IT 設備に大きな負担がかかる可能性があり、また、ビジ...

キーワードを深く理解し、キーワードの価値を深く理解する

検索マーケティングを検索エンジンマーケティングと狭く捉えないでください。実は、アリババもタオバオも検...

bluehost - ドメインの新規登録または移管に 5.99 ドル

Bluehost は EIG に買収されて以来大きな動きはなく、データセンターも以前ほど良くないよう...

ホストに「ログインに失敗しました」と表示されたり、ページのクリックが応答しない場合の解決策

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています一部のネッ...

リベート ウェブサイトは、一連のクラッシュを経験しています。開発のボトルネックを打破するには、テクノロジーとポジショニングが必要です。

エコノミック・ボイスによると、リベート・ウェブサイトはCPS電子商取引促進計画に基づくビジネスモデル...

App.Net: 理想から現実までには長い道のり

[コアヒント] 資金調達の成功は、App.Net にとって最初のステップにすぎません。製品の特性上、...

SEOコンテンツ作成

最も基本的なルールに基づいて、検索エンジンはユーザーがコンテンツを発見できるようにするために存在しま...

イノベーションはウェブサイトの魂です

今日のウェブマスターは皆、ウェブサイトのコア価値を反映する必要があることを知っています。そして、ウェ...

hostodo: ラスベガス KVM+NVMe シリーズ VPS - フリー ダブル ハードディスク + 大容量トラフィック + フリー DirectAdmin 認証

Hostodo は誰もがよく知っているビジネスのはずです。同社は常に低価格の VPS を提供してきま...

データパケット: US VPS、月額 3.46 ドル、1G メモリ/16 コア/50g NVMe/30T トラフィック

datapacket™ ( Data Packet Networks LLC ) は、米国テキサス州...

Huawei Cloud FusionInsightが第1位にランクイン、顧客のデジタル変革のための強固なデータ基盤を提供

最近、工業情報化部は返答書を発表し、次のステップは「ビッグデータ産業発展第14次5カ年計画」の公布を...

クラウドコンピューティングの PAAS と SAAS の違いを 1 つの記事で理解する

クラウド コンピューティングが非常に普及している今日、クラウド ホストをレンタルするだけでクラウド ...

この叱責とあの叱責の違いは何か?広範囲にわたるSEOコンセプトを早急に最適化する必要がある

最近、多くのウェブマスターや SEO 担当者がオンラインで Baidu を非難しています。しかし、注...