案例詳解 | 當(dāng)Rokid若琪遇上阿里云函數(shù)計(jì)算

來源:阿里云
作者:王彬 姚蘭天 聶大鵬
時(shí)間:2023-06-26
2704
隨著Serverless技術(shù)浪潮的全面到來,Rokid面臨的圖像處理難題在阿里云函數(shù)計(jì)算上找到了新解法。

Rokid創(chuàng)立于2014年,是一家專注于人機(jī)交互技術(shù)的產(chǎn)品平臺(tái)公司。Rokid作為行業(yè)的探索者,目前致力于AR眼鏡等軟硬件產(chǎn)品的研發(fā)及以YodaOS操作系統(tǒng)為載體的生態(tài)構(gòu)建。

早在2017年,Rokid就與阿里云達(dá)成戰(zhàn)略合作,雙方攜手為行業(yè)打造全棧語(yǔ)音智能方案語(yǔ)音解決方案。

此后,Rokid又與阿里云無(wú)影深度融合,推出了最新款的AR眼鏡以及Rokid Station,連接云端和眼鏡端,完成輕量化計(jì)算、4K高清解碼等通用能力,突破了人們對(duì)于移動(dòng)計(jì)算平臺(tái)的想象,讓沉浸式的云上辦公和娛樂成為可能。

隨著Serverless技術(shù)浪潮的全面到來,Rokid面臨的圖像處理難題在阿里云函數(shù)計(jì)算上找到了新解法。

架構(gòu)革新的必要性

Rokid在數(shù)字文化領(lǐng)域,圍繞展陳導(dǎo)覽解決方案,主要形成了三維建圖,場(chǎng)景創(chuàng)作,場(chǎng)景體驗(yàn)三個(gè)業(yè)務(wù)模塊,每個(gè)模塊都有不同的后臺(tái)平臺(tái)支撐。

1.三維建圖:制作展陳導(dǎo)覽的第一步是取景,通過設(shè)備獲取場(chǎng)地的真實(shí)布景,然后通過算法處理,進(jìn)行三維建模,之后可以經(jīng)過創(chuàng)作器進(jìn)行下一步的內(nèi)容創(chuàng)作。

2.場(chǎng)景創(chuàng)作:在三維建模生成的視頻流上創(chuàng)作,通過Web3D渲染引擎,將創(chuàng)作內(nèi)容與場(chǎng)景緊密結(jié)合,結(jié)合硬件設(shè)備,在AR設(shè)備使用時(shí),形成一體化的體驗(yàn)效果。

3.場(chǎng)景體驗(yàn):AR設(shè)備在使用時(shí),根據(jù)定位服務(wù),錨定在場(chǎng)景中的位置,根據(jù)位置的不同會(huì)顯示不同的空間內(nèi)容,達(dá)到擴(kuò)展現(xiàn)實(shí)場(chǎng)景的效果。

640.png

整體的產(chǎn)品架構(gòu)圖

三維建圖,場(chǎng)景創(chuàng)作,場(chǎng)景體驗(yàn)三個(gè)場(chǎng)景都涉及到了的圖像處理,需要大量的GPU資源。

其中三維建圖屬于離線任務(wù),在構(gòu)建展陳模型時(shí),需要將整個(gè)展陳場(chǎng)所的視頻內(nèi)容進(jìn)行預(yù)處理,是三個(gè)場(chǎng)景中消耗算力最大的部分;場(chǎng)景創(chuàng)作需要配合創(chuàng)作軟件,GPU資源主要來自開發(fā)機(jī)器;場(chǎng)景體驗(yàn)在設(shè)備真實(shí)運(yùn)行時(shí)提供實(shí)時(shí)服務(wù),主要功能是定位服務(wù),對(duì)服務(wù)的實(shí)時(shí)性要求很高。

為了支撐GPU算力的需求,Rokid在開發(fā)的初期就決定盡可能的使用云資源承載,充分利用云計(jì)算的紅利。

