暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VDC PPT下载:服务4亿+ vivo用户的互联网技术实践分享与经验揭秘

vivo互联网技术 2022-11-17
738


在公众号对话框回复【2022VDC】获取2022 VDC 互联网技术专场议题相关资料。


议题相关技术文章后续将在公众号发布,敬请关注。

11月8日,2022 vivo开发者大会正式开幕。此次大会以「MORE,近你所想」为主题,共设有1个主会场及9大专场。其中,在11月9日的互联网技术-最佳技术实践专场,来自vivo的工程师们分享了wepy-chameleon编译器、后羿低代码平台、实时计算平台等6项成果,与开发者们共同探讨前沿技术实践。在云与基础架构分会场,vivo介绍了近年来其在云原生和容器技术层面的最新探索和实践。


最佳技术专场


#1

前端创新实践,自研编译器助力小程序架构升级


在早期的小程序开发中,wepy框架能够很好地解决模块化、组件化等工程化问题,但是随着时代的发展和演进,社区逐渐沉淀出以 uniapp 为代表的 Vue 跨端体系和以Taro为代表的React跨端体系,wepy目前的社区活跃度比较低。基于当前的业务诉求,vivo自研推出wepy-chameleon编译器,可以一键将wepy框架转换为uniapp框架。


▲vivo互联网用户运营前端专家-万安文


vivo互联网用户运营前端专家万安文分享了wepy-chameleon编译器思路和实现,包括单文件组件编译转换核心设计、整体编译系统流水线设计、Parser解析器架构的设计与实现以及Transform转换器的架构设计与实现。在编译器的实现过程中,也遇到过一些挑战,比如uniapp中的template string和Scope Style的适配问题。


万安文介绍,后续编译器将覆盖更多的wepy项目及场景,团队也将继续深挖业务中可以通过编译提效的空间,用技术推动业务的快速升级。


#2

用低代码平台提效,解放开发生产力 


低代码是一种可视化的应用开发方法,可以用较少的代码、以较快的速度来交付应用程序,随着前端新技术的出现及云原生时代的到来,低代码的优势愈发显现。分会场上,vivo专家分享了针对后台toB系统建设以及游戏中心toC端native界面搭建的两款低代码平台。


后羿低代码平台是一款在线可视化开发平台,能够支撑运营后台业务的高效高质量落地。该平台采用了前后端分离的技术方案,更符合开发思维,在实现方式上具有灵活性较高、拓展性较好、可集成度较高等优点,在架构上也具有分层明确、低码分离实现等优势,能够满足不同群体更加复杂的业务诉求。


▲vivo互联网高级前端工程师-王宁


除技术方案外,vivo互联网高级前端工程师王宁还分享了自研高性能渲染引擎、可视化配置方案以及千亿级内容投放等提效秘诀。针对低代码与传统开发如何共存的问题,王宁表示,低代码与传统开发并不冲突。一方面,平台在不断丰富场景模型以提高拓展能力和配置效率,另一方面,平台在架构上兼容传统的定制化开发,二者优势互补,全面提效。


vivo游戏中心是vivo游戏核心的流量入口,然而在互联网流量见顶和频繁发版的背景下,游戏中心的首页存在一些不足:缺少灵活多样且能动态调整的组件化能力,缺少可视化快速搭建页面的能力。针对这些痛点,vivo互联网游戏团队推出了游戏中心低代码平台,通过组件化设计,满足不同用户的需求。


▲vivo互联网架构师-陈文洋


vivo互联网架构师陈文洋从标准组件打造、数据引入和页面组装三个方面详细介绍了平台的搭建过程。该平台使得原先的开发研发流程发生了变化,能做到新增或修改组件无需发版或是只需少量开发,大大提升了开发效率,缩短了项目周期。


#3

打造稳定易用、安全高效的实时计算平台,深度挖掘数据价值


2022年,vivo互联网在网用户总数达到2.8亿,多款互联网应用的日活超过了千万甚至突破了1亿,为了向用户提供优质的内容和服务,需要对海量数据进行实时处理,同时,为了向广告主提供更加优质的广告服务,也需要提升商业化能力。


对此,据vivo互联网大数据平台计算方向负责人陈涛介绍,vivo在2019年下半年就启动了实时计算平台的建设,2020年关注在稳定性建设,初步上线了SQL能力,2021年引入了Flink 1.13版本并启动了容器化建设,2022年主要关注在效率提升,包括流批一体、任务诊断等,到目前为止,平台已初步具备了一些能力。


