English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ゲスト
1 / ?

ボトルネックノードはTRAFFICが到着する前に特定されます

ビトウィネネス中央性

グラフ内の各ペアのノード間には、最短パスが存在します。ノードNのビトウィネネス中央性は、Nを通るすべての最短パスの割合です。

ビトウィネネス中央性が高いノードは、他のペアの多くが通る場所にあります。もし遅くなったら、多くのフローが遅くなります。失敗した場合は、多くのフローが破損します。

アーキテクチャー読み方:ビトウィネネス中央性が高いノードは、すべてのアーキテクチャーレビューで特別な注意を払う必要があります。彼らはボトルネック、SPOF、そして1つにキャパシティークリティカルなコンポーネントです。彼らは一般的に

- DNSプロバイダー(クライアントとサービス間のすべて)

- イングレスプロキシ(クライアントとバックエンド間のすべて)

- データベースプライマリ(バックエンドとすべての読み取り間)

- 認証サービス(ユーザーと承認されたすべてのアクション間)

測定なくしてグラフトポロジーだけが、ビトウィネネス中央性が高いノードを特定します。TRAFFICデータが必要なく、アーキテクチャーディアグラムが必要です。多くのペアのノードが通る場所にあると、構造的に重要です。

オペレーショナルコンシークィンス:ビトウィネネス中央性が高いノードは、(1) キャパシティーヘッドルーム、(2) レドンダンシー、(3) オブザーバビリティ、および(4) インシデント対応プレイブックへの不均等な投資が必要です。

ビトウィネネス中央性:ハイライトされたノードが最短パスのほとんどを通っています

システムは以下の構成です:100の外部クライアント -> 1のDNS -> 1のCDNプロバイダー -> 3のリバースプロキシ -> 12のバックエンドレプリカ -> {1のDBプライマリ、2のキャッシュノード、5の外部APIエンドポイント}。これらのノードクラスをビトウィネネス中央性(最高から順位)でランク付けし、トップ2ランクが特別な注意を値する理由を説明してください。

最小のカットで最小のスライスが切断されます

Min-Cut Theoremの簡単な説明

グラフ内の2つのノード間のmin-cutは、どちらを断絶するために必要な最小のエッジ(またはノード)数です。

運用読み: min-cutが最悪の場合の爆発半径を制限します。'クライアント'と'DB'の間のmin-cutが1エッジ(単一のプロキシ)である場合、エッジを失うとすべてのクライアントがDBから切断されます。min-cutが5の場合、完全に切断するために同時に5つのコンポーネントを失う必要があります;不運ですが、制限されています。

爆発半径に対する設計: 重要な境界でmin-cutを増やす。複数のプロキシ;複数のキャッシュノード;DC間のネットワークパス。各追加でmin-cutが1上がります。

グラフの分水嶺パターン: リソースを別のサブグラフに分割し、互いにmin-cutを持たないようにします。1つのサブグラフ内での失敗は、エッジが存在しないため、他のものに伝播できません。

直径が設定する失敗伝播距離

グラフの直径 = 任意の2つのノード間の最長の最短パス。

失敗伝播: ノードが失敗し、再試行が戻ると、直径距離まで上流のノードに触れることがあります。直径3のシステム(クライアント→プロキシ→バックエンド→DB)では、DBの失敗が3つの上流レイヤーに影響を与える可能性のある再試行の嵐が発生します。

意義: 直径が短いほど失敗の収束が早くなりますが、同時にノードの集中度も高まります。各設計にはトレードオフがあります。

min-cutが爆発半径の境界;直径が伝播距離

実際のアーキテクチャでMin-Cutを計算する

アーキテクチャ:1つのDNS、1つのCDN、3つのリバースプロキシ、12つのバックエンドリプリカ、1つのDBプライマリ。

3つの境界でMin-Cutを計算(または推定)し、各境界で失敗が何が発生するかを名付けます。1つの境界(外部クライアントとリバースプロキシ層の間)、2つの境界(リバースプロキシ層とバックエンド層の間)、3つの境界(バックエンド層とDBプライマリの間)。

グラフメトリックを通じた失敗モードの審査

合成

今では、betweennessの高いノードを特定し、すべての境界でMin-Cutを計算し、直径を通じて失敗伝播距離を推定することができます。

すべて3つを適用します。

システム:50のクライアントエンドポイント -> 1つのDNS -> 2つのCDN POP -> 4つのリバースプロキシ -> 16のバックエンドレプリカ -> {DBクラスター(1つのプライマリ + 2つのスタンバイ)、Redisクラスター(5ノード)、3つの外部API}。

システムを審査し、1つ目の最高のbetweennessノードを名付ける、2つ目の最も懸念すべき境界でのMin-Cutを計算し、3つ目の特定のアーキテクチャ変更を提案(それぞれがMin-Cutを上げる、それぞれが強化する境界を名付ける)。

コンパニオンノート

コンパニオンノート

この幾何学的レッスンでは、Failure Modes & Blast Radiusのメインレッスンをグラフメトリック(Betweenness、min-cut、diameter)を通じて再構築しています。

最後のコンパニオン、geometry_of_observability_and_capacityは、CDN POPのキャッチメントのVoronoiセル、光速の床のlatency三角形、およびプロキシ階層でのキューイング曲線を再訪します。

よくできました。