在流量到達之前識別瓶頸節點
間接性中心性
對於圖形中的每一對節點,都有一條最短路徑將其連接起來。節點N的間接性中心性 = 所有最短路徑中經過N的比例。
具有高間接性中心性的節點在很多其他對的路徑上。 如果它慢 down,很多流量也會慢 down。如果它失效,很多流量將中斷。
建築學閱讀:高間接性中心性節點是每次建築審查都應該特別關注的。它們是瓶頸、SPOFs和在一個中具有容量關鍵元件。它們傾向於:
- DNS提供者(在每個客戶與每個服務之間)
- -ingress代理(在每個客戶與每個後端之間)
- 数据库主(在每個後端與每次讀取之間)
- 身份验证服务(在每个用户与每个授权操作之间)
偵測而無需測量:圖形拓扑學本身識別高間接性中心性節點。你不需要流量數據;你需要建築圖。一個位於很多其他對之間的節點在結構上是關鍵的。
運營結果:高間接性中心性節點應該得到不成比例的投資(1)容量頭間(2)冗餘(3)可觀察性和(4)事件響應手冊。
最小切割將最小切片斷開
最小切割定理簡單說明
在圖形中的兩個節點之間的最小切割 = 必須移除以斷開他們的最小數目邊(或節點)。
運作閾值: 最小切割界限限制了最壞情況下的爆炸半徑。如果 '客戶' 與 '數據庫' 之間的最小切割界限為 1 邊(單個代理),則失去該邊將使所有客戶與數據庫斷開。如果最小切割界限為 5,您需要同時失去 5 個組件才能完全斷開;糟糕,但有界限。
為爆炸半徑設計: 在每個重要邊界處增加最小切割界限。多個代理;多個緩存節點;DC 之間的多個網絡路徑。每次添加都會提高最小切割界限 1。
圖形術語中的防水設計: 將資源分隔為不同子圖形,彼此之間沒有最小切割界限。一個子圖形內的失敗無法傳播到其他人,因為邊不存在。
直徑集定義失效傳播距離
圖形直徑 = 任意兩個節點之間的最長最短路徑。
失效傳播: 當節點失效並將流量回退時,它們將觸摸上游節點,直到距離直徑為遠。一個直徑為 3 的系統(客戶 -> 代理 -> 后端 -> DB)意味著數據庫失效將影響 3 個上游層次在回退風暴中。
意義: 直徑越短,失效隔離速度越快,但也意味著節點濃度越高。每個設計都有其取捨。
為實際架構計算最小切割界限
一架構:1 DNS,1 CDN,3 反向代理,12 后端副本,1 DB 主。
通過圖形指標進行失效模式審核
合成
您現在可以識別出高之間ness 的節點,對每個邊界進行最小切割界限計算,並通過直徑估計失效傳播距離。
應用所有三個。
A system: 50 customer endpoints -> 1 DNS -> 2 CDN POPs -> 4 反向代理 -> 16 后端副本 -> { 数据库集群 (1 主 + 2 备), Redis 集群 (5 节点), 3 外部 API }.
陪伴笔记
陪伴笔记
这个几何学的课堂通过图形指标 (之间性, 最小割, 直径) 重新阐述了 Failure Modes & Blast Radius 的主要课堂。
最后一个陪伴, geometry_of_observability_and_capacity, 处理 CDN PoP 捕获的 Voronoi 细胞, 延迟三角形的光速地板, 以及在代理层重新访问队列曲线。
很好。