作者:王文华(连墨)
千牛是阿里巴巴商家的多端开放工作平台,每天为数百万活跃商家提供移动和桌面运营服务,包括店铺管理、客户服务接待、信息等功能。
同时,千牛本身就是一个开放的端系统架构,二三方可以通过开放系统(我们称之为插件系统)为商家提供服务。之所以叫插件,是因为我们在业务链路中定义了几个开放节点和标准,业务方按照标准实现,完成了相应的功能。正是由于这些标准和规范的存在,不同的插件可以连接到业务链接,以避免商家选择不同插件造成的功能闭环被打破。
以下是千牛定义的开放节点:
开放促进了业务和三方ISV千牛可以更充分地利用外部资源服务,如加快发展进度,满足商家的定制需求。三方插件需要四个阶段:ISV开发、服务市场上架、商家购买、千牛使用。在商家未选择默认操作插件的情况下,千牛还有一套规则引导用户优先考虑免费版本的插件,ISV 引导升级订购在商家试用过程中盈利。但开放也会带来相应的问题 —— 商家体验问题。
为了提升商业体验,我们启动了开放体验升级项目。经过持续治理,千牛月平均开放舆论数量减少了50%。那么,千牛有哪些舆论,如何设计整体防治方案呢?
问题及原因
千牛开放舆论的特点
由于开放的特点,千牛公众舆论分散,原因复杂。千牛上有大量的工具,由二三方团队提供。有些二方工具历史悠久,维护投资不足。ISV技术能力参差不齐。有许多开放技术栈和早期技术栈H5,中期的QAP(weex开放开放框架)和小程序。从前端到ISV服务器涉及7个以上的技术链接,容易受到网络和各种服务抖动的影响。许多不稳定因素给公众舆论治理带来了挑战。
开放体验的核心问题是什么?
开放体验问题多种多样,主要包括以下三种核心体验问题:
插件打开整个链路较长,在交付、商业订购、容器运行加载等环节都会影响插件的启动;由于主账户权限控制的设计,主账户可以限制各功能的子账户权限,使用时会出现权限不足的阻断问题;ISV或者二方业务本身有很多逻辑问题,千牛缺乏足够的在线问题感知能力和有效的治理起点。整体方案优化插件启动链路: 提高启动链路技术产品的容错能力,优化开启成功率在99.7%以上。闭环建设权限申请: 提高权限申请和审批效率,优化子账户插件使用体验。建立数据测量系统: 沉淀驱动业务优化的起点。
公牛有很多业务,舆论原因复杂,变化快。仅仅通过舆论问题单独解决问题是不够的。开放业务的治理是循序渐进的。一方面要解决已知问题,另一方面要建立插件启动和运行阶段核心节点的衡量标准和稳定性监控,巩固治理效果。舆论的下降是由治理、监控、预防和优化的理念驱动的。
启动链路优化
1 介绍启动过程
协议路由: 千牛正式定义了一组开放节点(坑)和相应的标准协议(e.g.tradeDetail 由ISV承担的功能按协议实现。本阶段需要分析从用户设置或操作配置到默认插件的配置协议appkey;查找插件元信息: 从服务器发布的插件列表中找到目标appkey相应的插件元信息;权限验证: 检查子账号是否有权打开此插件;商业保障: 为新用户或订购关系过期的用户完成免费订购;预授权QAP:三方插件,三方需要用户显式授权ISV访问数据;容器路由和渲染: 根据插件元的信息, 组装业务参数并交给相应的容器渲染。
2 全链路监控
首先,需要定位插件启动失败的原因和分布,以确定后续的处理和优化计划。虽然理论上可以分析每个公众舆论日志,但在实践中,由于工作量大,缺乏整体统计视角。因此,首先建立插件启动全链路监控,保留错误的上下文信息,计算启动成功率和失败原因的准确分布,为优化提供衡量基础。
埋点维度包括目标插件appkey, 技术类型(H5, QAP, 小程序),错误阶段,错误描述,打开插件源或入口信息,开始和结束每个阶段。
这些维度有几个功能:
配置不同维度的报警,如H5插件成功率突然下降或某一阶段出错次数显著增加;当整体成功率发生变化时,方便比较不同维度的趋势,快速定位哪个级别;错误阶段信息方便分阶段看错误分布,分阶段优化成功率;打开源和入口信息提供更多问题。
3 特别是插件启动优化
通过全链路监控可以看出有两种错误,一种是插件打开的前置链路失败,另一种是订购关系没有建立;
提高前置链路容错能力
启动前链路错误的主要原因是缺乏由弱网络或服务端抖动引起的启动链路的关键信息,如通过异常补偿优化的插件元信息和小程序包。通过梳理核心业务链路的头部插件和内置元信息,千牛利用订阅关系和场景信息预下载小程序包, 优化后,小程序包的命中率从85%上升到97%,整体失败率下降55% 。
升级商业安全计划
在千牛端,商家在使用插件之前必须与插件建立订购关系。这是一种商业模式的定期订购。使用前,千牛为商家续订免费版,确保主要功能可用。Review旧方案发现,原产品链路无法覆盖订购失败等场景。升级商业化保障方案后,相关错误次数下降56.7%,前链耗时下降170ms。策略如下:
异常补偿:协调服务端增加订单状态信息。订单建立时,延迟重试查询,关系建立后打开 (订购流程涉及汇金等外部系统,生效时间波动较大);如果订单不成功 (e.g.ISV被处罚,订单冻结),引导更换类似插件 (并用质量加权影响排,驱动ISV优化)性能优化:增加前置订购链路的频控策略,降低前置调用频率。增加后续订延长有效期,避免进入前置流程,并覆盖未通过插件流程打开小程序的场景。增加后续订延长有效期,避免进入前置流程,并覆盖未通过插件流程打开小程序的场景。对于最常用的默认插件,增加闲暇时间的默认续订。
启动优化专项结果:成功率从99%提高到99.7%,前链路从350ms到130ms;
链路建设的权限申请
卖方与主子账户进行团队合作,子账户将遇到权限不足的开放体验问题。今年,千牛建立了移动终端的权限申请链接,以优化商家的子账户使用体验和权限审批效率。
申请链路:
1. 拓展客户端API对于双方,双方主动调用触发申请指导,满足一般需求;由于双方验证方法灵活,缺乏统一的封闭。
2. 三方链路三方链路权限不足,自动触发申请提示。由于历史原因,三方小程序分为两类 (权限粒度维度),检测方法不同。a. 从QAP升级小程序: 授权粒度为授权包(匹配)TOP响应错码) b. 直接作为小程序入驻:没有精细的授权标准,授权粒度是小程序的应用级别 (匹配 getAuthUserInfo API错误码)。通过监控小程序API调用,触发申请流程;前者也需要使用;TOP API在名称到服务端更改权限包和权限点信息后,创建工单通知到主账户审批。
审批链接:主账户收到待审批信息,点击相应权限审批详情页面。
优化后,子账户权限不足的错误数量下降57%,相关舆论下降52%。
建设数据测量系统
开放工具的功能和质量主要取决于业务逻辑和服务的可用性和稳定性,因此应定义核心指标,监控在线异常,并及时处理。数据测量系统的建设主要包括感知指标的建设和舆论SOP优化,开放体验市场建设。
1 体感指标建设
通过小程序序事件机制TOP和云应用的业务成功率,自建体感白屏率(H5,weex和小程序),扩小程序白屏率检测方案,多次监控业务方在线问题,促进回滚和修复。
插件核心运行质量指标
通过建立相应的指标,可以全面监控在线插件运行的稳定性。除常见的纯技术指标外:接口业务成功率,bridge API成功率,JS error千牛还建立了体感白屏率,以反映插件的在线运行质量。
体感白屏率
虽然有核心节点的技术指标,但这些技术指标并不能完全覆盖功能不可用的场景:日云应用扩容,新机器配置问题导致订单数据为空,但接口是成功的;某些技术指标错误,并不代表一定会功能不可用,比如部分JS错误。所以需要建立指标,从体感上直接度量可用行。其中,千牛插件功能不可用最常见的问题是白屏。
白屏率定义:在一定时间内,页面元素得不到及时的展现,导致页面布局出不来,或者出现错误的打底页面,或者部分的图片出不来的页面,定义为白屏。
检测方案:在千牛端小程序场景下,主要分为噪点场景过滤,白屏检测,和结果上报三个阶段。其中结果上报主要使用魔兔埋点平台上报和告警,不再赘述。
噪点场景过滤:
存在打开某个小程序页面A后,ISV代码自动跳转/切换到其他页面B,当用户访问页面A才会触发真正的渲染。因此如果在A不可见的时候检测,会被认为是白屏。这种技术实现差异造成的伪白屏并不影响用户体感,并不是我们的检测目标;千牛大量的小程序是三方提供的,在访问用户数据前强制要求授权,因此如果检测时,还卡在授权流程中,小程序页面是白屏的,可检测授权弹框避免误判。部分小程序页面使用了同层渲染的能力,比如使用了视频,地图等组件的小程序页面。这些元素不是正常的html元素,无法被JS探测到,但并不是白屏,需要通过配置页面白名单的方式过滤。
检测策略:
白屏检测主要策略是统计有效元素个数,有效元素指的是文本,图片等有效信息载体。在小程序和H5插件上,通过注入JS到webview, 获取界面元素的统计信息。千牛端和大多数C端应用不同,千牛存在不少重输入的页面,比如问答插件的回答页面有大片面积的输入框,这种情况下认为不是白屏,通过检测是否存在输入框相关组件判断。在千牛端,如果商家没有订单,页面可能出现较大面积的空白,所以需要过滤存在"还没有", "暂时没有"等白名单文案,避免误判为白屏。
经典案例
二方业务白屏
4月某二方业务线上用4g网络访问情况下,出现白屏。白屏率指标及时告警,白屏率可以看到分钟级别的明显变化,修复后回落,避免了舆情飙升。
三方业务改版触发限流
3月收到某头部三方插件调用物流接口告警,主要错误是被限流,成功率只有80%,明显低于平均水平。原因是该ISV新版本在订单列表查询物流信息,导致调用物流接口量太大触发被限流。通知ISV从产品层面进行了调整后成功率明显上升。
2 舆情SOP方案
千牛上用户反馈很多是从全局反馈入口进行反馈,缺少插件上下文;而且用户对插件心智不足,反馈问题的时候指向性弱,舆情分析和问题驱动难。千牛的方案是记录插件使用动线,在用户反馈插件类舆情时,展示最近使用工具,引导选择反馈目标插件,给舆情信息增加目标插件信息和问题分类,便于统计和告警。上线后,带有插件appkey的开放舆情占比从11.95%升到95%。
3 开放体验大盘
通过整合舆情、技术指标和体感数据,千牛建立了开放体验大盘,做到了插件体验可跟踪、可衡量。依据插件舆情数,技术指标,体感指标建立插件质量大盘,对千牛插件质量一目了然,成为推进二三方优化的重要抓手。
总结
千牛优化了插件启动容错能力、建设了子账号权限申请产品链路,提升了自身链路的可用性。也通过建设体感指标,提升舆情反馈和分析能力,搭建开放体验大盘,对线上插件运行质量建立了上帝视角,既能及时发现线上问题,也能通过数据有的放矢地驱动二三方业务优化,系统的提升了商家在千牛端使用开放工具的体验。
关注我们,每周 3 篇移动技术实践&干货给你思考!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至827202335@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.eztwang.com/dongtai/73685.html