最初,Rokid選擇購(gòu)買ECS的GPU機(jī)型,用于業(yè)務(wù)的開發(fā)和測(cè)試。在三維建圖時(shí),一般都會(huì)一次性采集展陳環(huán)境的所有場(chǎng)景資料,視頻量巨大,通過ECS串行處理需要時(shí)間很長(zhǎng),一個(gè)1小時(shí)的視頻資料,通過一臺(tái)ECS GPU機(jī)器需要處理3小時(shí)左右。

Rokid做的第一步是并行化,通過拆分CPU和GPU處理邏輯和優(yōu)化任務(wù)編排方式,盡可能的讓可以并發(fā)處理的部分拉起更多的資源加大并發(fā)量,通過這一系列的優(yōu)化,視頻的處理時(shí)間得到了不錯(cuò)的提升。

在并發(fā)資源方面,Rokid選擇的GPU計(jì)算資源是ECI,相對(duì)ECS,ECI可選的資源粒度更加多樣,特別是在小規(guī)格的選擇上,對(duì)于切分的小塊視頻,通過并發(fā)的使用小規(guī)格ECI實(shí)例并行處理,大大縮短了整體視頻的處理時(shí)間。為此,Rokid內(nèi)部平臺(tái)還開發(fā)了一套針對(duì)阿里云ECI資源的調(diào)度模塊,方便內(nèi)部快速的申請(qǐng)和歸還ECI資源。

通過對(duì)ECI資源的靈活使用,在保證高峰期任務(wù)處理并發(fā)度的同時(shí),也保證了算力成本的可控,使用流程上得到了初步的優(yōu)化。但是通過一段時(shí)間的使用,發(fā)現(xiàn)還是有很多的不足之處,主要問題總結(jié)如下:

1.ECI資源的申請(qǐng)和釋放都依靠使用人員主動(dòng)操作,有時(shí)在使用完畢后會(huì)忘記及時(shí)釋放資源,導(dǎo)致資源閑置浪費(fèi)。且開發(fā)和維護(hù)ECI的調(diào)度程序也需要占據(jù)對(duì)應(yīng)同學(xué)一定的精力,帶來了一些額外的運(yùn)維工作。

2.三維建模的任務(wù)經(jīng)過拆分后,分成了好幾個(gè)步驟,每個(gè)步驟的任務(wù)都需要異步執(zhí)行,需要一個(gè)系統(tǒng)維持任務(wù)的調(diào)用關(guān)系,在上一個(gè)步驟完成后,拉起下一個(gè)步驟的任務(wù)繼續(xù)運(yùn)行。

3.在運(yùn)行過程中,會(huì)存在異常情況,排查下來,有時(shí)是因?yàn)樯暾?qǐng)的計(jì)算資源規(guī)格過小導(dǎo)致計(jì)算負(fù)載較高,有時(shí)是存儲(chǔ)異?;虼鎯?chǔ)空間寫滿,還有些情況是程序本身性能瓶頸。對(duì)于程序的整體監(jiān)控缺乏,使得出現(xiàn)問題時(shí)不能第一時(shí)間發(fā)現(xiàn),發(fā)現(xiàn)有異常排查過程不夠直觀,需要通過多種工具獲取運(yùn)行指標(biāo)分析。

4.GPU算力在云上規(guī)模有限,在高峰期會(huì)偶爾存在ECI資源彈不出的情況,影響開發(fā)效率。

為了解決上面問題,Rokid內(nèi)部架構(gòu)組尋求優(yōu)化已有的架構(gòu),針對(duì)第2點(diǎn),Rokid自行維護(hù)了一個(gè)總的調(diào)度系統(tǒng),進(jìn)行任務(wù)編排;針對(duì)第3點(diǎn),通過阿里云ARMS Tracing,Prometheus,Grafana等組件的引入,結(jié)合ECI硬件指標(biāo),統(tǒng)一收集到SLS,形成統(tǒng)一的監(jiān)控報(bào)表,再配以監(jiān)控指標(biāo)的告警,也能夠初步的滿足Rokid使用需求。

