この記事は、陳建宇氏が執筆した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ドライバーです
最近、UCloud は新世代の SSD クラウド ハード ドライブを発売しました。最新の NVMe ...
インターネットの普及により、オンライン マーケティングは写真業界全体の発展を変えました。そこで、私自...
寒い冬の日に、慣れない環境に行くと、水温調整の問題によく遭遇します。大抵の筋書きは次のようになります...
地域フォーラムとして、ローカルフォーラムは強い地域特性を持ち、特定の地域市場におけるウェブマスターの...
ウェブサイトをランク付けするのは実はとても簡単です。現在、多くの新しいウェブサイトは、価値あるコンテ...
弊社の記者である呉偉群は、マイクロソフトが先日、3月15日からMSNメッセンジャーソフトウェアを正式...
[51CTO.comからのオリジナル記事] 5Gの登場により、モノのインターネット、自動運転車、AR...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています映画監督が...
2024年末までに評価額は2,808億米ドルに達すると予想されています。 2034 年までの 10 ...
サンディエゴ、データセンターはかなり良いですし、VPSもSSDを搭載していればかなり良いです! Re...
ルーマニアのホスティング プロバイダー hostsolutions からの最新ニュース: 大容量ハー...
周洪一氏は常に「被告」であり、その数と頻度はインターネット業界ではめったに匹敵しない。結局のところ、...
ウェブマスターなどのウェブサイト、特にSEO(検索エンジン最適化)に関する記事を公開してから長い時間...
2019年には、収益を生まないトラフィックはトラフィックではなくなり、プラットフォーム補助金による収...
まず最初に、真面目なことを言わせてください。以下の内容は初心者がブラックハット原則を学ぶためのもので...