如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

华为云在混沌工程场景下的可靠性测试

  • 2020-03-24
  • 本文字数:2309 字

    阅读完需:约 8 分钟

华为云在混沌工程场景下的可靠性测试

随着互联网的快速发展,传统的单工程的性能瓶颈越发明显,分布式系统的优点越发突出。分布式系统具有廉价高效的特点,利用性能相对一般的 PC 横向扩展,提升服务器性能,通过软件来保障系统的高可靠性。


由于分布式系统存在 API 接口通信、微服务架构、节点规模大等特点,增加了系统的复杂性和出错的概率,从而很难确保系统的容错机制得到充分的验证,依赖自动化工具来完成对系统端到端验证是不可避免的。


Netflix 和类似互联网企业构建的大规模的分布式系统,不可避免地会发生如机器崩溃和网络延迟等故障。为了给客户提供“永远在线”的体验,建立系统可以可靠运行的信心。需要软件能够检测、处理各种错误情况,除了少量发生概率较低的极端故障。

华为云可靠性解决方案

在业界,混沌工程被定义为“在分布式系统上进行实验, 以建立对系统抵御生产环境中失控条件的能力的信心”。


基于华为在 ICT 领域 10 多年的阿软件可靠性测试经验,以及工程师们的千万个夜以继日,华为云推出了在混沌工程领域应用实践的一套完整的解决方案。目标是沉淀通用的故障模式,从入门到精通,从研发到生产,层层推进,以在线演练和专业测评来持续暴露问题,“防止失败的最佳方法就是经常失败,在真实环境测试,而不是模拟环境”,通过线上真实的问题来推动产品全方位的改进。



  • 全面有效的故障模式库

  • 基于华为在 ICT 领域 10 多年的实践积累和数百产品的实际应用的沉淀,电信领域软件的高要求,我们通过正向分析、事故分析、业界案例分析三个维度建立全面的故障模式库。

  • 精准高效的故障模拟

  • 我们通过软件模拟各种硬件故障,对应用无侵入,而且跟应用的实现语言无关。

  • 端到端全自动化测评

  • 我们实现了智能识别故障对象,而且全自动化运行,自动度量 KPI,自动实现风险评估,生成测评报告,测试工程可反复执行。防止失败的最佳方法就是经常失败。在真实环境测试,而不是模拟环境。通过我们的端到端全自动化测评,可以实现这个目标。

华为云混沌工程应用场景

入门级可靠性测试:手工注入

功能:提供对 Kubernetes 集群、弹性云服务器的单业务实例、单故障模式的注入。


适用场景:开发人员针对确定故障的自验证;测试人员针对可靠性问题回归验证等。


特点:操作简单,故障注入/清除结果及系统的表现清晰可见。



手工注入是混沌工程的入门级功能,操作非常容易,结果直接清晰。


首先在服务所在的容器集群或者节点上安装探针,一键安装,秒级创建,速度很快;


然后选择注入对象和注入的故障,还可以选择设置告警、CPTS 压测工程,就可以完成一次故障注入;


再接着就是以 5 分钟为维度获取监控数据生成测试报告;


最后你就可以基于报告来评估服务可靠性的质量了。


全流程可视化操作,只用鼠标点点点就可以了;简单易用,使用门槛低,非常方便开发者和测试人员进行基本的可靠性测试。

进阶级可靠性测试:故障演练

功能:提供对单工作负载的随机故障注入,预置了多种入门级和进阶级演练场景。


适用场景:线下随机故障注入测试;线上例行故障演练、专项演练等。


特点:模型化的场景定义、灵活的编排调度、丰富的评估报告。



故障演练主要使用场景是线上例行故障演练和专项演练。相比于手工注入,故障演练会提供多种入门级和进阶级的演练场景。上图为传统的手工演练流程,与混沌工程提供的故障演练能力对比。


三、四年前我们还处于传统手工演练阶段,全流程的手工进行,后续逐步演变为现在混沌工程提供的全自动化故障演练能力,经我们自己实际使用对比,现在的自动化演练过程比手工更准确和规范,避免人为导致的差错;可靠性专项测试人员投入的时间可以减少 80%,端到端效率提升 10 倍以上。


绿色动图分割线


我们提供如下的预置模板,同时也支持自定义演练任务。


高阶级可靠性测试:自动测评

功能:提供对多工作负载全量的可靠性测评。


适用场景:云服务的全量可靠性测评;不同服务、不同版本的可靠性能力对比。


特点:智能对象识别、自动用例生成、无脚本化执行、自动 KPI 度量、丰富的评估报告。


自动测评最大的特点就是智能对象识别、自动用例生成、无需定制脚本的全自动化执行、自动 KPI 度量生成丰富的评估报告,可以对不同服务、不同版本的可靠性能力进行对比。


