入境&対外境の独立したセット
ネットワークアーキテクチャにおけるバイパートITEグラフ
バイパートITEグラフは、ノードを二つのセットに分けることができ、セット間の辺のみが許可される(セット内での辺は許可されない)。
ネットワークの境界は、自然なバイパートITE構造を持ちます:
- イングレス側: 一方の側に外部クライアント、もう一方の側に内部サービス。辺: 外部リクエストの入境、内部レスポンスの出境。
- エグレス側: 一方の側に内部サービス、もう一方の側に外部目的地。辺: 内部サービスが対外呼び出しを行う、外部レスポンスの戻り境。
非対称性:
- イングレス: ソースセットは無限大(インターネット上の誰でも)。目的地セットは小さい(数えるだけのサービス)。容量はユーザー数に比例します。
- エグレス: ソースセットは小さい(数えるだけの内部サービス)。目的地セットは有限(知っている数のパートナー)。容量は内部活動に比例します。
単一ボックス設計は、二つのバイパートITE半分を一つのノードを通じてカollapseします。 そのノードは、外部(イングレス)からファンインを受けるだけでなく、内部(エグレスの逆方向)からもファンインを受ける。ノードの負荷は、両方の側の合計です。
分割設計は、二つのバイパートITE半分を別々のノードで保持します。各ノードは、適切なスケーリング軸を持つ一つの役割を処理します。
分裂する前に:カット・バーテックスはどこでも消滅
単一ボックス:すべてを管理する1つのノード
イングレス+エグレスの前には、外部/内部の各ペア全てとプロキシボックスが接続されていました。グラフの視点では、それは高順序のカットバーティックスです:その削除で、すべてのクライアントがすべてのバックエンドから、すべての内部サービスがすべての外部パートナーから切断されます。
このノードの接続性は1です。 このノード(プロセスクラッシュ、ネットワークの乱れ、OOMキル)を破壊する何らかの事象があれば、依存するすべてのパスが切断されます。
スプリット後:軽量なノードでカットバーティックスが置き換えられます
イングレス+エグレスに分割すると、1つから2つのグラフノードになります。 それぞれのノードは、元々1つに存在したバイパーティテハーフにのみ存在します:
- イングレスノード:外部クライアントから内部サービスへのバイパーティテハーフのカットバーティックス
- エグレスノード:内部サービスからパートナーのバイパーティテハーフのカットバーティックス
ハープリンロープは幾何学的に消滅します:単一ボックスのグラフでは、内部サービスがパブリックアドレスを通じて外部向けのサービスにアクセスしようとしたとき、同じノードを2度通行する必要がありました(エグレス役を通じて外に、イングレス役を通じて内に)。 スプリットグラフでは、トラバースが2つの異なるノードに到達します。
**各側の接続性は依然として1ですが、2つのカットバーティックスを独立して置き換えることができます。2番目のイングレスプロキシを追加することで、イングレス側の接続性は2になりますが、エグレス側には変更がありません。
各側のリプリカシオン
生産的なフィートは通常、2+のイングレスプロキシ(HA)および2+のエグレスプロキシ(HA)を実行します。 各側は独立して接続性2を達成します。 必要に応じて各側で容量を水平方向に拡大します。
ネットワーク分割耐性
シンセシス
ネットワークアーキテクチャをバイパーティテグラフとして読むことができます、カットバーテックスを特定し、半分ごとに接続性を追跡することができます。
これをネットワーク分割に適用します。
ネットワーク分割はグラフカットです:分割を越えるエッジが失敗します;両側はそれぞれが操作を続けますが、相互に達することはできません。
地理的に分散されたシステムは、2つのデータセンターがあり、それらは単一のインターディーシェルリンクで接続されています。イングレストラフィックはDC1を通じて入場し、エグレスはDC1を通じて外部パートナーに送られ、内部サービスの一部はDC2に存在し、状態操作のためにDC1に戻ります。
コンパニオンノート
コンパニオンノート
このジオメトリーオブレッスンを、イングレス&エグレス分離のメインレッスンをバイパーティテグラフ解析として再構築します。
次のコンパニオン、geometry_of_failure_modes_and_blast_radiusは、ボトルネックノードを特定するビトウェニスセントラリティ(間接的中央性)と、爆発半径の上限を求めるミンカットを導出します。
よくできました。