但第1點(diǎn)和第4點(diǎn),很難通過增加云產(chǎn)品或者內(nèi)部應(yīng)用程序解決。為此Rokid架構(gòu)組開始尋找云上新的產(chǎn)品,以求徹底的解決使用過程中的痛點(diǎn)問題。此時(shí),Serverless架構(gòu)的函數(shù)計(jì)算出現(xiàn)在了Rokid架構(gòu)師的視野,經(jīng)過一段時(shí)間的調(diào)研使用,函數(shù)計(jì)算的各項(xiàng)能力都能夠很好的滿足Rokid使用場(chǎng)景。

函數(shù)計(jì)算的出現(xiàn)恰逢其時(shí)

函數(shù)計(jì)算是事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。使用函數(shù)計(jì)算,客戶無(wú)需采購(gòu)與管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫并上傳代碼或鏡像。函數(shù)計(jì)算會(huì)準(zhǔn)備好計(jì)算資源,彈性地、可靠地運(yùn)行任務(wù),并提供日志查詢、性能監(jiān)控和報(bào)警等功能。

函數(shù)計(jì)算提供CPU,GPU的算力,秒級(jí)計(jì)費(fèi),客戶只需要為實(shí)際資源使用付費(fèi)。資源彈性可根據(jù)定時(shí),請(qǐng)求量等指標(biāo)自動(dòng)伸縮,無(wú)需維護(hù)調(diào)度,負(fù)載,重試,異步回調(diào)等組件,提供了開箱即用,用完即走,按量付費(fèi)的極致Serverless能力。

640 (1).png

底層依托阿里云的大計(jì)算池,提供近乎無(wú)限的計(jì)算資源,通過阿里云的cGPU技術(shù),可將單卡GPU資源切分成多種更小粒度的資源規(guī)格。客戶在函數(shù)計(jì)算選擇GPU規(guī)格創(chuàng)建函數(shù),在有請(qǐng)求時(shí),函數(shù)計(jì)算會(huì)實(shí)時(shí)從預(yù)熱資源池獲取資源,配合對(duì)應(yīng)的鏡像程序,啟動(dòng)客戶函數(shù),啟動(dòng)完畢后對(duì)外提供服務(wù)。

函數(shù)計(jì)算在第一次運(yùn)行實(shí)例時(shí)會(huì)涉及到資源的拉起,彈性交付時(shí)間在1s(熱啟動(dòng))~20s(冷啟動(dòng))。Rokid的三維建圖場(chǎng)景是離線任務(wù),單個(gè)視頻的處理時(shí)間也在分鐘級(jí),對(duì)于秒級(jí)別的啟動(dòng)時(shí)延完全可以接受。

在三維建圖任務(wù)接入函數(shù)計(jì)算后,Rokid不再需要手動(dòng)申請(qǐng)ECI資源,在使用結(jié)束之后也不需要在手動(dòng)釋放。

1.函數(shù)計(jì)算會(huì)根據(jù)請(qǐng)求流量,動(dòng)態(tài)的拉起與請(qǐng)求量匹配的后端GPU算力資源,在請(qǐng)求處理結(jié)束后,一段時(shí)間沒有新請(qǐng)求的情況下,自動(dòng)釋放資源;

2.整個(gè)三維建模在拆分后涉及好幾個(gè)步驟,每個(gè)步驟都是異步執(zhí)行,通過函數(shù)計(jì)算的異步系統(tǒng),在一個(gè)步驟的任務(wù)完成后,可以自動(dòng)觸發(fā)下一個(gè)任務(wù);

3.函數(shù)計(jì)算控制臺(tái)內(nèi)置了指標(biāo)監(jiān)控,異常告警,鏈路追蹤,調(diào)用日志,異步配置的功能,可以滿足Rokid從開發(fā),運(yùn)行監(jiān)控到運(yùn)維全函數(shù)生命周期的功能需求;

4.函數(shù)計(jì)算底層依托阿里云大計(jì)算池,加上預(yù)熱和資源評(píng)估的后端算法,可以最大程度的保證資源供給。

