背景
不同于《编写代码的「八荣八耻」》,《稳定性「三十六计」》是应用于设计阶段的非手脚架方式的标准化.
在实际工作中, 通常会提倡给新人机会, 让他们自己去设计系统. 这时候如果没有一种标准化的 check 机制, 会影响整个系统的质量.《稳定性「三十六计」》在实际项目中, 我们作为设计阶段的 checklist 来用. 实现了从有重大变更允许出小错到架构演进过程中周可用性不低于 3 个 9.
同时, 我们是一个做容器化的团队. 不断实践和总结好的方法并且推广这些方法, 让所有的部门都更标准化的设计和开发更利于容器发挥自身的优势, 为打造更稳定, 更易用, 更省钱的 HULK 系统打下基础.
WHAT
下面是我们容器的剩余资源历史记录功能在设计阶段的稳定性「三十六计」checklist.
WHY
设计有很多好的原则: 避免过渡设计, 防止破窗...... 但是对于新人来说落地困难. 稳定性「三十六计」给出了具体的设计方法, 使用这种方法可以达到下面的效果:
少就是多
少就是多是稳定性的重要原则. 稳定性「三十六计」里通过消除临时, 链路精简, 负代码行, 最小 API, 避免重复, 拒绝环路六项更可量化的措施来保证.
可扩展性
无状态化, 幂等设计, 读写分离, 容量冗余四个方法给负载均衡, 避免单点提供了解决方案, 使得系统可 X 轴, Y 轴扩展.
内聚解耦
配额管控, 严格准入两个方法实际上将一个功能拆分成了两个阶段. 先 check 再 do. 异步通信将一个过程拆分成两个过程, 降低了两个过程之间的相互作用.
防止雪崩
超流熔断, 禁止批量, 超时重试, 分级管理, 快速失败五个方法有效避免问题逻辑对其他逻辑引起的干扰, 防止问题扩大.
提高性能
缓存为王, 无锁并发, 梯级存查, 流量缓存, 本地代理, 避免串联六个方法也是业务比较流行的提高性能的错误.
故障运维
兜底策略, 先验确保, 前置加载三个方法将问题控制在前面的阶段. 开关上线, 灰度升级, 应急预案, 支持回滚四个方法在产生问题时给出了有效的应急解决措施.
对于一些新人来说, 划分边界和领域是相对困难的事情. 稳定性「三十六计」提供了设计思路. 同时, 我们不重复造轮子, 设计时引用了很多基础设施时, 很多稳定性「三十六计」的内容是通过第三方来保证的, 而这个 checklist 有效的促使设计者进行反向设计, 使用的时候也去了解其原理.
HOW
请参考《稳定性「三十六计」》系列文章.
稳定性「三十六计」- 配额管控
设置默认的超时和重试是一个基础设施的基本素养
稳定性「三十六计」- 无状态化
来源: https://www.cnblogs.com/xiexj/p/10725806.html