时下,移动互联网时代中,完成原始用户积累已经明显比过去更为容易,也更加轻松。在这个过程中,用户体验问题也成为了最具讨论价值的话题之一。对于企业而言,即便你拥有再厉害的产品,也需要有非凡的用户体验,才能长久的留住用户。

哪怕是“业界唯我独大”的12306网站,也需要与时俱进,不断优化用户体验,才能保住自己的“江湖地位”。 而在后移动互联网时代,软件工程师需要和硬件工程师共同配合,才能保证服务的稳定性和可靠性。基于此,今天,我们就和大家一起探讨一下,能为企业节省巨额成本的软件稳定性的相关内容。

1、为什么要维护产品的稳定性?

如果说良好用户体验是软件用户增长的基础,那么稳定的使用体验和流畅的操作性就是用户体验的基础。只有维护好产品的稳定性和流畅性,才是留住用户的王道,也是为企业节流的潜在做法。

然而,随着我们服务的用户量日增,服务复杂程度提升,我们的系统为了实现可维护,也会在业务架构和系统架构上进行调整。这也是为什么微服务架构会盛行的原因。使用微服务架构时,的确会帮我们提升系统的可维护性,当然,也会有弊端,那就是企业维护成本骤增。

另外,不少产品运行要求:集群化部署、分散服务、稳定性运行。

事实上,无论是硬件故障、网络异常、资源异常、其他依赖异常、配置异常等,任何一种情况出现,都会打破原有的平衡导致稳定性问题的出现。这也是为什么软件稳定性被破坏的场景非常多的原因。加之,复杂的稳定性演进过程中,又有很多场景出现,这样交织的变化对分布式系统测试,也给软件测试工程师在测试软件稳定性方面,带来了巨大的挑战。

2、那么,什么是系统稳定性?

顾名思义,它是指系统要素在外界影响下表现出的某种稳定状态。

那么如何衡量系统稳定性的高低呢?通常情况下,一个常用的指标就是服务可用时长占比,占比越高,说明系统稳定性也越高。

举个栗子:如果我们拿一整年的数据来看,常见的4个9(99.99%)意味着,我们系统提供的服务,全年的不可用时长只有52分钟!

它其实是一个综合指标,为什么这么说?因为我们在服务可用的定义上会有一些差别,常见的服务可用包括:服务能正常触发、服务响应时间低、服务有效(逻辑正确)、服务无异常,等。

3、如何维护产品稳定性?

1)找出故障来源

日常情况下,系统出现故障的原因主要包括两类。一类是人为因素,另一类是自然因素。那么,人为因素可能有哪些呢?大家可以看看下面这张图片。

人为因素一般是可控的,但需要事先避免。在工作中,很多软件不稳定性都会出在认为因素这一块,因此,软件测试人员需要在测试前,对整件事情抽丝剥茧,剥离掉这些影响因素。

下面说说自然因素。

自然原因导致的故障可大可小,虽然无法避免,但由于没有第一责任人,避免了“人性拷问”,测试工程师可以和运维部、安全部的同学协作起来处理故障。

2)稳定性的处理逻辑

基于笔者的工作经验有限,下面给大家提供一些思考的方向和思路,大家可以结合自己工作的场景,去尝试。

l 失败后是否重试,重试了几次;

l 通过定时检测发送告警,运维介入修复,查看是否存在消息堆积、资源不足等问题;

l 定时巡检,拉起或修复;

l 结合业务量冗余情况,通过某些方式限制访问量;

l 非关键配置不强制检验,使用默认值或忽略输出错误信息;

l 异常数据容错,使用默认值;

l 预取、缓存一些内容,提升业务响应速度;

l 异常或并发、批量操作合理性;

l 资源不足可以通过比较动态方式交互提醒、做预判断;

此外,对于日志、备份数据和其他数据,测试人员要考虑到回滚,设置清理机制等,避免数据堆积和漏测。有的还需要考虑到数据持久化(重启不丢失)问题。

3)测试软件稳定性的工具

下面给大家介绍一些可以测试软件稳定性的工具。由于笔者涉猎的比较少,欢迎大家随时补充内容。

l 网络质量设置工具:iptable

l cpu跑高工具:stress、sysbench

l io跑高设置工具:fio

l 内存:memtester

l openstack环境使用的网络性能测试工具:shsker

写在最后

不知道大家在日常工作中,是否遇到过因为产品稳定性不足,导致产品在使用过程中出现崩溃的事故呢?如果有,欢迎大家在评论区留言,跟大家分享一下事情的始末,以便大家共同探讨解决问题的妙招。


资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走…


现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!