這幾點(diǎn)正是Rokid之前遇到的痛點(diǎn)問題,通過接入函數(shù)計(jì)算單一的產(chǎn)品,就解決了Rokid近乎全部的主要問題。接入函數(shù)計(jì)算后,Rokid的云產(chǎn)品技術(shù)架構(gòu)如下:

640 (2).png

函數(shù)計(jì)算資源利用率監(jiān)控圖如下,從監(jiān)控圖可以看出,在有任務(wù)進(jìn)入時(shí),GPU計(jì)算利用率可以達(dá)到60%甚至接近100%。

640 (3).png

體驗(yàn)與架構(gòu)的妥協(xié)

Serverless理念的函數(shù)計(jì)算確實(shí)給Rokid帶了很多的便利,在高峰期資源的擴(kuò)展性和成本節(jié)約方面都做到了當(dāng)前云產(chǎn)品的極致,但函數(shù)計(jì)算也并非萬(wàn)能,對(duì)于Rokid的場(chǎng)景體驗(yàn)功能,也就是需要實(shí)時(shí)提供定位服務(wù)的模塊,函數(shù)計(jì)算還是存在了一定的問題。

函數(shù)計(jì)算在第一次拉起實(shí)例資源時(shí),會(huì)存在1s(熱啟動(dòng))~20s(冷啟動(dòng))的啟動(dòng)時(shí)間,這個(gè)時(shí)間對(duì)于實(shí)時(shí)定位服務(wù)模塊是不可接受的,實(shí)時(shí)定位是在使用者身處展陳場(chǎng)地時(shí),AR設(shè)備通過實(shí)時(shí)定位,獲取空間位置的AR拓展信息,接口響應(yīng)的時(shí)間對(duì)客戶的體驗(yàn)非常重要,定位請(qǐng)求需要在1s以內(nèi)返回。

在成本和服務(wù)質(zhì)量之間,Rokid選擇了服務(wù)質(zhì)量?jī)?yōu)先,場(chǎng)景體驗(yàn)?zāi)K采用ECI部署,通過每天的定時(shí)任務(wù),在高峰期提前彈出更多的ECI實(shí)例,在低峰期時(shí),保留少量的ECI實(shí)例,以此達(dá)到體驗(yàn)和成本的平衡。

另一方面,函數(shù)計(jì)算在實(shí)時(shí)的場(chǎng)景也并非完全沒有解決方案。目前GPU的模型一般都很大,鏡像都在G級(jí)別,所以對(duì)于第一次資源拉起,在接下來一段時(shí)間內(nèi)還看不到跟CPU資源一樣100ms級(jí)別的拉起速度。

針對(duì)實(shí)時(shí)場(chǎng)景,函數(shù)計(jì)算GPU實(shí)例在做的是預(yù)留實(shí)例,該功能可以在資源閑置時(shí),釋放計(jì)算資源的同時(shí),保留程序的內(nèi)存運(yùn)行鏡像,在有新的請(qǐng)求進(jìn)來時(shí),只需要供給算力資源,函數(shù)就能提供服務(wù),免去了中間硬件資源拉起,函數(shù)鏡像拉取和啟動(dòng)的時(shí)間,可以提供實(shí)時(shí)的服務(wù)。

預(yù)留實(shí)例已經(jīng)在CPU實(shí)例上線,閑置時(shí)CPU價(jià)格是運(yùn)行態(tài)的1/10,在保證實(shí)時(shí)能力的情況下,大大降低了資源成本。GPU版本的預(yù)留能力預(yù)計(jì)年底上線。

640 (4).png

場(chǎng)景體驗(yàn)采用ECI后,Rokid的業(yè)務(wù)架構(gòu)

出色的效果和進(jìn)一步的期待

