文章目录

智能“排雷”技术,如何保障双11数据链路百亿次调用稳如泰山?

来源:阿里技术

历年双11大促准备都是阿里各技术团队需要攻克的一场硬仗。每年双11,迎接我们的都是瞬间涌入的数据洪峰,作为集团的数据中台,我们不仅要对外保障商家端的数据服务畅通无阻,还要保障内部各数据产品的流畅。

从2016年双11结束之后,数据中台产品技术团队就开始着力从自动化大促备战向智能化保障的升级探索。

到现在为止,我们已经实现了通过“数据+机器学习算法+智能服务能力”,从稳定性、效率、性能、用户体验等方面,智能化地保障数据链路的畅通无阻。本文将重点从压测、全链路功能验证、SQL性能治理三个方面介绍我们在2017双11期间的智能化实践。

1、智能压测

单链路压测、全链路压测、性能压测优化等,是每年大促保障的重头戏。

传统的压测方法如下:

双11数据链路

数据中台的数据产品有上百个系统、压测场景有 20W个左右;而上述这样的压测方式,以人肉评估目标QPS、或通过传统方式的评估压测数据模型,其实难以满足产品覆盖众多系统,业务场景数巨大的性能压测。

双11数据链路

今年我们采用了时间序列预测技术、GBDT/决策树等机器学习算法,来提升压测专项的智能水平。基于DAS算法模型平台,提供时间序列预测服务;tensorflow、PAI机器学习平台训练的分类模型,部署到DAS算法模型服务平台提供分类预测服务,智能压测PIT平台在今年618大促保障中,已经取得了显著的效果。在今年的618大促中,覆盖10多个数据产品系统,353次压测任务执行,发现bug 4个。

双11数据链路

 在今年双11大促备战的全链路压测中,数据产品及系统的目标QPS上百万。压测覆盖10多个数据业务域的30多个核心系统,19万个压测场景。

对核心保障的数据系统的QPS通过PIT进行了智能预测,智能配比生成19W+的大促压测url的配比模型数,应用覆盖率90% ;

 压测调速的提升示例:针对村淘数据产品页面的累计39个接口进行了智能化调速测试,初步估算累计降低人力投入9个小时。

压测报告结果判定:通过智能判断模型,对3轮全链路压测的性能结果数据进行判断,直接产出压测结论。今年双11压测备战发现26个问题。

双11数据链路

 

通过智能压测的qps目标智能预测,压测精细化的数据配比智能预测,及性能结果数据智能决策分析,DT数据产品大概33个系统19万压测场景, 平均1个系统的全链路压测整体工作大概能节省约 48-72小时。DT产品技术的一次大促压测,整体能节省300多人日投入。

通过历史大促数据的验证,目前大促态的压测qps预测模型准确率80%以上,压测模型配比的准确率预测达到90% 以上,压测结果数据的智能预测分析模型准确率也达到了90%左右。已经达到了一个资深测试人员的水平。 2秒种的评估预测,能起到一个测试工程师培养2年后的评估效果。

2、全链路功能验证

在每年的双11业务保障中,全链路的功能测试验证也是非常重要的环节。今年我们从线下的功能回归,到线上的质量监控;从产品的UI测试到底层接口及数据的测试,都实现了智能化的测试及监控。

双11数据链路

目前覆盖了30多个核心数据业务系统。其中涉及智能套件有:

神机营(UIT) ——智能化接口回归测试系统-智能质量审核

传统接口测试的结果校验需要大量的断言来检查接口返回的数据,而我们通过使用GBDT算法,对接口返回值通过数据接口模型、数据值合理性模型判断,完成HTTP/HSF接口测试结果的自动化审核,从而满足10W级的自动化接口回归的测试效率、准确性需要。

通过分布式任务队列,异步、多进程及协程等技术提升了测试效率,20W个测试场景的回归测试验证,只需要30分钟就可以运行完成。

双11数据链路

在今年双11期间的保障中: 基线case数量:19W左右,覆盖商家端、媒体端、小二端等31个数据应用;发现bug100+;日均保障场景数量2.7万个;累计保障场景次数:400万次。

