この記事は、陳建宇氏が執筆したWeChatパブリックアカウント「私の脳は揚げ魚です」から転載したものです。この記事を転載する場合は、Nao Nao Jin Jian Yu Leの公開アカウントまでご連絡ください。 「マイクロサービス戦争」は、マイクロサービス設計の考え方に関する一連のトピックであり、主にマイクロサービス後に発生するいくつかの矛盾/衝突に焦点を当てており、特定の知識ポイントについての詳細な議論は含まれていません。ご質問やご提案がございましたら、お気軽にお問い合わせください。 背景 マイクロサービス戦争、つまり連鎖的な障害と雪崩の P0 レベルのイベントを経験した後は、ただ手を広げて、葛優のように横たわるだけです。自己レビューを開始し、このトラブルシューティングの経験について考えてみましょう。まだインフラが整っていないため、顧客からのフィードバックを受け取った後、エラー ログを通じて問題を確認します。 ただし、エラーが連鎖すると、生成されるエラー ログが多すぎます。さまざまなサービスとさまざまなリンクがほぼ一緒に圧縮されています。修復時間は主にログをめくる作業に費やされます。比較的有効なエラー情報を見つけるには数ページかかります。 次回同様の問題が発生した場合、MTTR が長すぎて 4 つの 9 がすぐに使い果たされるため、ひどいことになります。このとき、業界でよく話題になる強力なツール、つまり「分散リンク トラッキング システム」を思い浮かべます。大まかに言えば、さまざまなアプリケーションの呼び出し依存関係を確認できます。 これらの中で最も有名なのは、Google Dapper の論文で紹介された Dapper です。 Google は、異なるチーム、異なる言語、異なるモジュールが、異なるサーバーや異なるデータ センターに展開されることで生じるソフトウェアの複雑さ (分析や特定が困難) を解決するために、分散追跡システムを構築しました。 それ以来、業界は分散リンクに刺激を受け、啓発され始めました。現在有名な分散リンク追跡システムの多くは、Google Dapper の論文に基づいて開発されており、その基本原理とアーキテクチャは似ています。これに興味があるなら、Google Dapper を詳しく調べてみると非常に興味深いです。 (Google Dapper にはトラッキング ツリーとスパンの概念があります) 選択?彼らは何ですか? リンク トラッキングを行う場合は、分散リンク トラッキング システムとしてオープン ソース製品を選択する必要があります。完全に新しいものを作成することはまずありません。最も重要なことは、まずビジネス目標を達成することです。そこでネットで検索してみたところ、以下のような商品が多数見つかりました。
ちょっと検索してみると、そういった製品はたくさんあることがわかり、大手企業では独自の内部リンクトラッキングシステムを導入しているところもあるそうで、非常に困った事態になっています。これらはすべて Google Dapper から進化したものですが、それらの本質的な違いは何でしょうか?どのようにしてこれほど多くの新製品が生まれるのでしょうか? イェーガー まず、Uber が開発した Jaeger を見てみましょう。 Jaeger は現在、Cloud Native Computing Foundation (CNCF) によってホストされており、CNCF の 7 番目のトップレベル プロジェクトです (2019 年 10 月に卒業)。
Jaeger の各コンポーネントの機能を理解した後、全体的なアーキテクチャにおけるデータ フローに主に焦点を当てます。 イェーガーは非常に古典的な建築です。クライアントはリンク情報をエージェントにアクティブに送信し、エージェントはそれをコレクターに報告し、キューを通過して最終的にストレージに格納されます。その後、別の視覚管理バックグラウンドで表示および分析できます。 より実用的なアプローチは、レポート=》収集=》保存=》分析のプロセスを標準化することです。そして、Jaeger と Zipkin はアーキテクチャが似ていることがわかります。
時代から判断すると、イェーガーはジプキンより4年遅いことになります。それは車輪の再発明なのでしょうか?読んでみると、Jaeger をやる主な理由は次のとおりです。 当時、Zipkin にスパンを送信する唯一の方法は Scribe を使用することであり、Zipkin でサポートされている唯一の高性能データ ストアは Cassandra でした。 Uber は当時どちらの技術も経験がなかったため、いくつかのカスタム コンポーネントと Zipkin UI を組み合わせて完全な追跡システムを形成するバックエンドを独自に構築することを選択しました。 詳細については、Uber Engineering の「Evolving Distributed Tracing」をお読みください。 アリ・ホークアイ リンク追跡システムのもう 1 つの代表的なものは、次の図に示すように、Alibaba の Eagle Eye や Didi のトレースなど、主にログとストリーム コンピューティングに基づいています。 詳細については、カンファレンスで共有された「Alibaba Eagle Eye テクノロジーの解読」および「異種システムのリンク トレーシング - Didi Trace の実践」をご覧ください。ここでは詳細には触れません。リンクトレーシングの実装に興味がある方や不安な方におすすめです。 要約する ほとんどの人は、最初にシステムを選択するときに、親和性の強いトレース システムを選択します。これは、Jaeger が Go に属し、Zipkin と Skywalking が主に Java ベースであるのと同じです。これら 3 つはすべて OpenTracing と完全に互換性がありますが、アーキテクチャは多少異なります。これらはすべて Google Dapper をベースにしているため、サポートされる基本機能とクエリ ページのエレガントさが非常に重要です。 しかし、すでに N 個のオリジナルシステムが存在するため、新しいリンク トラッキング システムに直接接続したい場合は、依然として非常に面倒です。アクセスの本来の目的は、新しいシステムだけでなく、元のシステムのトラブルシューティング/場所の問題を解決することである必要があるためです。そのため、アクセスという観点だけで考えると、既存のオープンソース追跡システムを利用する人は(履歴負債が大きくない限り)ほとんどおらず、データ量も非常に大きくなる可能性があります。 したがって、既存の方法を変更してデータをクリーンアップしてからリンク トラッキングを行うのが一般的です。ログは、特定のデータをクリーンアップし、新しい分析システムを形成し、内部ホイールを再構築するための良い出発点となることがよくあります。 さらに、過去 2 年間では、ServiceMesh に基づく「非侵入型」リンク トラッキングも人気が高まっており、有望な方向性であると思われます。その代表作の一つであるIstioはCNCFのJaegerを利用しており、JaegerはZipkinとも互換性があります。この点では、イェーガーが勝利します。 |
>>: テンセントクラウド小威「AIアシスタント」は複数のアプリケーションを備え、業界のアップグレードのための新しいAIドライバーです
今日、熱心なウェブマスターが、A5 Webmaster Network の SEO 部門に、Baid...
調査によると、モバイルデバイスの普及が進むにつれて、モバイルインターネットでのユーザーの検索頻度は絶...
リモート サービスの多様性により、「サービス検出」の概念に対する二重の理解が生まれます。まず、UDD...
目次1. 分岐規則2. バージョン番号の指定2.1 メジャーバージョン番号(最初のバージョン番号) ...
一般ネットユーザーのインターネットアクセスレベルの向上、中小企業のネットワーク推進の普及、電子商取引...
データ分析は、多くの組織がクラウド コンピューティング プラットフォーム上で実行する主要なコンピュー...
業界特化型ビジネスクラウドソフトウェアの大手グローバルプロバイダーであるInforは本日、Koch ...
友人の中には、Guardian Yuan Kunによくアドバイスを求める人がいます。当社も公式サイト...
市場シェアを獲得することが、現代のビジネスリーダーにとって唯一の動機ではなくなりました。企業が厳しい...
dwidc (Daiwang Data) は現在、湖北電信高防御 VPS、湖北電信高防御独立サーバー...
最近の人々は、自分で考えるのを怠けています。 SEO をしている友人がいます。彼女は、最適化したウェ...
1 か月前、SEO は記事を書いて外部リンクを貼るだけの非常に簡単なものだと思っていました。少なくと...
[51CTO.com からのオリジナル記事] 最初から、さまざまなマイクロサービスがさまざまな方法で...
土曜日、私は朝早くからウェブサイトのコンテンツについての記事を書きたいと思いました。なぜなら、私のウ...
ブログの外部リンクは最も一般的で最もよく使用される外部リンクですが、ブログの外部リンクを単純に理解し...