迈向混沌工程闭环生态的 Chaos Mesh? 2.0
【迈向混沌工程闭环生态的 Chaos Mesh? 2.0】2021 年 7 月 23 日,我们发布了 Chaos Mesh 2.0 GA 版本。Chaos Mesh 2.0 是一个让人兴奋版本,朝着混沌工程闭环生态迈出了坚实的一步。
让混沌工程变得更简单一直是 Chaos Mesh 坚定不移的目标,构建混沌工程闭环生态是帮助我们达成目的的关键步骤。在近一年的不屑努力下,我们主要在三个方面作出了非常大的改进:易用性,实验的编排与调度以及故障类型的丰富度。
易用性
我们一直致力于提升产品的易用性,在 Chaos Mesh 1.0 GA 时我们便发布了 Chaos Dashboard,方便用户通过图形化的界面进行混沌实验。在 Chaos Mesh 2.0 中,Chaos Dashboard 带来了较大的改进:
- Chaos Dashboard 支持 AWSChaos GCPChaos 的创建、查看与更新,使云上环境的混沌实验与 kubernetes 环境的混沌实验体验一致;
- 对于每个混沌实验,Chaos Dashboard 现在能够展示每个实验的更多详细事件,让实验的可见性更进一步!
文章图片
之前在定义定期执行的混沌时,仅使用 “cron: @every 10s” 与 “duration: 5s” 描述行为并不能满足大家的需求。例如单次执行时常大于执行周期,这种定义是合法的,但是对于预期行为研究没有合适的描述。我们参考了 CronJob 的定义引入了新的自定义对象 Schedule,为定期执行的任务加入了更多明确的属性,例如同一时间内是否允许多个实验同时执行,进而约束行为。
文章图片
对于定义的更新我们提供了迁移工具,帮助用户迁移升级,也会随 release 发布。可以参考升级至 Chaos Mesh 2.0 完成从 1.x 到 2.0 版本的升级。
更多的故障类型 Chaos Mesh 已经支持了如 NetworkChaos,IOChaos,StressChaos 等系统层面的故障注入,也支持了如 AWSChaos,GCPChaos 这种云服务类型的故障注入。我们在 Chaos Mesh 2.0 中也加入了应用层的故障注入功能。
JVMChaos
Java 及 Kotlin 等基于 JVM 的语言是在业界中有非常广泛的引用,通过 JVM 字节码增强以及 javaagent 等技术可以较为轻松的实现 JVMChaos. 目前 Chaos Mesh 借助 chaos-exec-jvm 实现了 JVMChaos,能够进行例如方法延迟,返回值修改,内存溢出,抛出异常等应用级别故障注入。可以参考文档模拟 JVM 应用故障了解更多信息。
HTTPChaos
HTTPChaos 是在 2.0 中新支持的 Chaos 类型,它能够在服务侧劫持 HTTP 服务请求与响应,中断链接、注入延迟或修改 Header/Body,适用于任何使用 HTTP 作为通信协议的场景。可以参考文档模拟 HTTP 故障了解更多信息。
物理机注入工具 Chaosd Chaos Mesh 专为 kubernetes 设计,而在物理机环境上,我们提供了 Chaosd,Chaosd 由 chaos-daemon 演化而来,并针对物理机的特点增加了一些专门的混沌实验功能。支持在物理机上进行进程,网络,JVM,压力,磁盘等不同类型的故障注入。
展望未来 Chaos Mesh 仍在活跃地开发中,在接下来的几个月里,我们已经为 Chaos Mesh规划了更多强大的功能,包括:
- 运行时注入 JVMChaos,让 JVMChaos 的成本更低,更加方便。
- 插件机制,允许用户构建自定义的混沌实验,同时能够享受 Chaos Mesh 的调度功能。
快速体验 你可以在浏览器中打开https://chaos-mesh.org/interactive-tutorial,使用云上的资源快速体验 Chaos Mesh 2.0!
致谢 感谢所有 Chaos Mesh 的贡献者 (https://github.com/chaos-mesh/chaos-mesh/graphs/contributors),Chaos Mesh 从 1.0 到 2.0 的过程中离不开每一位贡献者的努力!
最后欢迎大家为 Chaos Mesh 提交 issue 或者参考文档开始提交代码,Chaos Mesh 期待大家的参与和反馈!
推荐阅读
- 全过程工程咨询——时间管理(12)
- IDEA|IDEA 创建工程
- 我的软件测试开发工程师书单
- V-learn小西妈双语工程2017年03期144号谢思岩Carlos2017.10.21-10.22
- 《混沌的世界》
- 工程中屏蔽CocoaPods里的警告
- 发扬“两路”精神和青藏铁路精神|发扬“两路”精神和青藏铁路精神 高质量推进工程建设
- 【原创文集】梦里
- [学习笔记]|[学习笔记] 02 测试工程师是怎么使用fiddler的
- 转行web前端工程师需要学习什么内容