您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
京麦客户端插件质量体系设计与实践
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
京麦客户端插件质量体系设计与实践
京麦研发团队
2021-08-30
IP归属:未知
44640浏览
基础设施
行业研究
### 一.为什么要建设插件质量体系 在移动互联网时代,用户对于APP的性能及稳定性要求越来越高,APP的使用体验是影响用户留存及业务发展的重要因素。京麦是京东全业务域商家的客户端,京麦质量的好坏直接影响商家在京东的日常运营,影响商家对平台的满意度,因此京麦需要保证系统的稳定,提升客户端的使用体验。但京麦是一个平台,除了原生开发的核心功能界面外,还嵌入了咚咚及京东内外部开发团队开发的H5、小程序,这些插件用户体验参差不齐。因此,京麦需要在保证原生功能体验的基础上协同咚咚、内部开发者及ISV共同保证京麦的用户体验。 搭建插件质量体系之前,京麦推动插件优化主要还是靠用户反馈,但用户反馈的问题很多无法验证,分析和解决起来缺少数据支撑,京麦无法为插件开发者提供帮助,开发者也不知道该如何优化,导致线上问题得不到快速解决。因此,京麦需完善监控指标,建立质量体系,形成质量标准,能够分析验证线上问题,提前发现问题,建立解决问题的抓手,帮助并推动开发者进行插件优化。 ### 二.行业现状 竞品及行业上较为成熟的开放平台类产品均有自己比较完善的质量监控体系,能够监控原生及各技术栈插件的性能及稳定性情况,并建立质量指标,将指标数据在监控平台全部开放给开发者,指导开发者进行优化。同时,平台会定义质量标准,推动开发者进行体验优化,如优化达不到平台要求会根据规则采取一定的处罚措施。 ### 三.整体架构 上图是京麦插件质量体系整体架构图,京麦原生、咚咚、H5、小程序都是质量体系中的插件。通过客户端监控数据上报及监控系统的数据采集、存储、分析、计算形成稳定的插件质量监控指标;通过对质量监控指标进行建模,计算插件质量分,形成完整的、可反映插件真实用户体验的质量报告;通过质量预警将线上突发问题、实时用户反馈等信息及时推送给开发者;提供监控平台给开发者查看质量报告及各指标详细监控数据,并提供基于企业办公软件(面向平台产研团队及内部业务团队)及邮件的主动触达渠道,实现对开发者的及时推送。 ![](//img1.jcloudcs.com/developer.jdcloud.com/a160b665-1c26-476b-86dd-f9f8a875de2620210829111800.png) <center>图一</center> ### 四.详细技术方案 1. 客户端数据上报方案: 客户端负责采集监控数据并准确的上报到服务端,服务端监控系统需提供客户端上报监控数据的接口。客户端可根据具体监控指标的不同选择不同的采集和上报数据的方式,对于用户主动发起的问题反馈、插件评价这些低频的操作,客户端可以直接调用服务端接口上报用户反馈、用户评价这些指标数据,对于插件性能、插件异常这些指标,上报方式如图二所示,当用户点击打开某个H5界面后,京麦APP就读取提前准备好的H5性能及异常监控JS脚本,并将该脚本注入浏览器,在H5开始运行后自动开启监听,并把收集到的数据回传至APP内置浏览器,浏览器再将数据整理后发送给APP数据管理器做数据整理和上报,服务端收到上报数据后做存储。同时监控数据是异步上报的,以免监控数据上报慢影响到用户使用插件的体验。同时客户端应该有一定的重试机制,当因为短暂的网络抖动等问题导致数据上报失败时,客户端应该将数据缓存起来,隔一段时间继续尝试上报。当缓存中数据超过一定的条数则可以丢弃,以免数据过多占用客户端内存。同时,客户端对接了京东httpdns,提升了域名解析的准确性,进一步保证了埋点数据上报的成功率。除了京麦客户端自身上报的埋点外,京麦还集成了mpaas平台鹰眼以及子午线SDK,部分指标如崩溃率等的数据直接从鹰眼同步,小程序的使用数据通过子午线埋点数据分析得出。京麦应用评价评分数据来源于应用市场,H5及小程序插件的评价评分数据来源于服务市场。 ![](//img1.jcloudcs.com/developer.jdcloud.com/d4dbf48b-e4a7-4e85-a211-7de20c71061920210829114738.png) <center>图二</center> 2.监控系统的技术方案: 服务端监控系统主要负责监控数据的采集存储和分析计算。服务端收到客户端上报数据后,进行有效性校验及数据加工,然后通过JMQ进行异步的数据存储,目前主要用elasticsearch及Hbase存储监控数据,保证了监控系统高并发场景下的性能和高可用。H5插件质量监控数据的分析计算是质量体系搭建的基础,光有了监控数据还不够,需要将监控数据进行分析,形成指标,比如H5插件性能主要统计的是在移动客户端内置浏览器运行时的用户可操作时间、白屏时间、整页时间等,那我们可以基于整页时间计算一个指标叫做H5插件性能TP90,根据计算结果并参考业界标准制定平台的性能达标要求,以此推动H5插件开发者进行优化。关于监控指标的计算,目前是基于大数据平台调度任务进行离线数据分析,每天、每周、每月对不同的监控数据指标按照端(ios、android、pad、windows、mac)、客户端版本、系统版本等维度进行统计,将统计结果出库,并在监控平台开发指标及详细埋点日志的可视化分析页面。图三是目前京麦插件质量指标体系,包括产品指标、原生指标、小程序指标、H5指标、咚咚指标。 ![](//img1.jcloudcs.com/developer.jdcloud.com/1f6eec32-bc4c-4169-af12-e29fa0acd19c20210829113712.jpg) <center>图三</center> 3.质量报告的技术方案: 有了质量指标体系以后,就可以对指标进行建模,图四是基于H5插件质量监控指标构建的质量模型示例,一个完整的模型由多个因子构成,各因子权重相加为1,一个因子由至少一个指标构成,因子下指标权重相加为1。基于此质量模型就可以计算H5插件质量分了,满分100分,各指标分的计算方式可以不同,比如H5插件使用周PV这个指标,可以划分不同的区间, 小于100规定50分,大于等于100小于1000规定60分,大于等于1000小于5000规定80分,大于等于5000小于10000规定90分,大于等于10000规定100分。再比如用户评价指标,其是一个1-5分的值,可以将其直接乘以20换算成指标分,指标分的计算也可以借助一定的正态或偏态分布算法实现,京麦插件质量分复用了京东商家“京东好店”评分模型,在此也感谢规则与治理研发部同事的大力支持。每个H5插件的质量分由因子分相加得来,各因子分由各指标分相加得来,各指标分是在按照上述示例或一定规则计算后的分数乘以因子权重,再乘以指标权重得来的。为每个H5插件计算质量分以后,就可以结合详细的指标监控数据,开发H5插件质量报告,将质量分排名情况及各指标排名和详细监控数据在监控平台展示给插件开发者,也可以通过企业办公软件、邮件等渠道每周定期推送,使开发者持续且全面的了解自己H5插件的真实用户体验,根据平台质量要求及质量报告中详细指标监控数据做插件体验优化。上面是京麦H5插件分及质量报告的设计,同理可搭建小程序、京麦原生及咚咚的质量分及质量报告。 ![](//img1.jcloudcs.com/developer.jdcloud.com/a0ef82a7-8503-4b5e-8a85-f18b56a1276520210829113830.png) <center>图四</center> 4.质量预警的技术方案: 通过上述介绍已经可以将线上长期存在的问题触达到开发者,便于开发者持续的跟踪和优化插件体验。但是对于用户的及时反馈或者线上突发的问题还需要平台产研团队发现问题后主动联系插件开发者解决,处理问题的时效低,问题恢复时间长,用户体验差。对于用户反馈,京麦借助企业咚咚的开放能力将反馈信息实时发送给京麦产研及插件开发者,当然平台会维护每个插件对应的插件开发者联系信息。对于线上突发的紧急问题,首先要具备质量监控指标的近实时计算能力,能够在譬如一分钟内监控到插件的线上问题。指标实时计算可以采用redis计数,统计一分钟内的异常次数,超过报警阈值则将报警触达给开发者,比如插件A一分钟内平时平均只有1次JS异常,忽然在某一分钟异常数达到100次,这时就可以通过实时计算监控到异常,及时推送给开发者,迅速排查问题原因。实时计算也可以借助目前比较流行的流处理框架Flink实现。目前京麦的实时预警中心是基于JDQ和Flink实现的,如图五所示,在大数据平台开发实时计算任务,指标监控数据按照制定好的协议通过JDQ发送给实时计算任务,Flink完成单位时间内数据统计后再通过JDQ发送到监控系统,监控系统用jimdb存储统计数据并按照配置的预警规则执行报警,通过企业咚咚触达开发者。质量预警的搭建对于线上突发问题的解决尤为重要,使得京麦和插件开发者能够保持更好的协同去及时的对线上问题进行止损,更好的保证插件的稳定和用户的体验。 ![](//img1.jcloudcs.com/developer.jdcloud.com/e02f559f-0657-401a-adc2-759b9333f64520210829114221.jpg) <center>图五</center> ### 五.取得的效果 1.H5插件质量体系初步搭建完成,质量报告每周定期触达开发者,京麦以质量分为抓手开展质量治理,帮助并推动开发者优化H5插件性能及稳定性,插件整体使用体验不断提升,线上插件白屏等疑难问题不断得以解决,插件性能达标率持续提升。图六为H5插件质量报告邮件推送模板,图七为企业咚咚推送模板。 ![](//img1.jcloudcs.com/developer.jdcloud.com/6c778e35-9f43-4ad4-8e7a-a41760ed763f20210830090503.jpeg) <center>图六</center> ![](//img1.jcloudcs.com/developer.jdcloud.com/f69eac1c-af81-4d87-9c2d-e70cbe64b48f20210830090537.jpeg) <center>图七</center> 2.京麦整体质量报告搭建完成,可长期跟踪京麦整体质量情况,根据质量分协同内外部开发者进行体验提升。图八为监控平台整体质量报告页面。 ![](//img1.jcloudcs.com/developer.jdcloud.com/255c0064-3ee0-41a5-8abc-0f1b4fdf493820210829225401.jpg) <center>图八</center> 3.通过质量预警多次协同插件开发者在线上问题发生时做到及时止损,保障系统稳定。图九为一些处理案例。 ![](//img1.jcloudcs.com/developer.jdcloud.com/efabd69a-e009-4596-98c5-cb1aec51056520210830090654.jpeg) <center>图九</center> ### 六.总结 通过整个插件质量监控体系的搭建,平台向内外部开发者提供了优化插件体验的平台能力,开发者可在监控平台查看完整的插件质量报告及各质量监控指标的详细数据,根据质量分全面了解自己插件的体验情况,根据平台制定的质量标准进行插件体验提升。同时,平台提供了主动触达开发者的能力,定期将质量报告推送给开发者,及时将线上紧急问题及用户的反馈推送给开发者,保障问题发现及解决的时效,协同开发者将插件的用户体验做到极致。京麦2021商家满意度持续向好,质量体系的搭建功不可没。
原创文章,需联系作者,授权转载
上一篇:产品成长修炼之路
下一篇:垃圾回收器-ZGC的设计思路
相关文章
JDA在批量录入POP返利规则中的应用
京东Windows通用浏览器
京麦客户端插件质量体系设计与实践
京麦研发团队
文章数
11
阅读量
69603
作者其他文章
01
京麦客户端组件化设计与实践
详细阐述了京麦windows客户端程序组件化的架构设计与实现
01
深度解析移动端各技术栈
移动端
01
Widget开发实践
Widget开发实践
01
借助Xposed辅助检测安卓App隐私相关合规问题
借助Xposed辅助检测安卓App隐私相关合规问题
京麦研发团队
文章数
11
阅读量
69603
作者其他文章
01
京麦客户端组件化设计与实践
01
深度解析移动端各技术栈
01
Widget开发实践
01
借助Xposed辅助检测安卓App隐私相关合规问题
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号