11月8日,2022 vivo开发者大会正式开幕。此次大会以“MORE,近你所想”为主题,共设有1个主会场及9个分会场。其中,在互联网技术-最佳技术实践专场中,来自vivo的工程师们分享了wepy-chameleon编译器、后羿低代码平台、实时计算平台等6项成果,与开发者们共同探讨前沿技术实践。
前端创新实践,自研编译器助力小程序架构升级
在早期的小程序开发中,wepy框架能够很好的解决模块化、组件化等工程化问题,但是随着时代的发展和演进,社区逐渐沉淀出以 uniapp 为代表的 Vue 跨端体系和以Taro为代表的React跨端体系,wepy目前的社区活跃度比较低。基于当前的业务诉求,vivo自研推出wepy-chameleon编译器,可以一键将wepy框架转换为uniapp框架。
vivo互联网用户运营前端专家万安文分享了wepy-chameleon编译器思路和实现,包括单文件组件编译转换核心设计、整体编译系统流水线设计、Parser解析器架构的设计与实现以及Transform转换器的架构设计与实现。在编译器的实现过程中,vivo团队也遇到过一些挑战,比如uniapp中的template string和Scope Style的适配问题。
据万安文介绍,后续编译器将覆盖更多的wepy项目及场景,团队也将继续深挖业务中可以通过编译提效的空间,用技术推动业务的快速升级。
用低代码平台提效,解放开发生产力
低代码是一种可视化的应用开发方法,可以用较少的代码、以较快的速度来交付应用程序,随着前端新技术的出现及云原生时代的到来,低代码的优势愈发显现。分会场上,vivo专家分享了针对后台toB系统建设以及游戏中心toC端native界面搭建的两款低代码平台。
后羿低代码平台是一款在线可视化开发平台,能够支撑运营后台业务的高效高质量落地。该平台采用了前后端分离的技术方案,更符合开发思维,在实现方式上具有灵活性较高、拓展性较好、可集成度较高等优点,在架构上也具有分层明确、低码分离实现等优势,能够满足不同群体更加复杂的业务诉求。
除技术方案外,vivo互联网高级前端工程师王宁还分享了自研高性能渲染引擎、可视化配置方案以及千亿级内容投放等提效秘诀。针对低代码与传统开发如何共存的问题,王宁表示,低代码与传统开发并不冲突。一方面,平台在不断丰富场景模型以提高拓展能力和配置效率,另一方面,平台在架构上兼容传统的定制化开发,二者优势互补,全面提效。
vivo游戏中心是vivo游戏核心的流量入口,然而在互联网流量见顶和频繁发版的背景下,游戏中心的首页存在一些不足,概括来说有两点:缺少灵活多样且能动态调整的组件化能力,缺少可视化快速搭建页面的能力。针对这些痛点,vivo互联网游戏团队推出了游戏中心低代码平台,通过组件化设计,满足不同用户的需求。
vivo互联网架构师陈文洋从标准组件打造、数据引入和页面组装三个方面详细介绍了平台的搭建过程。该平台使得原先的研发流程发生了变化,能做到新增或修改组件无需发版,大大提升了开发效率,缩短了项目周期。
打造稳定易用、安全高效的实时计算平台,深度挖掘数据价值
2022年,vivo互联网在网用户总数达到2.8亿,多款互联网应用的日活超过了千万甚至突破了1亿,为了向用户提供优质的内容和服务,需要对海量数据进行实时处理,同时,为了向广告主提供更加优质的广告服务,也需要提升商业化能力。然而,庞大的业务规模和业务增速给vivo的实时计算团队带来了非常大的挑战。
对此,据vivo互联网大数据平台计算方向负责人陈涛介绍,vivo在2019年下半年就启动了实时计算平台的建设,2020年关注在稳定性建设,初步上线了SQL能力,2021年引入了Flink 1.13版本并启动了容器化建设,2022年主要关注在效率提升,包括流批一体、任务诊断等,到目前为止,平台已初步具备了一些能力。
据了解,平台是vivo基于Apache Flink计算引擎自研的覆盖实时流数据接入、开发、部署、运维和运营全流程的一站式数据建设与治理平台,支撑着实时数仓、实时智能推荐、商业化实时广告、实时安全、实时监控等五大业务中台。
分支路径图调度框架落地,助力项目迭代提速
vivo效果广告推荐系统是一套实时的AI在线预估服务,每天承载了百亿次的广告投放请求,支持了vivo的效果广告收入,在可用性、可扩展性、健壮性等方面具有非常高的要求。其中,schedule是系统的核心模块,负责业务逻辑调度,上下游依赖特别多。schedule在调度其他模块时采用异步调度,异步调度管理方法则是有向无环图,然而有向无环图即使是目前使用最广泛的方法但也并不完美,作为一种全路径图调度框架,有向无环图已经难以适用系统不断增长的复杂度。
为了安全开发和提升迭代效率,新的调度方法被迫切的创建出来,那就是支持分支路径的图调度框架。它的原理是,在原有的图调度框架中,添加两处功能,一是加入了分支节点,二是对于图中节点的触发支持“与激活”和“或激活”。
vivo互联网效果广告AI架构师周保建用调度流程图展示了分支路径调度框架在vivo效果广告推荐系统中的落地过程。使用分支路径调度框架改造后,图中添加了判断节点,具体路径的走向由判断逻辑控制,系统可扩展性得到提升,系统熵增减轻。
当图与实时在线系统融合在一起的时候,也显现出了更多的是提升了空间,比如,图的整体超时、异常管理,节点超时、异常管理以及复杂图结构的自动化简。周保健表示,vivo团队后续将针对这些问题做进一步的优化升级。
不断实践探索异构混排,为广告主和用户提供更优服务
混排,就是需要在保障用户体验前提下,通过对不同队列中的异构内容进行合理混合,实现收益最优,更好的服务广告主和用户。混排的核心挑战主要有三点:不同队列item建模目标不同,难以直接对比;候选队列常受到大量产品规则约束;由于业务限制,混排时往往不能修改候选队列的序,需要实现保序混排。
vivo互联网高级算法工程师沈技毅分享了vivo信息流和商店场景中的混排实践。对于信息流场景,混排侧主要解决的问题是内容队列与广告队列的混排问题。这一场景下,vivo混排经历了三次迭代,分别是固定位混排、Qlearning混排以及深度位置型混排,整体思路是希望在Qlearning阶段通过简单的强化学习方案累积样本,快速探索收益,后续升级为深度学习方案。这带来3个好处:与上游打分解耦,大大提高了混排稳定性;深度网络,可容纳信息量大;能够考虑页面间item相互作用。
商店场景中,混排的核心问题是实现广告队列与游戏队列的混排,整体迭代包含了固定位混排、pid保量、带约束混排、混排精细化分流4个阶段。在当前阶段,平台会根据分流模块判断请求质量,并针对性的设置混排模型。具体到重排模型上,采用生成式模型替代数值型模型,在实验流量上收益对比原模型更为明显,且不受上游打分影响,更为稳定。
在之前的探索实践中,vivo已经取得了一些成果,为技术人员带来了更高效的开发体验,为用户带来了更优质的产品体验。但业务需求和技术工具是在不断变化发展的,未来,vivo也一定不会松懈,持续探索技术,迭代产品工具,不断为用户创造惊喜,为行业带来革新。