vivo工程師分享六大技術實踐成果 攜手開發者推動行業技術革新

11月8日,2022 vivo開發者大會正式開幕。此次大會以“MORE,近你所想”為主題,共設有1個主會場及9個分會場。其中,在網際網路技術-最佳技術實踐專場中,來自vivo的工程師們分享了wepy-chameleon編譯器、后羿低程式碼平臺、實時計算平臺等6項成果,與開發者們共同探討前沿技術實踐。

前端創新實踐,自研編譯器助力小程式架構升級

在早期的小程式開發中,wepy框架能夠很好的解決模組化、元件化等工程化問題,但是隨著時代的發展和演進,社群逐漸沉澱出以 uniapp 為代表的 Vue 跨端體系和以Taro為代表的React跨端體系,wepy目前的社群活躍度比較低。基於當前的業務訴求,vivo自研推出wepy-chameleon編譯器,可以一鍵將wepy框架轉換為uniapp框架。

[MD:Title]

vivo網際網路使用者運營前端專家 萬安文

vivo網際網路使用者運營前端專家萬安文分享了wepy-chameleon編譯器思路和實現,包括單檔案元件編譯轉換核心設計、整體編譯系統流水線設計、Parser解析器架構的設計與實現以及Transform轉換器的架構設計與實現。在編譯器的實現過程中,vivo團隊也遇到過一些挑戰,比如uniapp中的template string和Scope Style的適配問題。

據萬安文介紹,後續編譯器將覆蓋更多的wepy專案及場景,團隊也將繼續深挖業務中可以透過編譯提效的空間,用技術推動業務的快速升級。

用低程式碼平臺提效,解放開發生產力

低程式碼是一種視覺化的應用開發方法,可以用較少的程式碼、以較快的速度來交付應用程式,隨著前端新技術的出現及雲原生時代的到來,低程式碼的優勢愈發顯現。分會場上,vivo專家分享了針對後臺toB系統建設以及遊戲中心toC端native介面搭建的兩款低程式碼平臺。

后羿低程式碼平臺是一款線上視覺化開發平臺,能夠支撐運營後臺業務的高效高質量落地。該平臺採用了前後端分離的技術方案,更符合開發思維,在實現方式上具有靈活性較高、拓展性較好、可整合度較高等優點,在架構上也具有分層明確、低碼分離實現等優勢,能夠滿足不同群體更加複雜的業務訴求。

[MD:Title]

vivo網際網路高階前端工程師 王寧

除技術方案外,vivo網際網路高階前端工程師王寧還分享了自研高效能渲染引擎、視覺化配置方案以及千億級內容投放等提效秘訣。針對低程式碼與傳統開發如何共存的問題,王寧表示,低程式碼與傳統開發並不衝突。一方面,平臺在不斷豐富場景模型以提高拓展能力和配置效率,另一方面,平臺在架構上相容傳統的定製化開發,二者優勢互補,全面提效。

vivo遊戲中心是vivo遊戲核心的流量入口,然而在網際網路流量見頂和頻繁發版的背景下,遊戲中心的首頁存在一些不足,概括來說有兩點:缺少靈活多樣且能動態調整的元件化能力,缺少視覺化快速搭建頁面的能力。針對這些痛點,vivo互聯網遊戲團隊推出了遊戲中心低程式碼平臺,透過元件化設計,滿足不同使用者的需求。

[MD:Title]

vivo網際網路架構師 陳文洋

vivo網際網路架構師陳文洋從標準組件打造、資料引入和頁面組裝三個方面詳細介紹了平臺的搭建過程。該平臺使得原先的研發流程發生了變化,能做到新增或修改元件無需發版,大大提升了開發效率,縮短了專案週期。

打造穩定易用、安全高效的實時計算平臺,深度挖掘資料價值

2022年,vivo網際網路在網使用者總數達到2。8億,多款網際網路應用的日活超過了千萬甚至突破了1億,為了向用戶提供優質的內容和服務,需要對海量資料進行實時處理,同時,為了向廣告主提供更加優質的廣告服務,也需要提升商業化能力。然而,龐大的業務規模和業務增速給vivo的實時計算團隊帶來了非常大的挑戰。

