关于Chaos工程

image.png
偶然间了解到混沌系统,感觉十分的新奇,是从Netflix的ChaosMonkey,因为之前设想过通过连接nacos(我们在用的阿里的注册配置中心)来实现把服务器中部分服务的请求控制住或者加大延迟等方式来测试服务的依赖对系统基础功能的影响,但是没想到这个ChaosMonkey能坐到粒度十分细的那种,甚至于到接口级别的,而且在“混乱”“混沌”方面实现的十分够力:从时间的混乱到 事故级别的混乱 小到控制流量 大到直接docker stop container,还能从网络方面制造抖动,阿里也有一个ChaosBlade 看来是已经十分成熟了(因为阿里云里已经开卖了),试了一下他的demo:感觉还蛮有意思
docker pull chaosbladeio/chaosblade-demo
docker run -it --privileged chaosbladeio/chaosblade-demo
然后可以通过curl请求这个镜像里面内置的dubbo ,然后可以手动制造一个Chaos,他会返回一个uid,可以用来停止实验。
before:

bash-4.4# curl http://localhost:8080/dubbo/hello?name=dubbo
Hello dubbo, response from provider: 172.17.0.2:20880

添加混乱

bash-4.4# blade prepare jvm --process business
{"code":200,"success":true,"result":"bf48771e32d1f1f6"}
bash-4.4# blade c dubbo delay --time 3000 --service com.example.service.DemoService --methodname sayHello --consumer
{"code":200,"success":true,"result":"e7dbf03435e8ebf4"}

after:

bash-4.4# curl http://localhost:8080/dubbo/hello?name=dubbo
chaosblade-mock-TimeoutException,timeout=1000

感觉和混乱系统和Jepsen结合起来用有奇效,能给云原生的整体测试提供个方案。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

蒙ICP备2022000577号-1