斯沃特(SWT)——UI测试智能遍历

通过采集用户操作行为数据,页面dom元素数据,根据pv、uv等综合因素选取数据生成测试链路,实现Web UI前端自动化测试用例的自动生成,解决UI自动化测试用例维护成本高,场景收集复杂的问题,实现对页面所有可操作元素、多种浏览器的覆盖。

双11数据链路

目前,通过在topN的浏览器上,遍历系统的页面,获取UI的url、页面元素、截图等数据;对UI回归的结果(涵盖页面js异常, UI图像识别判断, base的判断规则等)数据 进行智能审核的判断。覆盖基线case数8838、发现UI bug数10+个、覆盖数据中台核心系统26个、运行任务量2934、保障场景数高达164676。

页面兼容性智能化测试系统(CIT)

用tensorflow等机器学习工具,基于卷积神经网络CNN等图像识别深度学习模型,自动识别各个浏览器的页面截图结果是否有异常或错误。应用到Web页面浏览器兼容性测试这个场景,能起到节约测试用例维护成本,提升测试执行效率,解放测试资源。

双11数据链路

目前CIT在双11的保障期间,总调用量:13.5万,日均调用量:850张图像,总case数量:5892 ,巡检发现线上bug3例。 

望楼(SEW)——智能监控预警平台

使用异常检测分析、时序算法模型,并通过关联分析对时序数据指标进行智能化的监控预警。sew可以不再局限于某一个指标维度的数据监控,它涵括了业务数据、服务数据、运维数据和舆情数据,通过多个维度来保障线上产品的质量。望楼(SEW)同时通过线上巡检(UI、接口)来实时监控产品的线上质量。

双11数据链路

目前的双11保障中,望楼(SEW)已用于监控商家端数据产品,统一数据服务平台等多个业务线产品14个系统上百个核心指标,共监控发现8个线上有效异常,其中一半预警是其他监控平台未预警发现的。 

这些全链路功能的智能化套件,目前覆盖了数据中台核心数据产品及系统的线下、线上质量保障,提升了产品及系统在双11备战期间及当天的稳定性。

3、慢SQL性能治理

某数据产品是为用户提供不同数据源的报表构建功能,统一用户的查询入口,方便的保存报表信息,沉淀用户SQL。但是,该产品存在部分慢SQL会拖累整体的计算响应速度,导致整体报表的结果处理返回时长变长,导致性能损耗比较大,需要提升。

针对慢SQL,我们分为传统解决方案与智能化解决方案,从两个方向入手,处理慢SQL问题。

智能化方案和传统方案的对比如下:

双11数据链路

智能化慢SQL治理流程如下:

1.采集用户报表的原始数据(静态SQL数据,暂时没有涉及资源情况);

2.对原始数据做结构化处理,基于ANLTR4提取出SQL的AST语法关键特征值;

3.基于PAI 机器学习平台,搭建实验模型,做数据预处理;

4.通过随机森林算法,训练出预测模型;

5.基于训练的模型,对产品慢SQL做治理,提升性能;

双11数据链路

最终基于纯报表SQL的特征分类模型的准确率维持在92.6%左右,混淆矩阵如下所示:

双11数据链路

在双11的性能优化中进行慢SQL的智能治理,取得的效果如下:

小于30分钟查询的数量从2.38%下降到 0.5% ,提升了 79% 的性能空间;大于30分钟的慢SQL:从原有的4.9万减少到400条左右,降低了99% ,大大降低了双11慢SQL的运行性能成本。

写在最后

今年是智能化助力DT数据产品和系统的第1年, 通过智能化技术助力双11,我们在稳定性保障、效率提升、性能优化、用户体验提升方面 都取得了不错的实战效果:上百个数据产品系统,10W级业务场景,在双11当天抗住了百万级的QPS峰值请求,全天上百亿次调用下丝般顺滑、稳如泰山、全天0故障、监控发现线上问题10min之内的响应处理。 未来,我们将继续加强大数据场景下智能化的技术能力提升及输出,通过智能化继续保障质量及稳定性、提升效率、体验。

本文网址:http://www.santii.com/article/191.html


数据更新时间:2018-11-16