背景

不同于《编写代码的「八荣八耻」》《稳定性「三十六计」》是应用于设计阶段的非手脚架方式的标准化。

在实际工作中,通常会提倡给新人机会,让他们自己去设计系统。这时候如果没有一种标准化的check机制,会影响整个系统的质量。《稳定性「三十六计」》在实际项目中,我们作为设计阶段的checklist来用。实现了从有重大变更允许出小错到架构演进过程中周可用性不低于3个9。

同时,我们是一个做容器化的团队。不断实践和总结好的方法并且推广这些方法,让所有的部门都更标准化的设计和开发更利于容器发挥自身的优势,为打造更稳定、更易用、更省钱的HULK系统打下基础。

 

WHAT

下面是我们容器的剩余资源历史记录功能在设计阶段的稳定性「三十六计」checklist.

 

WHY

设计有很多好的原则:避免过渡设计、防止破窗……但是对于新人来说落地困难。稳定性「三十六计」给出了具体的设计方法,使用这种方法可以达到下面的效果:

少就是多

少就是多是稳定性的重要原则。稳定性「三十六计」里通过消除临时、链路精简、负代码行、最小API、避免重复、拒绝环路六项更可量化的措施来保证。

 

可扩展性

无状态化、幂等设计、读写分离、容量冗余四个方法给负载均衡、避免单点提供了解决方案,使得系统可X轴、Y轴扩展。

内聚解耦

配额管控、严格准入两个方法实际上将一个功能拆分成了两个阶段。先check再do。异步通信将一个过程拆分成两个过程,降低了两个过程之间的相互作用。

防止雪崩

超流熔断、禁止批量、超时重试、分级管理、快速失败五个方法有效避免问题逻辑对其他逻辑引起的干扰,防止问题扩大。

提高性能

缓存为王、无锁并发、梯级存查、流量缓存、本地代理、避免串联六个方法也是业务比较流行的提高性能的错误。

故障运维

兜底策略、先验确保、前置加载三个方法将问题控制在前面的阶段。开关上线、灰度升级、应急预案、支持回滚四个方法在产生问题时给出了有效的应急解决措施。

 

对于一些新人来说,划分边界和领域是相对困难的事情。稳定性「三十六计」提供了设计思路。同时,我们不重复造轮子,设计时引用了很多基础设施时,很多稳定性「三十六计」的内容是通过第三方来保证的,而这个checklist有效的促使设计者进行反向设计,使用的时候也去了解其原理。

 

HOW

请参考《稳定性「三十六计」》系列文章。

稳定性「三十六计」- 配额管控

设置默认的超时和重试是一个基础设施的基本素养

稳定性「三十六计」- 无状态化

posted on 2019-04-18 09:37  编程一生  阅读(1199)  评论(0编辑  收藏  举报