2020,Chaos Mesh® 开源第一年 | 扬帆起航的一年
Chaos Mesh 开源一周年了,这一年来,Chaos Mesh 产品不断迭代成长,从单一的故障注入工具到现在以构建完整混沌工程生态为目标持续前进着。Chaos Mesh 社区从无到有,不断为 Chaos Mesh 带来新的力量,并成功帮助 Chaos Mesh 加入 CNCF 成为沙箱托管项目。
在这篇文章中,笔者会从多个方面和大家一起回顾 Chaos Mesh 在这一年中的变化与成长,畅谈一些 Chaos Mesh 未来的目标与计划。
产品:明确目标,茁壮成长
这一年里, Chaos Mesh 在大家共同的努力下以肉眼可见的速度成长着。从第一个版本,到最近我们刚刚发布的 1.1 版本,无论是功能、易用性、安全性等方面,Chaos Mesh 都有了很大的提升。
功能方面
刚开源的时候,Chaos Mesh 支持 PodChaos,NetworkChaos 以及 IOChaos,经过这一年的不断丰富,Chaos Mesh 已经能够全方位的对网路、时间、JVM 应用、文件系统、操作系统等进行故障注入。这一年中 Chaos Mesh 共新增 5 类故障类型:
StressChaos: 模拟 CPU,Memory 压力场景
TimeChaos:模拟时钟偏移
DNSChaos:模拟 DNS 服务故障
KernelChaos:模拟内核故障
JVMChaos:模拟 JVM 应用异常 (Reviewing)
经过这一年的持续优化,Chaos Mesh 提供了更加灵活的调度机制,可以帮助用户更好的去设计自己的混沌实验,为我们下一步支持混沌编排功能打下基础。
期间,很多用户开始在各大云平台上使用 Chaos Mesh,比如 AWS、GKE、阿里云、腾讯云等。为了更好的适配各大云平台,我们也不断的进行兼容性测试与适配,以及支持针对特定云平台的故障注入能力。
此外,为了更好的支持 Kubernetes 原生组件以及节点级别故障,Chaos Mesh 单独开发了 Chaosd 组件,主要目的是提供物理节点级别的故障注入能力,Chaosd 组件还在快速开发迭代中,欢迎大家一起参与进来。
易用性方面
为了能够让用户快速体验 Chaos Mesh,我们单独提供了一键安装脚本,用户只需要执行一条命令,就可以在本地快速地体验 Chaos Mesh。此外,我们还实现了全新组件 Chaos Dashboard,极大地简化了管理混沌实验的复杂度,用户可以直接通过可视化界面来管理和监控混沌实验。
很多用户在使用 IoChaos 的时候,经常被各种配置问题阻塞住,这个问题一度困扰了我们好久,经过多次调研和讨论,最后我们放弃 Sidecar 的实现方式,使用 chaos-daemon 动态侵入目标 Pod 命令空间,具体实现细节可以阅读之前分享技术解析文章。经过此次优化,Chaos Mesh 真正实现了动态注入 I/O 故障,用户不再需要额外的配置,只需专注于实验本身。
安全性方面
这一年中,Chaos Mesh 在提高安全性方面同样作出了诸多努力。Chaos Mesh 提供更加完善的 Selectors 用来控制实验范围,支持设置特定的 Namespaces 来保护重要应用。此外,Chaos Mesh 还支持在 Namespace 权限使用,用户可以把 Chaos Mesh 的权限范围限制在特定某个 Namespace 下,如此一来可以更大程度控制实验的“爆炸半径”,提供更加安全的混沌实验体现。
此外,Chaos Mesh 直接复用 Kubernetes 的原生权限机制,在 Chaos Dashboard 组件上支持身份验证,以避免其他用户的误操作造成混沌实验的失败或者不可控。
生态:不断深入,互帮互助
Grafana
GitHub Action
TiPocket
社区:从无到有,共同进步
加入 CNCF,借力云原生社区
云原生从 Chaos Mesh 创立之初就写在了项目的 DNA 里。加入 CNCF 也是 Chaos Mesh 社区在这一年里的重要里程碑之一,也是 Chaos Mesh 走向厂商中立、社区自治、开放透明的开源社区的重要一步。除了上文中和云原生的生态的集成,加入 CNCF 对于 Chaos Mesh 社区的发展和完善也有很积极的促进作用。
更多的社区以及项目曝光。通过生态之间的合作、以及各种云原生社区活动如 Kubernetes Meetup,KubeCon 等,我们也获得了更多与社区分享、交流的机会。社区中不断产生的优质内容也对 Chaos Mesh 的社区品牌传播起到了正面的促进作用。
更完善、开放的社区框架。加入 CNCF 的一个重要作用是对开源社区运营的指引和规范。加入 CNCF 时,Chaos Mesh 开源仅半年时间,是一个相对年轻的社区。在 CNCF 的指引下,我们完善了社区的基本框架,如 Code of Conduct、Contributing Guide、公开的 RoadMap,在 CNCF 的 Slack 下创建了 #project-chaos-mesh 的频道;同时,社区也从初期就提供了逐步完善的用户和开发文档。
友好、互助的社区氛围
我们有一个很有潜力的项目,获得 CNCF 的认可,以及一个初步完善的社区框架,这具备了一个有吸引力社区的前提条件。可是,如何让用户、贡献者保持长期、持续参与到社区中,这取决于社区体验和氛围。对于 Chaos Mesh 社区,打造友好、一站式的上手体验,建立快速响应、互助的社区氛围是第一年需要重点关注的目标。具体来说,
持续丰富文档内容,优化文档结构,更新文档信息。目前已形成了包含用户文档,开发文档,快速上手、用户案例文档、贡献指南等在内的面向不同人群的文档体系,并随着版本发布保持迭代更新。
和社区一起持续发布包含 Chaos Mesh 教程、案例分享、混沌工程实践等主题的博客文章。截止本文发布时间,已累计产生 25 篇 Chaos Mesh 相关文章,以及 1 个发布于 OReilly Katakoda 的入门互动教程,为文档提供了有力补充。
通过社区月度会议、以及各种会议、meetup 等形式分享视频教程。
作为一个快速迭代的开源项目,Chaos Mesh 社区注重来自社区的反馈、问题的快速响应。
未来可期
最近 Google 全球宕机事件再次提醒用户对服务可用性的重视,再次凸显混沌工程的重要性。CNCF 技术委员会主席 Liz Rice 分享 2021 年值得关注的五项技术中,混沌工程赫然在列。大胆预测在未来的一段时间内,混沌工程即将进入一个全新的阶段。
这一年中我们成功发布了 1.1 版本,经过一段时间的积累以及接受用户各种反馈,Chaos Mesh 有了更加明确的目标,朝着构建完善的混沌工程生态不断前行。目前我们正在快速开发 Chaos Mesh 2.0 版本,在 2.0 中, Chaos Mesh 将引入内嵌的 Workflow 引擎,用来支持定义和管理更加灵活的混沌实验场景,以及引入应用状态检查机制和提供更加完善的混沌实验报告。2.0 版本预计会在几个月后发布,并且项目的后续计划安排,我们会及时在项目的 roadmap 上持续更新。
最后
说了这么多,最后也是最重要的,经过这一年努力,Chaos Mesh 不断成长,但依旧年轻,我们朝着我们的目标,扬帆起航,在成长的过程中,需要大家共同参与,一起打造完善的混沌工程体系生态!
欢迎大家加入 Chaos Mesh 社区,加入 Chaos Mesh Slack(#project-chaos-mesh) ,一起参与到项目的讨论与开发中来!大家在使用过程发现 bug 或缺失什么功能,也可以直接在 GitHub 上面提 issue 或 PR。
关注公众号:拾黑(shiheibook)了解更多 [广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 1 农文旅融合绘就美丽乡村新图景 7905382
- 2 超级计算机算出人类灭绝时间 7968912
- 3 130亿三岁影帝接了多少广告 7830270
- 4 春回大地农事起 春耕备耕正当时 7775672
- 5 天雷滚滚我好怕怕传到联合国 7655483
- 6 下周将迎超级大回暖 气温火箭式飙升 7512824
- 7 男生用镜头记录下女友5年的蜕变 7449636
- 8 深圳女子报警:“我举报我自己” 7317993
- 9 美国将完全退出联合国?联合国回应 7219357
- 10 656吨“巨无霸”货车“优雅”前行 7105365