产品战略专家梁宁确认出席AICon北京站,分享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:032179

评论

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

百度研究院的追星逐浪,中国科技的奋发自强

脑极体

如何利用策略模式避免冗长的if-else/switch分支判断代码?

码农架构

Java 学习 设计模式

WiFi6 与 5G 的异同分析

石君

5G wifi 28天写作

持续集成对IT团队和企业分别有哪些好处?

禅道项目管理

DevOps 运维 开发 CI/CD

Serverless 架构到底要不要服务器?

Serverless Devs

Java 云计算 Serverless 运维 云原生

为什么建议没事不要随便用工厂模式创建对象?

码农架构

Java 学习 设计模式

区块链发展应以密码应用创新为根基

CECBC

区块链 密码学

细节!3部分讲明白HotSpot:运行时+编译器+垃圾回收器

996小迁

Java 架构 虚拟机 hotspot

量化策略交易软件开发|量化策略交易系统APP开发

系统开发

Linux I/O 原理和 Zero-copy 技术全面揭秘

赖猫

c++ Linux linux编程 服务器开发 I/O

现货合约量化交易系统开发搭建

薇電13242772558

数字货币 策略模式

阿里2021年首次公开五份Java并发编程全彩小册:模型+原理+应用+模式+面试题五管齐下

Java架构追梦

Java 学习 架构 面试 并发编程

超强Android进阶路线知识图谱:Kotlin可能带来的一个深坑,持续更新中

欢喜学安卓

android 程序员 面试 移动开发

Linux网络之 从 C10K 到 DPDK

赖猫

c++ Linux linux编程 C10K DPDK

厉害了!来看看这份超全面的《Android面试题及解析》,一线互联网公司面经总结

欢喜学安卓

android 程序员 面试 移动开发

即构微信小程序直播组件是什么?有哪些功能?哪些小程序类目可以使用?

ZEGO即构

比特币矿机工作原理

v16629866266

比特币 比特币区块链

高并发架构---TCP

赖猫

TCP 后端 高并发 TCP/IP 服务器开发

Java 程序经验小结:类层次优于标签类

后台技术汇

28天写作

中美上市软件公司对比中的投资启示

ToB行业头条

“区块链+数字身份”,道路坎坷前途光明

CECBC

数字技术

K线成交量管理系统开发、成交量管理系统开发

W13902449729

K线成交量管理系统开发 成交量管理系统开发

DeFi流动性挖矿管理系统开发|去中心化金融借贷系统开发

W13902449729

去中心化金融借贷系统开发 DeFi流动性管理系统开发

在函数计算中到底该不该使用 VPC?

donghui

Serverless

工作11年,从阿里P8出来,头发也没了,人也虚了,就剩下这份笔记了!

Java架构之路

Java 程序员 架构 面试 编程语言

并发阻塞队列(BlockingQueue)— 生产者消费者模式核心部件

码农架构

Java 架构 jdk 设计模式

字节内部MySQL宝典意外流出!极致经典,堪称数据库的天花板

比伯

Java 编程 架构 面试 程序人生

2021年编排将成为DevSecOps关键推动者

啸天

DevSecOps 应用安全 开发安全

五分钟快速掌握Maven的核心概念

Java架构师迁哥

区块链大趋势

CECBC

数字经济

阿里面试官纯手打:金九银十跳槽必会Java核心知识点笔记整理

Java架构之路

Java 程序员 架构 面试 编程语言

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