预防为主,何以为辅?——《混沌工程》译者序
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
吾真本说混沌工程
扫码关注公众号
扫码阅读
手机扫码阅读
在敏捷软件开发中,质量内建是一种将质量意识融入开发各环节的流行做法,其理念是“预防为主”,旨在减少返工成本。然而,这种做法可能会导致一个错觉,即所有软件故障都可通过预防避免。事实上,当线上事故发生时,人们往往会指责开发、测试和运维人员,因为他们被期望不出错(参考来源)。
在云原生和微服务盛行的复杂系统中,个人无法掌握所有细节,团队成员对系统的理解各不相同,再加上通信过程中的信息损失,合作开发软件时不可避免地会产生不可预测的“暗债”。尽管通过软件测试和故障演练可以提高软件质量,但这些经常基于固定测试用例和相同流程的方法,无法使软件系统适应生产环境中的意外情况。
由于“人无完人”,“暗债”的产生是不可避免的,且其不可预知性意味着无法实现全面预防。根据“面向恢复的计算”(参考来源)的理念,系统失效不可避免,不能通过推导方法预测所有故障,且人的行为是系统失效的主要原因。
面对复杂系统中的“暗债”,我们可以采取三个措施:承认“暗债”的存在,提高故障发现和修复的速度,并建立警示标志。这些措施有助于在用户未察觉前快速发现并修复故障。
在承认“暗债”不可避免的基础上,实施“不按常理出牌”的安全实验,测试软件系统的稳定性,从而快速发现并修复故障,有效补充“预防为主”的质量内建策略。这种工程实践被称为混沌工程。
吾真本说混沌工程
吾真本说混沌工程
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
吾真本说混沌工程的其他文章
Code Review: 超越“审、查、评”的代码回顾
把Code Review称作“代码回顾”吧,而不要称作令人紧张的“代码评审”或“代码走查”,把它打造成软件开发团队“共同学习、识别模式和每日持续”的过程,来有效提升团队代码内在质量。
节省显示器同时提升持续集成问题修复及时性的“流水线问题责任聚焦”实验
如果将流水线健康显示屏撤掉,并要求每位开发人员,在向流水线合并代码后,需要通过自己的电脑显示器,观察流水线健康状态。直到状态变为绿色,才算合并成功。若其间发现红色/黄色告警,因为只有她/他一人在场,那么她/他主动修复问题的概率会达到最大。
不增加成本能更好应对生产系统稳定性意外故障的“开发测试运维三岗转为系统红蓝军”实验
开发、测试和运维这三个岗位之间的关系,可以转变为红蓝军对抗。这样就能有效克服管理者和工程师的过度自信、确认性偏见、从众效应和注意力顾此失彼等心理特点所带来的负面影响,减少意料之外的软件系统生产环境稳定性故障,并提升故障的修复速度和质量。
2016版编程操练神器Cyber-dojo的VMDK虚拟机镜像文件下载
增加了md5,更新了下载链接。经过Cyber-dojo作者Jon Jagger的同意,我把自己的虚拟机中安装完毕的新版Cyber-dojo私有服务器的14GB大小的VMDK文件,切成14份,上传到云盘,供大家下载,能免去翻墙安装的痛苦。
怕人才流失而不去培养人的企业的三大损失
怕人才流失而不去培养人的企业的三大损失:一、元气大伤;二、招不到高素质的人;三、成为慢鱼从而被快鱼吃掉。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线