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

un

ゲスト
1 / ?

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

中心性ベトウィネス

グラフ内の各ペアのノード間のショートパスが存在します。中心性ベトウィネスのノードN = Nを通過するショートパスの全体の割合。

高中心性のノードは、他のペアの多くにパスがあります。 もし遅くなるなら、多くのフローが遅くなるでしょう。もし失敗があれば、多くのフローが破損します。

アーキテクチャ読みのための高中心性: 高い中心性を持つノードは、すべてのアーキテクチャレビューで特別な注意を払う必要があります。彼らはボトルネック、SPOF(シングル・ポイント・オブ・フィール)および容量が重要な要素です。一般的に、次の傾向があります:

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

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

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

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

測定なしの検出: グラフのトポロジだけで高中心性のノードを特定できます。トラフィックデータは必要ありません。アーキテクチャのダイアグラムが必要です。多くのペアの間でノードが位置している場合、構造的に重要です。

運用の影響: 高中心性のノードは、(1)容量の余裕、(2)冗長性、(3)観測性および(4)インシデント対応プレイブックに特別な投資が必要です。

中心性ベトウィネス:ハイライトされたノードが最も多くのショートパスを通過しています

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

最小切断は、最小のスライスを切断します

最小切断の定理の簡単な説明

2つのノード間のグラフの最小切断は、最小のエッジ(またはノード)を削除することで切断されます。

Operational reading: 最小カットで最悪の場合の爆発半径を抑えます。'クライアント'と'DB'の間の最小カットが1エッジ(単一のプロキシ)である場合、そのエッジを失うとすべてのクライアントがDBから切断されます。最小カットが5の場合、完全に切断するために同時に5つのコンポーネントを失う必要があります。不運ですが、限定的です。

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

グラフのbulkheadパターン: リソースを別のサブグラフに分割し、互いに最小カットを共有しないようにします。1つのサブグラフ内での失敗が他のものに伝播できないのは、エッジが存在しないためです。

直径が失敗伝播距離を設定します

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

失敗伝播: ノードが失敗し、再試行が流れ戻ると、直径距離の距離のアップストリームノードに触れることができます。直径が3のシステム(クライアント -> プロキシ -> バックエンド -> DB)では、DBの失敗が3つのアップストリームレイヤーに再試行の嵐を引き起こします。

意味: 直径が短いほど、失敗の拡大を早く抑えることができますが、ノードの集中が増えるというトレードオフがあります。各設計には、そのトレードオフがあります。

最小カットで爆発半径を抑える; 直径で伝播距離を設定する

実際のアーキテクチャで最小カットを計算する

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

次の3つの境界で最小カットを計算(または推定)し、各々で失敗がどのようなものになるか名付けてください。 (1) 外部クライアントとリバースプロキシ層の間 (2) リバースプロキシ層とバックエンド層の間 (3) バックエンド層とDBプライマリの間

グラフ指標を通じた失敗モードの審査

シンセシス

今では、高betweennessを持つノードを特定できます、各境界で最小カットを計算し、直径で失敗伝播距離を推定できます。

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

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

システムを検証し、 (1) 最高のbetweennessを持つノードを名付ける (2) 最も懸念される境界で最小カットを計算し (3) 最低2つの特定のアーキテクチャの変更を提案し(それぞれ最小カットを上げる;それぞれ、どれがどれを強化するか名付ける),

コンパニオンノート

コンパニオンノート

この幾何学のレッスンは、Betweenness、min-cut、diameterを通じて、Failure Modes & Blast Radiusのメインレッスンを再構成します。

geometry_of_observability_and_capacityは、CDN POPのキャッチメントのVoronoi細胞、latency三角形の光速のフロア、およびプロキシ層での再訪問されたキューイング曲線を扱います。

素晴らしいです。