2022-11-10 10:39:39 来源:
前端创新实践,自研编译器助力小程序架构升级
在早期的小程序开发中,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也一定不会松懈,持续探索技术,迭代产品工具,不断为用户创造惊喜,为行业带来革新。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。