共计 2380 个字符,预计需要花费 6 分钟才能阅读完成。
摘要: 在产品上云之前,云上数据的可信(安全性、可靠性等)成为大家关注的重点。
引言
疫情之下,科技撑持引人注目,多个产业迎来逆势增长。科技翻新赋能的“云技术”,不再仅仅是战“疫”的重要工具,更将带动全社会的数字化转型,对产业倒退产生深远的意义。而在产品上云之前,云上数据的可信(安全性、可靠性等)始终是大家关注的重点。
近年来,云上可靠性事变的案例层出不穷。如:
- 2018 年 7 月 XX 云因存储空间使用率过高发动搬迁扩容。为加快速度,运维人员手动敞开了搬迁过程的数据校验,并在搬迁实现后立刻开释了源数据空间。因为物理硬盘固件版本缺点导致的静默谬误,文件系统元数据损坏,导致租户数据失落;
- 2018 年 9 月 4 日凌晨因雷电导致 XX 云中南美 Region 机房制冷异样,引起局部设施损坏 / 主动敞开,大部分云服务器中断超 24 小时;
- 2018 年 10 月 21 日晚,GitHub 对故障的 100G 光纤设施保护更换导致东海岸数据中心网络中断 43 秒,由此引发数据库异样,服务降级继续 24 小时 11 分钟;
- 2019 年 X 月,XX 云某 region 因代码缺点导致包周期 EIP 呈现大量退订,引起客户业务故障引发客户强烈不满。复原失落资源约破费 XX 分钟。
“云技术”带来了数字化改革,但云上的可靠性问题又一次次让客户胆战心惊,上面重点谈谈如何做云上的可靠性测试。
1 什么是可靠性测试
可靠性测试就是采纳特定的办法激活零碎中的各种故障(FAULT),通过观察生效(FAILURE)的产生状况来对系统容错能力(故障定位、故障复原、故障报告等)进行评估并利用该评估后果来推动产品继续缩小生效的一种测试流动。
产品的可靠性能力次要体现在防错能力、容错能力和纠错能力。因而可靠性测试也次要围绕产品的这三大能力进行测试。
- 防错能力次要考查服务的故障预警能力,如 CPU、内存、磁盘等的容量监控告警能力。
- 容错能力次要考查服务故障后的故障隔离、故障自复原的能力以及隔离工夫。
- 纠错能力则次要考查业务故障后告警能力以及故障修复文档的可操作性。
2 可靠性测试设计
可靠性测试设计次要从产品故障模式库和业务流程两方面着手进行剖析:
故障模式思考的因素包含内部因素和外部因素。外部因素包含软件,硬件,网络和数据。内部因素包含人,负载,劫难,电力,环境等。
流程驱动次要从异样逻辑、异样事件、业务运行环境三方面来剖析:
- 异样逻辑次要包含(1)流程解决逻辑后果不合乎预期;(2)流程解决逻辑过程中所产生的非冀望事件。
- 异样事件对业务流程的影响最终也会体现到逻辑上来,产生异样或不产生异样与切入点无关,须要通过屡次重复操作减少抵触几率。
- 业务运行环境不稳固对业务的影响,次要指周边服务 / 链路状态不稳固,系统资源占用不稳固等对业务流程的影响。
无论从哪个角度登程,均属于抽取式剖析。无奈达到故障模式和业务流程的齐全组合笼罩。产品故障模式库实例化无奈思考所有业务流程,业务流程可靠性剖析也不会思考所有故障模式。故障场景剖析即是将测试对象剖析后果与故障模式相结合,将系统结构、组网架构、业务场景和要害数据融入到故障模式和业务流程的剖析中,别离生成故障模式用例、功能测试异样用例、性能测试异样用例,独特形成可靠性用例。
3 可靠性测试框架
一个残缺的可靠性测试框架次要由四局部组成,业务背景流量、激活故障的平台或工具、被测对象及故障后的监控平台(次要用于监控故障注入后的告警、隔离复原工夫)。
可靠性测试框架:
业务背景流量是由业务的基本功能或性能场景组成的,次要是用来在故障注入前和故障注入后检测业务是否失常,故障注入前需保障业务 0 谬误能力精确看到故障注入后零碎的反馈;故障注入后查看业务背景流量次要是为了察看故障后业务的隔离复原工夫。
激活故障的形式有两种,(1)通过业务场景的结构触发故障天然产生;(2)故障注入测试:间接模仿某种故障,属人为产生故障。
- 业务场景结构测试方法:
压力测试: 通过使零碎达到肯定的负荷状态 (或超过其设计的最大负荷),用以测验零碎在资源利用率高的状况下的工作情况;
长稳测试: 在肯定的压力情况下零碎继续较长时间运行能力的测试;
异样业务场景测试: 通过异样操作、业务配置、异样业务流量等结构异样业务场景进行测试,次要有:主备倒换、插拔网线、触发时序类问题等。
- 故障注入测试方法:
网络级故障注入: 笼罩网络组网相干的接口、链路、物理连贯、工夫时钟等故障对象的故障模式;
零碎级故障注入: 笼罩单零碎内的链路、工夫时钟等故障对象的故障模式的模仿;
资源类故障注入: 笼罩过程在应用内存类(动态内存、音讯包、音讯队列)、CPU、硬盘 /FLASH 等系统资源类故障对象的故障模式;
数据类故障注入: 笼罩数据库、文件等数据类故障对象的故障模式;
接口健壮性测试: 笼罩零碎中的各种接口协议音讯及其对应的故障模式;
硬件故障注入: 笼罩硬件平台中的单板、硬盘、内存、网卡芯片、CPU、总线、控制器等故障对象的故障模式。
被测对象零碎即为将要注入故障的受体。
故障后的监控伎俩通常也叫做运维可靠性次要包含告警、故障复原工夫、故障复原指南、日志定位能力等,用于检测零碎在故障后的纠错能力。
4 结束语
可靠性测试的要害是理解业务组网、架构和业务场景。基于业务组网和架构抉择适合的故障模式,在正当的点注入故障,而后失去预期的成果。可靠性测试剖析既要求测试人员理解客户利用场景,又要求相熟零碎业务流程,所以须要测试人员和开发人员共同完成。
从客户利用的角度进行:客户利用场景是测试人员善于的,对领导测试也比拟间接。次要有:大业务压力、长时间运行、业务叠加、多服务同时操作设施、流量模型、异样报文、业务配置程序、异样操作等。
从零碎实现的角度进行:须要开发和测试团队单干进行剖析。次要有:时序问题、内存透露、组件生效、CPU 过载等。
本文分享自华为云社区《浅谈云上可靠性测试》,原文作者:xiongJ。
点击关注,第一工夫理解华为云陈腐技术~