對此,據vivo網際網路大資料平臺計算方向負責人陳濤介紹,vivo在2019年下半年就啟動了實時計算平臺的建設,2020年關注在穩定性建設,初步上線了SQL能力,2021年引入了Flink 1。13版本並啟動了容器化建設,2022年主要關注在效率提升,包括流批一體、任務診斷等,到目前為止,平臺已初步具備了一些能力。

[MD:Title]

vivo網際網路大資料平臺計算方向負責人 陳濤

據瞭解,平臺是vivo基於Apache Flink計算引擎自研的覆蓋實時流資料接入、開發、部署、運維和運營全流程的一站式資料建設與治理平臺,支撐著實時數倉、實時智慧推薦、商業化實時廣告、實時安全、實時監控等五大業務中臺。

分支路徑圖排程框架落地,助力專案迭代提速

vivo效果廣告推薦系統是一套實時的AI線上預估服務,每天承載了百億次的廣告投放請求,支援了vivo的效果廣告收入,在可用性、可擴充套件性、健壯性等方面具有非常高的要求。其中,schedule是系統的核心模組,負責業務邏輯排程,上下游依賴特別多。schedule在排程其他模組時採用非同步排程,非同步排程管理方法則是有向無環圖,然而有向無環圖即使是目前使用最廣泛的方法但也並不完美,作為一種全路徑圖排程框架,有向無環圖已經難以適用系統不斷增長的複雜度。

為了安全開發和提升迭代效率,新的排程方法被迫切的創建出來,那就是支援分支路徑的圖排程框架。它的原理是,在原有的圖排程框架中,新增兩處功能,一是加入了分支節點,二是對於圖中節點的觸發支援“與啟用”和“或啟用”。

[MD:Title]

vivo網際網路效果廣告AI架構師 周保建

vivo網際網路效果廣告AI架構師周保建用排程流程圖展示了分支路徑排程框架在vivo效果廣告推薦系統中的落地過程。使用分支路徑排程框架改造後,圖中添加了判斷節點,具體路徑的走向由判斷邏輯控制,系統可擴充套件性得到提升,系統熵增減輕。

當圖與實時線上系統融合在一起的時候,也顯現出了更多的是提升了空間,比如,圖的整體超時、異常管理,節點超時、異常管理以及複雜圖結構的自動化簡。周保健表示,vivo團隊後續將針對這些問題做進一步的最佳化升級。

不斷實踐探索異構混排,為廣告主和使用者提供更優服務

混排,就是需要在保障使用者體驗前提下,透過對不同佇列中的異構內容進行合理混合,實現收益最優,更好的服務廣告主和使用者。混排的核心挑戰主要有三點:不同佇列item建模目標不同,難以直接對比;候選佇列常受到大量產品規則約束;由於業務限制,混排時往往不能修改候選佇列的序,需要實現保序混排。

vivo網際網路高階演算法工程師沈技毅分享了vivo資訊流和商店場景中的混排實踐。對於資訊流場景,混排側主要解決的問題是內容佇列與廣告佇列的混排問題。這一場景下,vivo混排經歷了三次迭代,分別是固定位混排、Qlearning混排以及深度位置型混排,整體思路是希望在Qlearning階段透過簡單的強化學習方案累積樣本,快速探索收益,後續升級為深度學習方案。這帶來3個好處:與上游打分解耦,大大提高了混排穩定性;深度網路,可容納資訊量大;能夠考慮頁面間item相互作用。

[MD:Title]

vivo網際網路高階演算法工程師 沈技毅

商店場景中,混排的核心問題是實現廣告佇列與遊戲佇列的混排,整體迭代包含了固定位混排、pid保量、帶約束混排、混排精細化分流4個階段。在當前階段,平臺會根據分流模組判斷請求質量,並針對性的設定混排模型。具體到重排模型上,採用生成式模型替代數值型模型,在實驗流量上收益對比原模型更為明顯,且不受上游打分影響,更為穩定。

在之前的探索實踐中,vivo已經取得了一些成果,為技術人員帶來了更高效的開發體驗,為使用者帶來了更優質的產品體驗。但業務需求和技術工具是在不斷變化發展的,未來,vivo也一定不會鬆懈,持續探索技術,迭代產品工具,不斷為使用者創造驚喜,為行業帶來革新。