通過一系列的云架構(gòu)改造,當(dāng)前Rokid三維建圖模塊運(yùn)行在函數(shù)計(jì)算的GPU資源上,場(chǎng)景體驗(yàn)?zāi)K運(yùn)行在ECI資源,在成本和性能上,都做到了兼顧,且給整個(gè)系統(tǒng)強(qiáng)大的可拓展性,達(dá)到了系統(tǒng)設(shè)計(jì)時(shí)設(shè)定的架構(gòu)目標(biāo),從2023/2上線提供服務(wù)以來,達(dá)到了不錯(cuò)的效果。

其中三維建圖模塊降本明顯,相比最初的ECS架構(gòu),算力成本降低了40%,更為重要的是,通過實(shí)時(shí)的并發(fā)處理,大大減少了子任務(wù)的排隊(duì)時(shí)間,加快了整個(gè)任務(wù)的完成時(shí)間。

下一步,Rokid對(duì)于函數(shù)計(jì)算的GPU預(yù)留實(shí)例還是非常期待,期待函數(shù)計(jì)算能夠盡快上線,這樣Rokid內(nèi)部可以將整個(gè)的GPU算力都遷移到函數(shù)計(jì)算,達(dá)到架構(gòu)的統(tǒng)一。

經(jīng)過展陳展覽項(xiàng)目的實(shí)踐,Rokid相信以函數(shù)計(jì)算為代表的Serverless一定是云計(jì)算的未來,通過Serverless,云計(jì)算的使用者不再需要關(guān)注底層的IaaS層運(yùn)維和調(diào)度,在保證成本最優(yōu)的情況下能夠得到最大限度的拓展能力,且在整服務(wù)的生命周期,都能使用云產(chǎn)品提供的原生能力,簡(jiǎn)單,快速的定位,解決問題。

Rokid在3D模型處理,音視頻后處理方面正在大規(guī)模嘗試函數(shù)計(jì)算,Rokid相信以函數(shù)計(jì)算為代表的Serverless架構(gòu)也一定會(huì)在越來越多的云產(chǎn)品上得到應(yīng)用。

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
版權(quán)說明:本文內(nèi)容來自于阿里云,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
阿里云助力《誅仙世界》端游正式開服!
阿里云助力《誅仙世界》端游正式開服!
近?,完美世界游戲歷時(shí)多年打造的新國(guó)?仙俠MMORPG端游《誅仙世界》在阿?云上正式開服。
阿里云
云服務(wù)
2024-12-29
一文詳解阿里云AI大基建
一文詳解阿里云AI大基建
面向AI時(shí)代,阿里云基礎(chǔ)設(shè)施是如何創(chuàng)新與發(fā)展的?計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)、服務(wù)器、集群、可觀測(cè)等,阿里云全新升級(jí)的AI Infra到底有哪些重磅更新?
阿里云
云服務(wù)
2024-11-02
AI時(shí)代云安全新范式,阿里云安全能力全線升級(jí)!
AI時(shí)代云安全新范式,阿里云安全能力全線升級(jí)!
AI時(shí)代,云安全面臨著新的挑戰(zhàn),不僅要持續(xù)面對(duì)以往的傳統(tǒng)問題,更需要全新理念落地于產(chǎn)品設(shè)計(jì)、技術(shù)演進(jìn)、架構(gòu)設(shè)計(jì),才能實(shí)現(xiàn)效果、性能、和成本的最優(yōu)解。
AI
阿里云
云服務(wù)
2024-09-27
連續(xù)四年!阿里云領(lǐng)跑中國(guó)公有云大數(shù)據(jù)平臺(tái)
連續(xù)四年!阿里云領(lǐng)跑中國(guó)公有云大數(shù)據(jù)平臺(tái)
近日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《中國(guó)大數(shù)據(jù)平臺(tái)市場(chǎng)份額,2023:數(shù)智融合時(shí)代的真正到來》報(bào)告——2023年中國(guó)大數(shù)據(jù)平臺(tái)公有云服務(wù)市場(chǎng)規(guī)模達(dá)72.2億元人民幣,其中阿里巴巴市場(chǎng)份額保持領(lǐng)先,占比達(dá)40.2%,連續(xù)四年排名第一。
阿里云
云服務(wù)
2024-09-18
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家