この記事は、陳建宇氏が執筆した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ドライバーです
約 3 ~ 4 日前、pzea.com (別名 kvmla.pro) からシンガポール データ セン...
Krypt Data Center 傘下のクラウド サーバー ブランド「ion」は、KVM 仮想化、...
マルチクラウドは実際には IT 用語です。もちろん、現在ではパブリック クラウド、プライベート クラ...
Taobao の顧客プロモーションに関しては、多くの人が Baidu Knows を使用して製品や ...
多くの SaaS ベンダーからのレポートを見ると、ますます多くの IT スタッフが SaaS の調達...
6月28日の百度のKサイト取り締まり後、多くのウェブサイト所有者が影響を受けた可能性がある。タオバオ...
まず前提、つまり仮定があります...仕事があなたにとって悪夢であると仮定します...そうでない場合は...
キャンパス内を歩いていると、チラシを配ったり、果物、中古品の取引、宣伝、衣類などを売ったりしている人...
2012年10月26日夜22時15分、老狗の目の前で百度がKされ、私はそれを現場で捕まえた。「天津s...
SEO 担当者は、医療業界の競争が誰の目にも明らかであることを多かれ少なかれ知っているかもしれません...
私のリチャージカードを盗んだのは誰ですか?晨報96101ホットラインニュース(記者 岳一楽)「カード...
最初の段落は導入部と呼ぶべきでしょう。最近、ウェブマスターの間で最も話題になっているのは、Baidu...
「ハイキングに連れて行ってあげるよ」は他人をあざけるためによく使われるキャッチフレーズになった。 「...
ウェブサイトを作成することは難しくありませんが、ウェブページやビジネスに適したドメイン名を見つけるの...
12 月 22 日の夜、evad3rs は突然、iOS 7.x 用の完璧な脱獄ツール evasi0n...