▲vivo互联网大数据平台计算方向负责人-陈涛


据了解,平台是vivo基于Apache Flink计算引擎自研的覆盖实时流数据接入、开发、部署、运维和运营全流程的一站式数据建设与治理平台,支撑着实时数仓、实时智能推荐、商业化实时广告、实时安全、实时监控等五大业务中台。


#4

分支路径图调度框架落地,助力项目迭代提速


vivo效果广告推荐系统是一套实时的AI在线预估服务,每天承载了百亿次的广告投放请求,支持了vivo的效果广告收入,在可用性、可扩展性、健壮性等方面具有非常高的要求。其中,schedule是系统的核心模块,负责业务逻辑调度,上下游依赖特别多。schedule在调度其他模块时采用异步调度,异步调度管理方法则是有向无环图,然而有向无环图即使是目前使用最广泛的方法但也并不完美,作为一种全路径图调度框架,有向无环图已经难以适用系统不断增长的复杂度。


为了安全开发和提升迭代效率,新的调度方法被迫切的创建出来——支持分支路径的图调度框架。它的原理是,在原有的图调度框架中,添加两处功能,一是加入了分支节点,二是对于图中节点的触发支持“与激活”和“或激活”。


▲vivo互联网效果广告AI架构师-周保建


vivo互联网效果广告AI架构师周保建用调度流程图展示了分支路径调度框架在vivo效果广告推荐系统中的落地过程。使用分支路径调度框架改造后,图中添加了判断节点,具体路径的走向由判断逻辑控制,系统可扩展性得到提升,系统熵增减轻。


#5

不断实践探索异构混排,为广告主和用户提供更优服务


混排,就是需要在保障用户体验前提下,通过对不同队列中的异构内容进行合理混合,实现收益最优,更好地服务用户和广告主。混排的核心挑战主要有三点:不同队列item建模目标不同,难以直接对比;候选队列常受到大量产品规则约束;由于业务限制,混排时往往不能修改候选队列的序,需要实现保序混排。


vivo互联网高级算法工程师沈技毅分享了vivo信息流和商店场景中的混排实践。对于信息流场景,混排侧主要解决的问题是内容队列与广告队列的混排问题。这一场景下,vivo混排经历了三次迭代,分别是固定位混排、Qlearning混排以及深度位置型混排,整体思路是希望在Qlearning阶段通过简单的强化学习方案累积样本,快速探索收益,后续升级为深度学习方案。这带来3个好处:与上游打分解耦,大大提高了混排稳定性;深度网络,可容纳信息量大;能够考虑页面间item相互作用。


▲vivo互联网高级算法工程师-沈技毅


在之前的探索实践中,我们已经取得了一些成果:为技术人员带来了更高效的开发体验,为用户带来了更优质的产品体验。但业务需求和技术工具是在不断变化发展的,未来vivo也会持续探索技术,迭代产品工具,不断为用户创造惊喜,为行业带来革新。


云与基础架构专场


#1

拥抱云原生,助力算法降本提效


2018年起,vivo以容器作为基础底座,打造了 vivo的一站式云原生机器学习平台。向上支撑了算法中台,为算法工程师提供数据管理、模型训练、模型管理、模型部署等能力,为广告、推荐和搜索等业务赋能,成功为算法实现了降本、提效,让云原生和容器价值初露锋芒。


基于机器学习平台的试点成果,经过算法场景的试点实践和价值分析,对内部战略做了升级。确定基于云原生理念去构建行业一流的容器生态,实现规模化的降本提效目标


对此,vivo互联网容器技术负责人潘良彪也详细介绍了vivo在容器集群高可用建设中的具体实践,包括在容器集群高可用建设、容器集群自动化运维、容器平台架构升级、容器平台能力增强、容器生态打通等层面的打磨和建设。目前,vivo容器产品能力矩阵逐渐趋于完善,并将围绕全面容器化、拥抱云原生和在离线混部三个方向继续发力。


▲vivo互联网容器技术负责人-潘良彪


#2

不惧千锤百炼, Kubernetes 集群升级推动平台能力跃升


vivo 在云原生技术领域已经深耕多年。从2017年开始接触并积累容器技术,之后搭建与运维 Kubernetes 集群,到如今提供成熟的容器化平台解决方案,并在公司内部推广接入在线业务和离线训练任务。


vivo互联网容器研发高级工程师束迎亚在演讲中分享了 vivo 在容器化集群无损升级过程中的一些实践经验。


