当今社会互联网应用越来越广泛,用户量日益剧增。在人们对互联网服务的依赖性增大的同时,也对服务的可用性和体验感有了更高的要求。那么如何保障服务在运营过程中能一直给用户提供稳定的、不间断的、可靠可信的服务呢?

例如一个教育或者加金融系统产品,如果线上出现了故障,那么可能带来巨大的损失。由于金融产品或者教育类系统架构和业务逻辑是相当复杂和链条厂,因此我们测试工程师通过单元测试、接口测试、集成测试、性能测试等来验证服务的稳定性。但尽管如此,也是远远不够的,因为错误可以在任何时间以任何形式发生,尤其是对分布式系统。所以现在很多公司开始引入混沌工程(馄饨工程国内最佳实践公司目前是阿里,大家有兴趣可以去网上看下阿里混沌工程相关实践经验),由于混沌工程需要不断的投入和积累,所以我们测试部门为了模仿和预防线上故障演练,可以先进行故障注入演练,这样成本最小,收益也最大化。

阿里按照优先分析P1和P2故障,按照IaaS、PaaS、SaaS层的角度绘制了故障画像,如下图:

目前业内模拟故障的工具比较多样化,支持的功能和场景也各有优劣。通过对比来看,chaosblade支持功能和场景比较丰富,同时社区也是比较活跃的,我们可以选择这个尝试一下

chaosblade 所支持的场景,可以参考文档:

https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/

下面进行简单的故障模拟

下载路径:

https://github.com/chaosblade-io/chaosblade/releases

解压即用,无需安装

tar -zxvf chaosblade-0.9.0.linux-amd64.tar.gz

CPU压力注入:

结果如下:

内存压力注入:

效果如下:

磁盘压力注入:

效果如下:

网卡故障注入:

观察接口的话,能看到接口响应时间明显变长:

以上只是chaosblade最基本的故障注入演示,其他演练大家可以自行尝试,特别是服务层的故障注入演练作为我们测试同学是应该重点去关注和优先去尝试的,再次强烈建议大家在公司内部尝试服务层故障注入演练~

大家如果对故障演练有什么疑问或者研究的可以添加管理员微信,一起交流探讨。

基于chaosblade的故障注入平台小试的更多相关文章

  1. 基于token的多平台身份认证架构设计

    基于token的多平台身份认证架构设计 1   概述 在存在账号体系的信息系统中,对身份的鉴定是非常重要的事情. 随着移动互联网时代到来,客户端的类型越来越多, 逐渐出现了 一个服务器,N个客户端的格 ...

  2. 基于ThinkPHP3的微信平台开发_1

    微信公众平台是个好东西,具体的就不说了,我直接说技术>_< 下图为目录结构一览: 微信开发 - 文件目录结构 平台功能: 此次开发的平台是面向多微信公众号.微信多公众号主(下面简称号主)的 ...

  3. 基于认证的代理平台搭建配置squid-20130730

    基于认证的代理平台搭建配置squid-20130730 功能:通过squid代理实现 (1)基于用户名密码认证的出口ip路由选择 (2)基于client源ip的出口ip路由选择 (3)基于连接本机ip ...

  4. 白瑜庆:知乎基于Kubernetes的kafka平台的设计和实现

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载. 自我介绍 我是知乎的技术中台工程师,现在是负责知乎的存储相关组件.我的分享主要基于三个,一个是简单 ...

  5. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  6. ringojs 基于jvm 的javascript 平台试用

    ringojs 是一个基于jvm 的javascript 平台,支持commonjs 模块模式 安装 下载包配置环境变量,或者使用docker,测试使用docker dockerfile deb 包安 ...

  7. 基于locust的性能测试平台搭建

    前段时间加入性能测试组,并参与搭建基于locust的性能测试平台,我分到的任务相对独立,开发locust的启动接口和停止运行接口,现开发的差不多了,做一个总结 一.locust运行的相关内容 二.lo ...

  8. Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

    基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流.播放.直播.对讲等各种应用,做了RTMP.RTSP.HTTP-FLV.自定义等各种协议,还是有不少收获和心得 ...

  9. 基于GPU的图像处理平台

    基于GPU的图像处理平台 1.  (309)英伟达推Jetson TX1 GPU模块力推人工智能 1.1 产品概述 Jetson TX1 GPU模块,主要针对近年来蓬勃发展的人工智能市场,包括无人机. ...

随机推荐

  1. C++学习---单链表的构建及操作

    #include <iostream> using namespace std; typedef struct LinkNode { int elem;//节点中的数据 struct Li ...

  2. 攻防世界-web2

    打开题目直接一梭子代码,给我们了个加密的密文,然我们解出flag 审计一波 先时将flag字符串逆序,然后每一个ascii码数值+1,然后base64加密,然后逆序,然后再rot13加密 得到加密的密 ...

  3. .NET CORE WebAPI JWT身份验证

    一.appsettings.Json文件配置 配置JWT公用参数. 1 /*JWT设置*/ 2 "JwtSetting": { 3 "Issuer": &quo ...

  4. redis SETBIT命令原理

    redis SETBIT命令原理 /* SETBIT key offset bitvalue */ bitset的使用位来替代传统的整形数字,标识某个数字对应的值是否存在 底层有一个byte[]来实现 ...

  5. Zotero导入Markdown here插件

    1. 下载Markdown Here源码包 网址:https://github.com/adam-p/markdown-here 2. 创建.xpi后缀文件 将文件夹 中的这几个文件放入同一个文件夹中 ...

  6. Spring学习-Bean的基本概念知识

    4月份开始复习一遍spring相关知识.让自己巩固一下spring大法的深奥益处,所以就看了大佬的博客,转载留下来日后继续研读.认为重点的标记为红色 转载自:http://www.cnblogs.co ...

  7. RS485转以太网的概述和应用领域

    如今随着物联网技术的不断发展,各种接口更新换代的速度非常的快,RS485转以太网的主要作用就是提供串口转TCP/IP网络接口的功能,它可以将RS232/485/422串口转换成TCP/IP网络接口,实 ...

  8. .netcore 自定义多种身份验证方法混用

    背景: 公司项目有很多租户,每个租户的系统都可能调用我们的租户服务,原来的解决方案是为每个租户提供一个service.随着租户的增多,service也多了起来,但是每个service里的逻辑都是一样的 ...

  9. Cocos Creator 源码解读:引擎启动与主循环

    前言 预备 不知道你有没有想过,假如把游戏世界比作一辆汽车,那么这辆"汽车"是如何启动,又是如何持续运转的呢? 如题,本文的内容主要为 Cocos Creator 引擎的启动流程和 ...

  10. numpy数组

    一.数组创建 基础数组 1.array() array函数可以创建一维或多维数 一维数组 1.arange(起始值,终值,步长) 2.linspace(起始值,终值,元素个数) --创建等步长的数组 ...