2023年11月1日,vivo開發(fā)者大會在深圳成功舉辦。此次大會設(shè)有一個主會場和十個分會場。互聯(lián)網(wǎng)技術(shù)會場由vivo互聯(lián)網(wǎng)的八位技術(shù)專家,帶來vivo在微服務(wù)、大數(shù)據(jù)、云計算、DevOps、活動中臺、音視頻等方面的技術(shù)實踐成果與思考。
核心技術(shù)演進(jìn)優(yōu)化,助力行業(yè)快速發(fā)展
vivo微服務(wù)平臺為全球60多個國家/地區(qū)的5億+用戶提供服務(wù),其中vivo的萬級微服務(wù),覆蓋全網(wǎng)機(jī)器規(guī)模十萬級,每天高達(dá)8000億次的RPC調(diào)用次數(shù),峰值QPS達(dá)到千萬級。
vivo互聯(lián)網(wǎng)中間件平臺負(fù)責(zé)人羅亮,在分享時介紹了大規(guī)模、海量業(yè)務(wù)的微服務(wù)架構(gòu)具體實踐過程。通過深度參與業(yè)務(wù)的微服務(wù)架構(gòu)改造,形成了總計近30項架構(gòu)能力矩陣,并且在構(gòu)建微服務(wù)架構(gòu)技術(shù)體系,為更好解決具體實踐過程中碰到的問題與挑戰(zhàn),通過自研部分能力解決億級用戶規(guī)模下內(nèi)部業(yè)務(wù)的功能需求及復(fù)雜問題,vivo堅持業(yè)務(wù)適用原則,走出了一條從“開源“到”開源+自研”的研發(fā)路徑。并且在這個實踐過程中輸出了一套關(guān)于中間件組件的全生命周期管理策略,為業(yè)務(wù)升級和用戶新需求做好保障。
萬億級數(shù)據(jù)爆發(fā)式進(jìn)化,升級改造構(gòu)建創(chuàng)新生態(tài)
針對數(shù)據(jù)穩(wěn)定和數(shù)據(jù)價值領(lǐng)域,vivo互聯(lián)網(wǎng)基礎(chǔ)數(shù)據(jù)方向負(fù)責(zé)人劉開周從海量基礎(chǔ)數(shù)據(jù)計算架構(gòu)的應(yīng)用角度,講述在數(shù)據(jù)爆發(fā)式增長的時代,vivo的解決方案和未來的發(fā)展愿景。
vivo根據(jù)業(yè)務(wù)發(fā)展情況,多措并舉,穩(wěn)扎穩(wěn)打,通過構(gòu)建流批雙活鏈路架構(gòu)和支持多種組件配置化輸出,引入異步請求框架,解決實時計算數(shù)百萬并發(fā)性能問題,實現(xiàn)Redis批量動態(tài)擴(kuò)容時秒級延時;構(gòu)建動態(tài)微批計算架構(gòu),大幅降低維表和業(yè)務(wù)表數(shù)據(jù)量,動態(tài)自動計算分區(qū)數(shù)和合適的計算資源,采用Shuffle Hash Join方案,并優(yōu)化Join底層結(jié)構(gòu),去掉分區(qū)排序,在批計算性能方面提升了60%以上。
全局布控形成資源互補(bǔ),保障集群提升運(yùn)維效率
“在線服務(wù)和離線任務(wù)構(gòu)成了數(shù)據(jù)中心的運(yùn)營。在混部之前,在線和離線都是獨立部署,無法形成有效的資源互補(bǔ),數(shù)據(jù)中心整體資源利用率不高?!眝ivo互聯(lián)網(wǎng)容器架構(gòu)師甘青,在混部技術(shù)的分享中,提到了在線和離線獨立部署的問題。vivo混部平臺實現(xiàn)了強(qiáng)大的混部調(diào)度、隔離能力,并構(gòu)建了一套高效運(yùn)維平臺和可視化監(jiān)控體系,讓混部技術(shù)在保障服務(wù)SLO的前提下,極大地提高數(shù)據(jù)中心資源利用率。
vivo通過對技術(shù)的優(yōu)化和迭代,將離線任務(wù)的資源需求開辟了一個嶄新的道路,為大數(shù)據(jù)平臺增效降本提供了新思路。而離線任務(wù)如何在混部集群利用好計算資源,則需要進(jìn)一步攻克難題。vivo互聯(lián)網(wǎng)大數(shù)據(jù)架構(gòu)師黃榮杰,在講解離線混部Spark on K8s 彈性調(diào)度的部分時,為大家進(jìn)行了全面的講解。在實踐中,vivo采用了任務(wù)跑通跑順、跑穩(wěn)跑準(zhǔn)、跑得智能的“三步走”策略,實現(xiàn)了離線混部技術(shù)可供調(diào)度任務(wù)近2萬個,每天調(diào)度的次數(shù)超過4萬次。在高峰期,能為離線任務(wù)額外增加2萬核、50TB內(nèi)存的計算資源。
自研低代碼系統(tǒng),讓活動更簡單、更高效
vivo互聯(lián)網(wǎng)用戶運(yùn)營前端專家馮偉在講解悟空系統(tǒng)的版塊中,與在場觀眾分享了悟空系統(tǒng)的前臺設(shè)計。悟空系統(tǒng)在2018年誕生,它通過SaaS+PaaS的模式,實現(xiàn)vivo生態(tài)內(nèi)100%業(yè)務(wù)場景覆蓋,通過提供平臺服務(wù),針對個性化需求使用全鏈路的開發(fā)工具,達(dá)到降本增效、全員復(fù)用的效果。而對于在不影響開發(fā)體驗情況下,實現(xiàn)iframe預(yù)覽區(qū)數(shù)據(jù)通信高性能,這一問題上,vivo仍舊發(fā)揮自身的自研實力,通過自研unirender加載方案和歸一化數(shù)據(jù)存儲,解決了 iframe數(shù)據(jù)通信方式單一且復(fù)雜的短板。
同時在新技術(shù)探索上,vivo一直致力于通過智能化手段提升活動運(yùn)營效率,通過自研轉(zhuǎn)換引擎實現(xiàn)三方頁面轉(zhuǎn)換能力,并支持自然語言快速搭建活動,極大降低了運(yùn)營門檻。
現(xiàn)如今,簡單、高效的平臺決定了產(chǎn)出的質(zhì)量。vivo互聯(lián)網(wǎng)用戶運(yùn)營服務(wù)器專家姜野在現(xiàn)場講解了智能活動中臺的相關(guān)內(nèi)容。悟空系統(tǒng)的中臺為互動組件提供中臺能力支撐,讓活動形式更豐富、多變,而BCA模型的誕生,則讓中臺系統(tǒng)更加智能化。BCA,即用戶行為、行為條件、用戶行為滿足條件后觸發(fā)的動作(Behavior、Condition、Action),它的一個用戶行為對應(yīng)著多個條件和多個動作,而在BCA模型的基礎(chǔ)之上,通過playmaker玩法編輯器,運(yùn)用自研低代碼系統(tǒng)生成動態(tài)活動定義,再進(jìn)行渲染集中式配置,實現(xiàn)在運(yùn)營層面的改變與更新,讓悟空平臺成為一個集可視化、組件化、一站式的綜合運(yùn)營平臺,不僅讓活動更簡單,而且更有效。
“多快好省”,觀看體驗+刷新兩不誤
短視頻的普及離不開技術(shù)躍進(jìn)和移動互聯(lián)網(wǎng)的普及,人們對短視頻的訴求除了優(yōu)質(zhì)的內(nèi)容之外,還對播放流暢度有著更高的期待。為提升觀看過程中的流暢度,vivo上線了多項優(yōu)化策略。vivo互聯(lián)網(wǎng)音視頻架構(gòu)師蔡創(chuàng)業(yè)分享了vivo 短視頻在體驗優(yōu)化環(huán)節(jié)的實踐經(jīng)驗。在網(wǎng)絡(luò)連接環(huán)節(jié),vivo通過連接復(fù)用、?;?、HTTPDNS等方式提升連接速度和成功率;在數(shù)據(jù)下載環(huán)節(jié)通過多線程分片下載的方式提升下載速度和成功率;通過預(yù)渲染的方式,實現(xiàn)了首幀的“零耗時”;為提升播放過程中的流暢度、同時兼顧到流量成本,vivo對預(yù)加載策略進(jìn)行了積極的探索,包括固定大小預(yù)加載、動態(tài)預(yù)加載以及智能預(yù)加載。同時,還基于播放過程的拆解和策略的監(jiān)控,上線了BI分層監(jiān)控體系,從核心技術(shù)指標(biāo)、播放優(yōu)化策略、視頻基礎(chǔ)信息等維度進(jìn)行了詳細(xì)的監(jiān)控。
由vivo 互聯(lián)網(wǎng)音視頻架構(gòu)師馬運(yùn)杰,現(xiàn)場分享短視頻成本優(yōu)化的環(huán)節(jié)。就達(dá)成降本增效而言,通過拆解CDN成本的影響因素,確定以降低單價、極致壓縮、利用率治理為突破方向。再這幾個方向上,分別采用PCDN、自適應(yīng)編碼、建設(shè)利用率報表體系等技術(shù)手段,在兼顧播放體驗的同時,完成播放成本降低的任務(wù)。
隨著手機(jī)智能化的不斷發(fā)展和創(chuàng)新迭代,研發(fā)技術(shù)的進(jìn)步和智能化生態(tài)的形成離不開開發(fā)者堅持不懈的精進(jìn)努力和不斷創(chuàng)新。作為全球領(lǐng)先的科技企業(yè),vivo始終堅守技術(shù)創(chuàng)新,積極構(gòu)建核心競爭力,以用戶需求為導(dǎo)向并攜手開發(fā)者及業(yè)內(nèi)伙伴,為實現(xiàn)互聯(lián)網(wǎng)技術(shù)的持續(xù)升級和發(fā)展做出更大的貢獻(xiàn)。