在满足API 兼容性、控制逻辑一致性以及Kubelet 稳定性三个关注点的前提下,选择将1.10版本升级到1.17版本。升级后,容器化平台充分利用高版本Kubernetes 以及第三方控制器新特性,功能矩阵持续完善。对用户,需求能高效得到建设且稳定性更好,收益显著;对运维同事,统一的内部集群 Kubernetes 版本使得运维复杂度大大降低,工作效率显著提高。接下来,vivo将围绕效率建设、自动化建设、标准化建设继续进行Kubernetes 集群的升级管理。


▲vivo互联网容器研发高级工程师-束迎亚


#3

保持监控系统能力稳步提升,为业务服务提供长效保障


vivo自2018年开启了监控系统的自研之路,期间不断转型、升级,系统服务能力渐趋成熟。从2022年开始,vivo建设了统一监控平台,将基础监控、应用监控和自定义监控进行统一,包含统一配置服务和统一检测服务。从监控的建设历程来看,我们一路覆盖了 IaaS、PaaS、DaaS、CaaS等平台,其职能也从DevOps向AIOps迈进。


vivo互联网监控服务架构师陈宁宁在演讲中表示,随着公司业务发展,业务模型、部署架构越来越复杂,故障定位很困难,定位问题成本高,而监控系统在面对复杂、异构、调用关系冗长的系统时,就起到了重要作用。


▲vivo互联网监控服务架构师-陈宁宁


#4

加速数据库服务建设,让云原生时代数据运维难题迎刃而解


2020年左右进入后移动互联网时代,社会数字化程度进一步加深,云原生的概念应运而生,微服务架构,资源弹性,容器等云原生技术广为传播。数据库的稳定性方面,因为开源数据库的高可用体系普遍成熟而大大缓解。数据库规模方面,实例数量和品类都进一步大增。数据库安全方面,2021年8月我国正式出台了个人信息保护法,个人隐私数据保护成为了数据库运维的时代重点。


在以上时代背景下,vivo互联网云平台架构师邓松认为,数据库运维面临着大规模数据库实例难以有效运维、数据库难以做好资源弹性伸缩以及个人隐私数据安全难以保障这三个方面的挑战。对此,我们也有着应对方案。


vivo自研了数据库运维平台DaaS来支撑数据库运维工作。在规模覆盖、效率提升、故障告警处理等层面均衡发力,保障了数据的稳定性,实现了数据库的高效运维。在数据库资源弹性管理层面,vivo围绕资源分配、资源弹性伸缩、资源隔离分别给出了智能化解决方案,并通过套餐自动优化,进一步降低了管理成本。基于个人隐私数据,平台也提供了对业务几乎无影响的MySQL的透明加密方案,来减轻因为隐私数据加密带来的研发和运维工作量。


▲vivo互联网云平台架构师-邓松


#5

步履不停,vivo持续探索消息平台新可能


长期以来,vivo持续探索超大规模消息中间件。在线业务侧,vivo选择RocketMQ构建消息平台,意在依托其丰富的功能特性满足业务间削峰、解耦、异步化的需求。大数据侧,vivo选择具备高并发、高可用、高吞吐的消息流组件Kafka构建超大规模数据处理能力的数据接入服务。


基于此,vivo互联网中间件架构师罗明波从资源隔离、流量均衡、限流、集群治理四个维度分享了Kafka在vivo的最佳实践。vivo kafka消息中间件团队在三年时间内,根据实际的业务场景和生产数据规模沉淀了较多的实践经验。未来,也将以项目启动、稳定性建设、能力进阶、稳定运营四个阶段为基准,展开对Pulsar组件的长续规划和建设。


▲vivo互联网中间件架构师 罗明波


在会上,vivo互联网中间件架构师刘润云分享了保障消息平台高可用落地的三个方面,包括集群部署架构和平台系统架构、日常运维操作平台化以及构建集群的监控大盘和完善平台的的监控告警能力。以高可用建设落地为基础,vivo通过建设AMQP消息网关的方式完成了在线业务超过1000个服务从RabbitMQ到RocketMQ的无缝迁移,实现了在线业务消息中间件组件的统一。


▲vivo互联网中间件架构师-刘润云


vivo将在消息中间件运维领域继续深入研究,期望可以建设拥有更高性能、更丰富功能特性的消息平台,为各位开发者与合作伙伴提供更优质的服务!



在公众号对话框回复【2022VDC】获取2022 VDC 互联网技术专场议题相关资料。


议题相关技术文章后续将在公众号发布,敬请关注。

文章转载自vivo互联网技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论