文章图片
周末,看到三位英雄航天员在“天宫”的太空舱住满6个月顺利凯旋,神舟十三号任务取得圆满成功,心情非常激动。其实,Kindling也有一个“太空舱”项目,当然,这里的“太空舱”并不是指“天宫”这种真正的太空舱,而是一种比喻,就像航天员在上太空前,不可能去真实的太空环境做训练,而是在水下搭建一套模拟的太空舱做训练,这样不仅可以以最小的成本完成各种训练和操作,而且可以让航天员体验太空环境和可能遇到的问题。
太空舱项目的目的是打造一套云原生环境故障模拟系统,帮助用户更好地理解可观测性产品的价值,并对各类故障进行预演,提前制定恢复方案,这样即使出现故障,也可以第一时间恢复,最大限度减少损失。就像火灾演习,模拟各种火灾场景,并给出应对方案(如何逃生、如何灭火等)。灾难(故障)是大家都不想遇到的,但往往又是不可避免的,而灾难(故障)一旦出现,一般都是影响巨大的,会造成巨大损失。我们能做的是,降低灾难(故障)发生的概率,缩短灾难(故障)恢复的时间,减少损失。
太空舱项目是在chaosblade 和chaos-mesh等混沌工程的基础上,构建了一套标准的业务链,实现故障的一键注入和恢复,并以demo的形式呈现出来,从而避免将故障注入真实环境引发的一些安全风险。
文章图片
demo业务链
1.故障注入(以注入case1为例)
文章图片
2.故障恢复(以恢复case1为例)
文章图片
目前太空舱已构建了十几个故障场景,用户可以直接使用我们的太空舱环境(为避免冲突,需要提前申请,可以通过文末微信与我们联系),也可以只用故障脚本在自己的环境上模拟故障,如果用户觉得故障脚本不全,或者遇到新的故障类型,欢迎补充和丰富故障脚本,一起将其打造成可以模拟云原生领域全故障域的系统,以推动云原生可观测性产品的演进和发展。针对模拟出的故障可以自行选择监控工具来定界问题,通过对比选出最优和最适合自己的解决方案(效率、使用门槛、准确性等)。
文章图片
已构建故障场景和原因列表
当然,太空舱项目目前还有一些不完善的地方,如(1)当前的故障是根据我们已有的经验设计的,与真实情况是否存在差别以及是否有缺失还需要时间验证和完善;(2)当前故障脚本的实现存在较多依赖,如果在自己的环境上运行可能会出现一些未知的错误。如果在使用过程中遇到问题,欢迎通过下方二维码与我们交流或者直接在项目中提issue。
项目Github地址:太空舱项目
【太空舱项目--云原生故障模拟器】在云可观测性方面有任何疑问欢迎与我们联系:
微信
文章图片
公众号
文章图片