混沌工程是什么?

混沌工程(Chaos Engineering)是一种提高技能架构弹性才能的复杂技能手段。是在分布式体系上进行试验的学科,目的是建立对体系承受出产环境中湍流条件才能的信心。混沌工程会将毛病注入体系以测验体系对其的响应。这使组织能够为宕机做准备,并在宕机发生之前将其影响降至最低。

混沌工程测试流程

混沌工程旨在将毛病扼杀在襁褓之中,也就是在毛病造成中止之前将它们辨认出来。经过主动制造毛病,测验体系在各种压力下的行为,辨认并修复毛病问题,避免造成严重后果。

例如,事务应用服务器意外宕机或用户流量忽然激增,将整个体系产生什么影响?能否在危险到来之前提早规避,或是把损失操控在最小范围内。

混沌工程测验原理和步骤

混沌工程一般经过毛病注入的方法、编列化的场景、自动化的试验流程,来学习如何在大型分布式体系和网络中下降事务危险,下面是进行混沌工程的一般流程:

1.承认试验目标

试验目标的挑选一般来源于软件类资源与硬件类资源,挑选试验的目标,操控“最小爆破半径”,本次试验将针对常用的中间件Tomcat,来进行毛病测验。

2.试验环境挑选

混沌工程测验主张在出产环境进行试验,关于非出产环境的混沌工程试验,可选用模仿出产流量的方法,尽量和出产流量类似,来验证试验场景和工具的可靠性。

混沌工程测试流程

3.试验工具运用

试验不仅仅是关于试验成果的验证,也反映出了体系相关人员关于试验工具的了解程度,以及真实毛病发生后关于问题处理的应变才能,试验基于同创永益CNBR云原生事务耐性渠道进行混沌工程测验

4. 试验原理说明

经过同创永益CNBR云原生事务耐性渠道纳管节点,接入agent,经过毛病pod注入OS中止服务毛病,杀掉tomcat服务进程,一起经过jmeter脚本模仿流量拜访,验证服务拜访状况是否收到影响。

5.设定毛病场景

某事务体系,后端运用Tomcat群集,共两个Tomcat节点;前端web选用Nginx搭建,并向后端负载分发,与其它服务互相有依赖关系,上线一个版别运转大概24小时后后台tomcat服务忽然溃散,经过注入毛病,模仿流量的方法验证服务的可用性。

设定毛病场景

混沌工程测试流程

新增演练计划

混沌工程测试流程

配置毛病目标

混沌工程测试流程

配置稳态目标

混沌工程测试流程

6.场景毛病注入

经过毛病pod 注入毛病kill掉其中一台Tomcat的服务,一起经过稳态目标模仿用户流量循环拜访服务。

履行演练计划

混沌工程测试流程

检查服务拜访目标

混沌工程测试流程

7.毛病恢复验证

试验注入毛病后,监控目标能快速恢复至预期,毛病注入中止后,验证其恢复才能,web端服务是否拜访正常,后端进程状况验证

检查演练成果

混沌工程测试流程

检查目标概览

混沌工程测试流程

Web拜访验证

混沌工程测试流程

混沌工程测试流程

8.试验成果总结

经过试验成果显现,服务拜访未受影响,符合预期状况。

不同毛病的注入,带来不同的事务危险,经过模仿毛病场景,验证服务的稳定性,一起,经过实地现场操作,掌握各环节所需求的具体操作时间,为后期的改善、提高和领导决策供给根底数据,对这些未知问题提早发现并处理,避免在出产环境中造成不行挽回的损失。

混沌工程测试流程