自动测评服务的智能对象识别能力,保证了故障对象覆盖的全面性,能有效避免人工测试出现的遗漏。自动用例生成与无脚本化执行,大幅节省了用例设计和自动化脚本编写的工作,同时降低了自动化可靠性测试对人员技能的要求。


系统预置了 3 种常见场景模板,同时支持用户自定义。既可以用预置目标快速创建任务,也可以灵活的定制任务。



测评报告


混沌工程通过结合华为云上的 CCE、ECS、CPTS、AOM、APM 等服务,提供了一套完整的端到端的可靠性测试解决方案,解决了测什么、如何测、如何评价的问题。



可靠性质量评估架构


在华为云上,云服务部署的载体要么是 ECS 的弹性云服务器,要么是 CCE 的容器集群,我们现在已经支持对 CCE 容器集群和弹性云服务器 ECS(linux)进行故障注入。


CPTS 服务可以实现对应用接口的压测,在故障注入的同时运行,通过 CPTS 的报告用来评估故障对业务的影响。


AOM 可以完成对容器、主机的资源监控,以及自定义阈值告警,故障注入后相关的监控数据和告警数据会被写入混沌工程测试任务的报告中,然后根据可靠性质量评估方法实现自动 KPI 度量,生成评估报告。


APM 提供了调用链功能,在故障注入后,利用调用链可以快速完成问题定位分析。


可靠性质量评估方法上,我们采用的是基于可靠性关键质量属性的 KPI 评估方式,如下图。从故障模式维度和测试对象维度对 KPI 进行分析,可以针对自己的服务特性,自主调整评估的参数,然后生成测评报告。


评估属性和方法



本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/G6q4U3Qultb9ZRWnTopfMg


2020-03-24 21:032686

评论

发布
暂无评论
发现更多内容

【LeetCode】独特的电子邮件地址Java题解

Albert

LeetCode 6月月更

每日一题 | LeetCode 242 有效的字母异位词

武师叔

哈希表 Leet Code 6月月更

如何在项目中直接使用Hystrix?

编号94530

Java spring Hystrix 熔断器

Android 音视频——NuPlayer的渲染模块

程思扬

音视频 安卓 音视频开发

Fork Join框架

急需上岸的小谢

6月月更

后端技术复习

卢卡多多

技术栈 6月月更

【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!

冰河

并发编程 多线程 高并发 异步编程 6月月更

EasyRecovery15官方最新版下载功能介绍

茶色酒

EasyRecovery Easyrecovery破解 EasyRecovery15

SAP Restful ABAP Programming 编程模型的 Action 实现和云端调试介绍

汪子熙

云计算 云原生 SAP abap 6月月更

Discourse 支持中文用户名

HoneyMoose

vue基本语法使用

小恺

6月月更

【愚公系列】2022年06月 二十三种设计模式(二十二)-模板方法模式(Template Method Pattern)

愚公搬代码

6月月更

Flutter:创建透明/半透明的应用栏

坚果

6月月更

5分钟了解CDN的功能及原理

穿过生命散发芬芳

CDN 6月月更

网页设计制作要注意哪些问题

源字节1号

JS语言基础

Jason199

js 6月月更

拒绝八股文!这篇图解动态路由分分钟爱了

wljslmz

网络工程师 网络技术 动态路由 6月月更 路由协议

linux驱动开发_文件系统本地挂载

DS小龙哥

6月月更

Flutter 使用 Redux 的中间件实现异步状态管理

岛上码农

flutter 安卓开发 ios 开发 跨平台应用 6月月更

《非暴力沟通》:如何温柔地沟通?

郭明

读书笔记

详述Java中sort排序函数

工程师日月

算法 Java EE 6月月更

Django API 开发:一个 Todo 应用的后端

宇宙之一粟

6月月更

透过华为军团看科技之变(二):机场轨道

脑极体

【技能树共建】Python 三元表达式

梦想橡皮擦

6月月更

Linux下可执行程序的Shell传参格式规范

乌龟哥哥

6月月更

创业 2 年值得分享的事情

琚致远

创业 apache 社区

测试的核心竞争力是什么?

老张

软件测试 核心竞争力

如何在 WordPress 中嵌入 iFrame

海拥(haiyong.site)

WordPress 6月月更

数据库每日一题---第2天:查找重复的电子邮箱

知心宝贝

数据库 算法 前端 后端 6月月更

Redis篇之协议与序列化

邱学喆

redis协议 序列化操作 luttuce

spring event 介绍

Nick

Java spring springboot 6月月更 spring event

华为云在混沌工程场景下的可靠性测试_行业深度_华为云产品与解决方案_InfoQ精选文章