小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
提升人的意识与能力
我们发现,稳定性故障发生的根因很大部分是人祸造成的。表现为人的意识和能力二方面。
意识上,对系统是否敬畏,有没有按规范和流程执行,有没有owner精神,有没有职责心,有没有触犯红线。
能力上,能不能做到 on call ,有没有故障应急的能力,能不能正确的判断,并且熟知预案并执行。
稳定性工作一项需要全员参加的”马拉松“团体项目,必须提升团队中每个人的意识和能力。
在这里我重点讲二个理论。
海恩法则,告诉我们不要麻痹大意。
墨菲定律,告诉我们要防微杜渐。
建立完备的制度与机制
稳定性治理,是一个系统性工作,贯穿整个研发生产周期,因此必须从设计、实现、测试、发布、上线、运行各环节进行规范化的制度。
设计阶段,要建立高可用的设计评审制度、业务日志埋点规范,以及建立容量规划评估。
实现阶段,要建立代码质量控制、压测、故障演练等机制。
发布阶段,要建立上线SOP,做好上线CHECK,具备灰度能力。
日常运营上,建立定期系统巡检、流量模型、线上值班制度、应急响应制度、应急预案、变更流程、三方信息同步和定期沟通机制。
事故发生后,要做好故障复盘和改进。
谈治理,没有组织设计,就没有主体,需要建立治理委员会,统一保障业务连续性,重点保障业务大促、大型活动,联合SRE、业务负责人、产品、运营、客服,定期同步信息,定下紧急处置流程和预案。
稳定性治理需要组织和制度保障,需要仪式和文化支撑,做的好与不好,很大程度上体现出治理水平,这一块可以单独成文,本文不展开说明,重点是在文化上:
(1)讲求工具和工程文化,重点是工程建设,我们需要混沌工程,持续验证系统弹性。
(2)讲求精益文化,持续改进,认清我们不知道远比知道的多。