混沌工程与持续验证:提升系统稳定性与安全性
1. 混沌工程实践要点
在混沌工程实践中,有几个关键要点需要关注。首先要确保平台处于可控状态,专注于识别混乱而非制造混乱。可以通过以下方式开展实践:
- 组合变量实验 :构建包含组合变量的实验,虽然由于大多数组件的故障窗口较小,这种情况极为罕见,但它能发现因公共资源耗尽等原因导致的模式。
- 自动修复漏洞 :理论上可以自动修复漏洞,但在实践中,这可能需要深入探讨。
同时,在混沌工程发展过程中,还存在一些反模式。最常见的反模式是开发新的实例故障方式,例如实例死亡、内存耗尽、CPU 满负荷或磁盘填满等,这些通常会表现为延迟增加、错误或无响应,而且通过多种方式使实例失败往往无法获得新的信息,这类实验一般可以避免。
混沌工程的复杂性发展可以从引入变量的层次来理解,其实验的自然发展顺序通常是:基础设施层 -> 应用层 -> 业务逻辑层。最初的实验通常从基础设施层开始,如 Chaos Monkey 会关闭虚拟机,Chaos Kong 会关闭整个区域。随着工具的不断发展,实验会逐渐深入到应用逻辑和业务逻辑层面。
2. 混沌工程成熟度模型
将采用度和复杂度这两个属性作为相互正交的轴,可以构建一个地图。从地图的左下角开始,由个别 SRE 或其他感兴趣的人员开展游戏日活动。根据哪个轴先发展,该领域要么朝着更高的复杂度发展,可能会采用故障注入框架;要么朝着更高的采用度发展,会为混沌工程投入专门的资源。一般来说,采用度和复杂度会共同发展,存在一种平衡关系,即工具在未广泛采用时不会变得过于复杂,反之亦然。
超级会员免费看
订阅专栏 解锁全文
99

被折叠的 条评论
为什么被折叠?



