51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4140|回复: 0
打印 上一主题 下一主题

[原创] 初探混沌实验工具chaosblade

[复制链接]
  • TA的每日心情
    擦汗
    7 天前
  • 签到天数: 1027 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-3-24 09:48:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     混沌工程的概念由Netflix最先提出,指“在分布式系统上进行实验的学科,目的是建立对系统承受生产环境中湍流条件能力的信心”。随着分布式系统的建设,单体应用迁移到分布式架构中,对系统的可靠性和容错性提出了更高的要求。为防止服务因为微小故障而产生雪崩效应,引发系统大面积崩溃,通过在分布式系统上进行受控实验,观察系统行为并及时发现问题,提升系统健壮程度。
      Chaosblade是由阿里巴巴研发的开源混沌工程工具,用于模拟常见的故障场景。本文使用Ubuntu虚拟机和docker探索该工具的准备过程及部分常见故障的使用方法。

      一、工具获取
      Chaosblade工具有两种获取方法,可以从Github仓库中下载发布的完整工具并解压使用,也可以通过docker拉取镜像。第一种方法只需下载压缩包,解压后在对应目录下使用 ./blade命令即可使用,无需额外准备步骤,十分简洁易用。如果只是想体验工具,可以采用第二种方式,在体验完成后销毁docker容器,不用担心测试环境受到破坏。
      通过docker拉取blade工具镜像:


      启动镜像:


      二、创建混沌实验
      Chaosblade工具目前支持基础资源类(如CPU、内存、网络、磁盘等场景)、Java应用类(如JVM、消息、缓存等场景)、云原生平台(如Kubernetes平台、Pod网络等场景)等多种类型的实验场景。使用blade create命令可以创建实验,后面根据需要加上实验类型和需要的参数设置即可。

      1.CPU负载实验
      下面我们先启动一个CPU满负载的实验,并设置了20秒的时长,到达时长后实验自动销毁。运行时长为可选参数,不指定时则会持续运行。同时,也可以增加-count、-percent等命令指定负载的CPU个数和百分比。
      可以看到实验启动成功后,返回信息包含三部分,其中的code值为200时代表启动成功,result的值为一个uid。每个实验对应一个独立的uid,可以通过该id查询和销毁实验。


      启动成功后我们使用top命令查看设备负载情况,可以看到出现chaos_burncpu进程并占用了88%的CPU资源。


      到达20秒时长后实验自动销毁,再次查看负载情况已经回归正常。


      2.网络故障实验
      由于只用了一台虚拟机使用工具,所以在实验前我们先新建一个docker容器,并在容器中运行nginx。建立了该容器49153端口到本地80端口的网络映射。这样我们就可以添加对本地80端口的网络故障实验,并通过访问容器的49153端口测试实验效果,模拟访问远程服务器。
      实验前检查容器端口的映射情况,以及通过curl命令访问49153端口的测试。这里选择curl替代telnet的原因是telnet命令会自动进行重连尝试,影响观察实验结果。


      此处创建了一个网络延迟实验,对本地80端口添加2秒的网络延迟。


      之后通过Curl命令检查端口延迟,可以看到由于涉及请求和响应两个步骤,整个过程使用了4秒的时间。


      由于此次未设置运行时间,实验结束后使用destroy命令通过uid销毁实验。


      再次检查,响应时间已经恢复正常。


      接下来我们再创建一个网络丢包实验,对本地80端口添加100%的丢包率。


      实验创建成功后可以看到通过telnet和curl命令都无法继续访问49153端口,模拟了网络丢包,无法正常访问的场景。


      通过对Chaosblade工具的简单探索,发现该工具功能十分强大,常见的资源类故障场景均可创建实验覆盖。可以用来模拟分布式系统中某些模块服务异常、网络闪断等运行中可能出现的异常场景,对监控告警、故障响应等措施是否及时有效的可靠性测试提供支持。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-7 04:36 , Processed in 0.070337 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表