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的比例。

中心性之间性高的节点在许多其他对的路径上。 如果它慢下来,许多流量就会慢下来。如果它失败,许多流量就会中断。

架构阅读: 高中心性之间性节点是每次架构审查都应该额外关注的对象。它们是瓶颈,单点故障,并且在一个方面是容量关键的组件。它们往往是:

- DNS提供者(在每个客户端与每个服务之间)

- -ingress代理(在每个客户端与每个后端之间)

- 主数据库(在每个后端与每个读操作之间)

- 认证服务(在每个用户与每个授权操作之间)

检测无需测量: 图的拓扑结构可以识别出高中心性之间性节点。你不需要流量数据;你需要的是架构图。一个节点如果在许多其他对的路径上,它是结构上关键的。

运营后果: 高中心性之间性节点应得到不成比例的投资,包括(1)容量预留,(2)冗余,(3)可观察性和(4)事件响应playbooks。

中心性之间性:突出显示的节点位于最短路径的多数上

一个系统具有:100个外部客户端->1个DNS->1个CDN供应商->3个反向代理->12个后端副本->{1个主数据库,2个缓存节点,5个外部API端点}。根据中心性之间性对这些节点类别进行排名(最高排名在前),并解释为什么前两名值得特别关注。

最小切割将最小部分分开

最小切割定理简明术语

在两个节点之间的图的最小切割 = 你必须移除的最小数量的边(或节点),以将它们分开。

操作性阅读: 最小割限制了最坏情况下的爆炸半径。如果 '客户' 和 '数据库' 之间的最小割是 1 边(一个单独的代理),那么失去那个边就会断开所有客户与数据库的连接。如果最小割是 5,你需要同时失去 5 个组件才能完全断开;糟糕运气,但有界。

为爆炸半径设计: 在每个重要边界处增加最小割。多个代理;多个缓存节点;DCs 之间的多条网络路径。每次添加都提高最小割值 1。

图表模式在图形术语中的应用: 将资源划分为不相互共享最小割的独立子图。一个子图内的故障无法传播到其他子图,因为边不存在。

直径设置故障传播距离

图直径 = 任意两个节点之间的最长最短路径。

故障传播: 当一个节点失败并尝试将流量回退时,它们会触摸上游节点,直到距离直径的距离。一个直径为 3 的系统(客户 -> 代理 -> 后端 -> DB)意味着 DB 故障会影响 3 层上游层次的重试风暴。

启示: 直径越短,故障隔离速度越快,但也意味着节点集中度越高。每个设计都有其权衡。

最小割作为爆炸半径的界限;直径作为传播距离

计算真实架构的最小割

一个架构:1 个 DNS,1 个 CDN,3 个反向代理,12 个后端副本,1 个 DB 主库。

计算(或估计)三个边界处的最小割:(1)外部客户与反向代理层之间;(2)反向代理层与后端层之间;(3)后端层与 DB 主库之间。对于每个边界,名称失败时发生的事情。

通过图形度量进行故障模式审计

综合

你现在可以识别出高之间性节点,计算每个边界的最小割,并通过直径估算故障传播距离。

应用所有三个。

系统:50个客户端终端 -> 1个DNS -> 2个CDN POPs -> 4个反向代理 -> 16个后端副本 -> {DB集群(1个主节点+2个从节点),Redis集群(5个节点),3个外部API。}

审计系统:(1)名称最高的之间性节点;(2)计算最担忧的边界处的最小割;(3)提出两个特定的架构变化(每个提高最小割,并以界定其强化边界)。

陪衬笔记

陪衬笔记

这个几何学的课堂通过图形指标(边界性、最小割、直径)重新阐述了失效模式与爆炸半径的主要课堂。

最后一个陪衦,geometry_of_observability_and_capacity,讨论了CDN POP抓取范围的Voronoi单元,延迟三角形的光速底部,以及代理层重新审查的排队曲线。

很棒。