大家好,我是阿萨。做产品是肯定要发布的,要发布就要保障线上环境的稳定性。现在大部分环境都要求全年99.99%的在线时长,大家可以计算一下全年多少秒,只有0.01%的容错机制。大家可以算一下具体是多少分钟,而且它其实只是一个标准要求。
在这样的要求下,还要保障安全性,性能和稳定性以及容灾恢复机制。这对质量提出了很高的要求。今天阿萨就从自己的经验出发,列举一些常见的质量保障措施。
保障线上产品质量主要分为三部分:
一 、回归测试
线上测试肯定和线下测试不同。主要分为2部分:
1. 埋点测试。通过分析用户使用场景模型。在自动化或者性能测试场景中使用。确保用户基本场景不出问题。上线前以及上线后分别执行自动化测试和性能测试。分析日志是否有风险。同时做好上线回归测试的测试策略。
分析性能的趋势,优化性能。保证性能达到要求。
线上环境的全链路模型分析出来后,最好在线下模拟一套类似环境的。同时数据量是基本一致的,方便做好上线前的测试。
2. 产品交互角度。通过对用户行为分析,针对目前功能特性进行优先级划分。
针对高优先级的功能,对它进行高优先级的回归测试,以及用户交互的优化,让客户对其满意度达到预期。
针对中优先级的功能,针对用户交互行为进行跟踪,避免用户交互影响体验方面对产品的影响。
低优先级的功能,只要不出错。不对用户交互产生影响的,可以把保障的质量标准放低。
二、 监控
线上环境的监控和预警机制在开发设计时就必须要考虑清楚了。
系统层面,CPU和内存的监控和预警。应用层面,响应时间等监控。业务层面,比如用户的点击率,交易量,注册量等这些内容出现异常一定要及时给开发人员发邮件报警。或者在同一质量管理平台展示。确保问题扼杀在摇篮里。
测试同学可以在开始就找开发问清楚这些监控的标准以及机制是否完善。
日志系统也要完善和完备,确保系统在出现特殊情况时可以快速追踪问题。
三、 收集线上反馈
通过金丝雀部署,蓝绿部署,A/B版本部署等方式,先收集部分用户的反馈。确保其功能没有收到影响。同时针对部署了新功能的服务器进行直接测试。
也可以在部署后持续监控日志或者是分析用户操作。如果发现有严重问题,立即进行回滚。
以上就是阿萨日常保障线上环境问题的方式和方法。希望对大家有帮助。
如果觉得阿萨的内容对你有帮助,欢迎围观点赞。