探讨视频云与边缘云平台的竞争力——基于Serverless的端边云一体化媒体网络...
點擊上方“LiveVideoStack”關(guān)注我們
視頻在邊緣的創(chuàng)新方向在哪?下一代視頻云平臺什么樣?本次LiveVideoStackCon 2021 音視頻技術(shù)大會 北京站 我們邀請到了華為云媒體服務(wù)RTC資深產(chǎn)品專家盧志航老師,從以Serverless為承載平臺,以開放、專業(yè)的媒體處理能力為價值核心的方向,與大家探討視頻云與邊緣云平臺的下一代競爭力。
文?| 盧志航
整理 | LiveVideoStack
簡單做個自我介紹,我叫盧志航,來自華為云媒體服務(wù)產(chǎn)品部。從畢業(yè)之后就加入華為公司,一直在負責(zé)視頻相關(guān)業(yè)務(wù),從IPTV,到運營商的OTT業(yè)務(wù)、再到公有云CDN和直播業(yè)務(wù),最近兩年在做RTC相關(guān)工作,目前我擔(dān)任RTC的產(chǎn)品經(jīng)理。
為什么會想與大家聊Serverless系統(tǒng),主要與整個團隊開發(fā)過程息息相關(guān),云視頻團隊在華為云成立之初已成立,都是音視頻專家進行業(yè)務(wù)開發(fā)。經(jīng)過這幾年的積累,逐步提供直播、點播、AR、VR、自由視角與RTC相關(guān)服務(wù)。隨著業(yè)務(wù)的拓展,架構(gòu)也在進化,部署位置從線下到線上,包括到現(xiàn)在的完全云原生,當(dāng)前我們在做相關(guān)Serverless的探索共建,于是分享一些Serverless相關(guān)內(nèi)容。分享將從四個方面進行,首先聊一聊Serverless前世今生,看一看Serverless將朝什么方向發(fā)展;其次在構(gòu)建Serverless過程中遇到的坑,為Serverless平臺關(guān)鍵要素做一些總結(jié);然后將Serverless平臺架構(gòu)和其他關(guān)鍵特性作總結(jié);最后做一個整體總結(jié)。
1. Serverless正在朝著什么樣的方向發(fā)展?
首先來看一看Serverless朝著什么方向發(fā)展。
業(yè)界關(guān)于Serverless的討論也越來越多,那Serverless的定義是什么?CNCF認為關(guān)鍵詞有3個:函數(shù)、按需付費、彈性伸縮。
回顧一下軟件行業(yè)在架構(gòu)上的發(fā)展的歷程。我們早期使用虛擬機部署業(yè)務(wù),開發(fā)者需要自己部署操作系統(tǒng),比如centos和ubunutu,運行時,比如JAVA的JRE,再搭配一套中間件,比如消息中間件Kafka,最后再基于這一層層的能力來寫業(yè)務(wù)代碼,構(gòu)建應(yīng)用軟件,完成最終需求。但是由于硬件異構(gòu),操作系統(tǒng)異構(gòu),版本也異構(gòu),很難做到應(yīng)用的擴容、遷移、運維。所以,docker和k8s應(yīng)運而生,容器技術(shù)的產(chǎn)生使得開發(fā)者的開發(fā)模式完全變了,大家開始發(fā)現(xiàn)微服務(wù)框架配上容器使自己的部署變得簡單了。從此,計算資源開始無處不在,能跑容器的地方就是應(yīng)用可以運行的地方。
但程序員在“偷懶”這件事上是永無止境的,所以我們還不滿意,就產(chǎn)生了Serverless技術(shù),開發(fā)者連容器,運行時的中間件也不需要管了,一切應(yīng)用需要的基礎(chǔ)能力全部由底層統(tǒng)一提供,開發(fā)者只需要關(guān)注自己的應(yīng)用邏輯即可。
一旦開發(fā)者不再關(guān)注基礎(chǔ)資源,那么他的開發(fā)方式也就不需要考慮這些東西。所以Serverless也就成了新的開發(fā)范式。從資源的角度,Serverless也無意中形成了一種新的計算范式。
Serverless作為一種新的開發(fā)范式,軟件的架構(gòu)也一定隨著這種新范式的出現(xiàn)而做出對應(yīng)的變化。傳統(tǒng)的單體是個完全封閉的架構(gòu),業(yè)務(wù)模塊耦合,牽一發(fā)而動全身。微服務(wù)架構(gòu)采用標(biāo)準(zhǔn)的接口來解耦各個業(yè)務(wù)模塊,通過容器技術(shù)也使得開發(fā)更有效率,但是開發(fā)者仍需要關(guān)注容器的部署位置,需要Devops的緊密聯(lián)動。Serverless的架構(gòu)進一步讓開發(fā)者回歸業(yè)務(wù)本質(zhì),免去非業(yè)務(wù)相關(guān)的運維,通過函數(shù)的方式來構(gòu)建應(yīng)用,使得應(yīng)用解耦的顆粒度更小。
我們不僅在開發(fā)過程中可以更專注于業(yè)務(wù),同時對冰山下的內(nèi)容,從應(yīng)用部署、算力親和……異構(gòu)并行到彈性伸縮,這一切都成為非業(yè)務(wù)相關(guān)運維,全部由Serverless平臺處理。開發(fā)者只需要關(guān)心業(yè)務(wù)相關(guān)的運維。
雖然Serverless的好處顯而易見,但Serverless的產(chǎn)品化之路也是一個漫長持續(xù)積累的過程。基于容器技術(shù),公有云廠商把容器背后的計算資源弄成一個大池子,然后提供容器自動伸縮和按需計費的能力供開發(fā)者使用。盡管這樣做省去了不少麻煩,卻不能讓開發(fā)者完全滿意。我們期望它能夠更便捷的使用已有的軟件能力,快速構(gòu)建應(yīng)用,解決需求。因此,各個公有云廠商也開始將已有的各個云服務(wù)通過提供函數(shù)接口的方式將業(yè)務(wù)能力開放,使得各個云服務(wù)成為一個Backend即服務(wù)。開發(fā)者只需要在自己寫的函數(shù)中調(diào)用Backend服務(wù)提供的函數(shù)接口,就可以滿足業(yè)務(wù)訴求,也就是所謂的Functions即服務(wù)。
綜上,在公有云廠商的已有成熟產(chǎn)品中,Serverless的價值也朝著應(yīng)用化的方向發(fā)展。
我們關(guān)注到Serverless不僅僅是面向公有云場景,在面向邊緣場景、終端場景都有良好應(yīng)用,這里所說不是Serverless的部署位置。可以看到在邊緣場景上,Akamai有很好的實現(xiàn),通過把邊緣CDN的接入邏輯和鑒權(quán)邏輯開放,實現(xiàn)用戶更好接入。比如在終端上,華為消費者云通過Wisefunction把華為手機HMS core的業(yè)務(wù)能力在服務(wù)端也開放出來,舉個例子:去年疫情初期,華為手機的負一屏實時顯示各省的疫情情況,就是我們通過Serverless技術(shù)來構(gòu)建的,在函數(shù)中寫好javascript的業(yè)務(wù)邏輯、頁面布局,三天時間直接上線運行。
?
總結(jié)一下,Serverless在云、邊、端已經(jīng)形成了不同的產(chǎn)品形態(tài)。這些不同的產(chǎn)品形態(tài),能讓我們對于未來Serverless的發(fā)展方向有個基本判斷。
面向云上,主要集中在以函數(shù)接口,事件式觸發(fā)來串聯(lián)起各個云服務(wù),為構(gòu)筑完整應(yīng)用解決方案創(chuàng)造價值。
面向邊緣,結(jié)合所處的音視頻行業(yè),我們認為:主要集中在云、邊一體的全覆蓋的媒體業(yè)務(wù)能力的開放,提供專業(yè)化、可定制的視頻云服務(wù),關(guān)鍵還是在于媒體能力的開放。
面向端,主要集中在前后端一體化開放框架,構(gòu)建前端業(yè)務(wù)快速交付的能力。
2. 視頻云需要一個什么樣的Serverless平臺
看完了Serverless平臺演進過程,就要討論對于音視頻業(yè)務(wù)本身需要怎樣的Serverless平臺更好發(fā)展音視頻業(yè)務(wù)。
要回答音視頻業(yè)務(wù)需要怎么樣的Serverless平臺,我們聚焦于視頻的主要核心階段:生產(chǎn),處理和分發(fā)。
如果我們的視頻業(yè)務(wù)是基于Serverless平臺構(gòu)建的,我們希望這個平臺有足夠計算資源,同時能執(zhí)行良好的管理邏輯,方便生產(chǎn)和處理視頻內(nèi)容。
同時我們希望這個平臺能夠管理在統(tǒng)一的傳輸網(wǎng)絡(luò)中,可以有效的傳輸RTC、直播、點播等業(yè)務(wù),可以根據(jù)我們對不同視頻業(yè)務(wù)的SLA做動態(tài)調(diào)整。
最后我們希望這個平臺能夠基于全球一張網(wǎng)來實現(xiàn),有效的屏蔽地域和運營商的差異給視頻開發(fā)者造成的困擾,管理足夠多的邊緣節(jié)點,讓視頻更加貼切用戶。能夠滿足視頻云的這些特點,才能更好的助力視頻業(yè)務(wù)發(fā)展。
除了外在的應(yīng)用資源,我們對于內(nèi)在的軟件資源也有對應(yīng)訴求,其中主要解決兩方面的問題:一是運維成本;二是資源浪費。運維成本方面,希望在Serverless平臺將集群和中間件、基礎(chǔ)設(shè)施運維由統(tǒng)一平臺進行管理,對外只開放應(yīng)用代碼運維。資源浪費方面,因為需要管理云端、邊端海量的資源所以需要對應(yīng)的帶寬資源,舉個例子白天和晚上根據(jù)業(yè)務(wù)不同對視頻業(yè)務(wù)做削峰填谷,對于計算資源而言能在地域之間把高流量節(jié)點和高計算資源節(jié)點做到統(tǒng)籌分配,實現(xiàn)業(yè)務(wù)靈活調(diào)用,從而有效降低機房的TCO值。
?
說完內(nèi)外在的要求,回到音視頻業(yè)務(wù)本身,是所有業(yè)務(wù)中最豐富多彩和變化多端的,開發(fā)者對各種需求應(yīng)接不暇,所以希望視頻原子能力特別是已經(jīng)對外提供服務(wù)的云服務(wù)的原子能力能夠進行抽象,這些抽象出來的功能足夠小的原子顆粒,能給開發(fā)者做快速的編排使用方法,舉個例子:常見的RTC旁推直播,也就是主播連麥PK場景,希望RTC的流處理分流邏輯、RTMP旁推邏輯和CDN播放鑒權(quán)邏輯抽象為對應(yīng)的原子能力,從而快速靈活組成希望要的旁推直播場景。同樣語言、字幕、會議紀要可以通過原子能力提煉形成開放。
所以,我們認為視頻云的Serverless平臺驅(qū)動架構(gòu)解耦更加充分,讓開發(fā)團隊更快速適應(yīng)需求的平臺。我們以視頻的完整生命周期為例,期望全生命周期的各個環(huán)境都是原子解耦的。比如音視頻的采集源可以有多視角,自采集的能力。采集后的數(shù)據(jù),可以做手勢檢測、ROI檢測、字幕檢測、背景替換等前處理。在本地端,音視頻數(shù)據(jù)可以做本地預(yù)覽和渲染。處理后的數(shù)據(jù),可以通過不同的編碼方式編碼,如H264,H265,VP8等。再經(jīng)過不同的線路做分發(fā)傳輸,如公網(wǎng)Overlay的RTN,專線等送到消費端。消費端選擇合適的解碼方式如硬解,軟解等,最終再被后處理和渲染。后處理的時候,還可以采取適當(dāng)?shù)牟鍘瑏碓黾恿鲿扯?#xff0c;去模糊來增強畫質(zhì)等。
我們期望視頻的每一個環(huán)節(jié)在這個Serverless平臺都可以構(gòu)建原子能力。然后通過原子的組合能力編排,來解放生產(chǎn)力。
3. 華為云—云原生媒體網(wǎng)絡(luò)Serverless探索與構(gòu)建
這張圖是華為云視頻基于Serverless平臺構(gòu)建的業(yè)務(wù)架構(gòu)圖。
首先是最底層的終端,包含RTC終端,Live直播終端,行業(yè)視頻VIS終端。
其次是平臺層,平臺層分為大云Region和邊緣節(jié)點兩種部署方式。Region和邊緣節(jié)點具有相同的功能,包括應(yīng)用網(wǎng)關(guān)、沙箱、容器和調(diào)度控制。應(yīng)用可以直接在沙箱內(nèi)部署函數(shù),也可以通過將容器鏡像部署為函數(shù)。而函數(shù)的啟動、停止、預(yù)熱、擴縮等功能全部通過節(jié)點內(nèi)的調(diào)度控制模塊來管理。每個邊緣節(jié)點還配置了應(yīng)用網(wǎng)關(guān),以便節(jié)點對外提供必要的API開放能力。而大云Region和邊緣節(jié)點之間的數(shù)據(jù)協(xié)調(diào),資源協(xié)調(diào),函數(shù)部署等則由分布式的Serverless OS來統(tǒng)一納管。這個分布式Serverless OS 的內(nèi)核華為起名為元戎OS,也就是統(tǒng)帥的意思,期望它能夠完全統(tǒng)管整個云邊一體的媒體網(wǎng)絡(luò)。分布式ServerlessOS 對使用者提供函數(shù)、工作流、統(tǒng)一的IDE工具(用于寫函數(shù),和編排函數(shù))。運營做到無感知,其內(nèi)部包含了全域調(diào)度(統(tǒng)管資源調(diào)度,節(jié)點彈縮管理)、分布式數(shù)據(jù)庫、全局接入等能力。
最后是媒體函數(shù)層。我們把云視頻的核心業(yè)務(wù)組件RTC的SFU,直播的LAS, 轉(zhuǎn)碼的MPC,消息的MBS 通過容器部署為函數(shù)的形式與元戎平臺深度結(jié)合。在這些業(yè)務(wù)組件能力之上提供函數(shù)接口能力。通過函數(shù)接口,構(gòu)建一個函數(shù)生態(tài),有自建函數(shù),也有第三方的函數(shù)都可以跑在我們的ServerlessOS平臺之上。比如各種第三方的美顏算法就可以化為函數(shù),落在我們的MPC上。
我們把這套架構(gòu),總結(jié)了4個關(guān)鍵詞:Edge Native; Serverless; No Ops; ApI Adatper。
這套端邊云Serverless平臺的關(guān)鍵特性一是核心云服務(wù)下沉邊緣,實現(xiàn)云邊業(yè)務(wù)協(xié)同。可以滿足云邊的數(shù)據(jù)同步、任務(wù)協(xié)同、管理協(xié)同、安全協(xié)同等等。如我們在華為云人工智能平臺EI上的ModelArts訓(xùn)練出來的算法,可以直接下推到邊緣節(jié)點進行應(yīng)用。我們也可以把部分云上Region實時性要求不高的轉(zhuǎn)碼活動,下放到邊緣節(jié)點去轉(zhuǎn)碼。通過云邊協(xié)同,真正把邊緣作為公有云的延伸,擴大公有云的服務(wù)范圍資源使用率。
關(guān)鍵特性二是云邊混合調(diào)度,流量+資源聯(lián)合彈性。剛才架構(gòu)圖中我們提到元戎內(nèi)核的全域調(diào)度能力。這個全域調(diào)度就是我們分布式ServerlessOS內(nèi)核中的核心。他通過邊緣節(jié)點的流量數(shù)據(jù),結(jié)合媒體流業(yè)務(wù)特點,預(yù)測出媒體業(yè)務(wù)的未來趨勢。將數(shù)據(jù)反饋給資源調(diào)度平臺——瑤光系統(tǒng),做資源調(diào)度的預(yù)測和統(tǒng)配計算。最終通過Serverless的基礎(chǔ)平臺來部署函數(shù)。實現(xiàn)精準(zhǔn)的協(xié)調(diào)邊緣節(jié)點的資源與服務(wù)SLA質(zhì)量,使之達到平衡點。
關(guān)鍵特性三是一體化開發(fā)體驗、快速迭代視頻應(yīng)用。其實這個特性,也是Serverless對開發(fā)者最直觀的反饋。開發(fā)者通過一個IDE環(huán)境寫出的業(yè)務(wù)函數(shù),直接運行到Region和邊緣,只要函數(shù)功能是原子的,就可以隨意運行在Region或者邊緣。同時,函數(shù)在運行時,為了函數(shù)達到毫秒級的啟動,也為了更加適應(yīng)業(yè)務(wù)突增陡降帶來的資源變化,華為云Serverless有3個優(yōu)化點:1、通過調(diào)度、代碼緩存、預(yù)熱等優(yōu)化函數(shù)啟動階段,使得函數(shù)啟動更快。2、提供函數(shù)與函數(shù)之間的通信框架,使得函數(shù)的調(diào)用更加靈活。3、函數(shù)的擴縮容參考函數(shù)類型,歷史流量等動態(tài)執(zhí)行。
關(guān)鍵特性四是媒體業(yè)務(wù)函數(shù)級靈活編排。最后一個特性,是把我們整個云視頻的業(yè)務(wù)能力全部按照函數(shù)開放出來:如媒體流函數(shù)集專門用于做媒體流收發(fā),智能分析函數(shù)集專門做EI相關(guān)處理,視頻編輯函數(shù)集專門用于做視頻剪輯,實時處理函數(shù)集專門做實時媒體流的增強處理等。我們通過合理的函數(shù)接口設(shè)計,讓各個函數(shù)可以直接編排使用。通過開放的編排能力來完成視頻業(yè)務(wù)的各個流程,達到快速滿足定制化業(yè)務(wù)需求的目的。
舉幾個實際使用的案例。場景舉例一:終端鑒權(quán)場景。基于這套架構(gòu),我們把接入鑒權(quán)功能做了調(diào)整。原先我們的接入鑒權(quán)是工程師把客戶的接入鑒權(quán)規(guī)則編碼到鑒權(quán)服務(wù)器內(nèi)部,鑒權(quán)通過以后才能允許終端接入SFU/LAS等媒體服務(wù)器。通過Serverless平臺,我們把這些鑒權(quán)規(guī)則寫成函數(shù),然后部署到邊緣節(jié)點,終端通過邊緣節(jié)點的應(yīng)用網(wǎng)關(guān)接入后,會觸發(fā)相應(yīng)的鑒權(quán)函數(shù)被執(zhí)行,一旦函數(shù)反饋鑒權(quán)通過,就允許接入到對應(yīng)的媒體服務(wù)器。
場景舉例二:實時語音字幕。這個案例是RTC團隊與華為云會議團隊聯(lián)合開發(fā)的。因為字幕的實時性要求比較高,也并非所有的客戶都需要這個功能,所以當(dāng)前的字幕需求并不是一個標(biāo)配,并且這個業(yè)務(wù)特性的波峰波谷特別明顯。采用Serverless技術(shù)后,可以快速靈活的調(diào)整資源。我們通過分流函數(shù)從SFU分出一路音頻,送入解碼得到音頻數(shù)據(jù)后、再送入ASR做語音文字解析、最后通過MBS將文本信息下發(fā)到端側(cè)SDK。從而既不增加原有音頻流的時延,又滿足字幕的需求。
場景舉例三:邊緣實時渲染能力。現(xiàn)在的手機型號五花八門,能力也參差不齊。各個廠商費盡了心思去適配各種機型,為了滿足渲染的一致性和屏蔽機型的差異,產(chǎn)生了在云端做渲染美顏的想法。我們通過在邊緣Serverless平臺做了一個RTC邊緣實時渲染的案例。在邊緣部署了相應(yīng)的函數(shù)能力以后,通過端側(cè)的信令做為觸發(fā)條件,從SFU分流一路視頻后,經(jīng)過解碼,美顏,編碼再推流到SDK完成整個實時渲染的過程。這里我們還依賴與元戎做了不少深度的結(jié)合。比如需要元戎把宿主機的GPU卡的能力開放給我們的函數(shù)使用,完成GPU直通,直通后的GPU卡可以在不同容器內(nèi)完成快速切換是元戎給我們解決的最大的一個問題。
在做測試同時也用對應(yīng)秒表計算做對應(yīng)測算,基本上端到端時延保證在150ms以內(nèi),有幾組測算數(shù)據(jù),在停住后可以看到數(shù)據(jù)更加明顯一些。
4. 總結(jié)
云視頻的架構(gòu)是隨著云原生技術(shù)的演進不斷演進的,當(dāng)下與未來都將處在演進之中,我們對云視頻的未來有幾個想法分享給大家:
一、云視頻的價值:既要支撐視頻解決方案業(yè)務(wù)快速創(chuàng)新,也要帶動周邊服務(wù)大規(guī)模協(xié)同并發(fā)。
二、云視頻的產(chǎn)品:構(gòu)建媒體網(wǎng)絡(luò)可編程平臺,通過平臺提供高級直播、RTC業(yè)務(wù)處理能力、視頻實時AI能力、可編程內(nèi)容制作及媒體處理管線能力。再通過這些能力來驅(qū)動業(yè)務(wù)創(chuàng)新,實現(xiàn)新的價值。
三、云視頻的核心技術(shù):邊緣Serverless,高密度的OS, 全域調(diào)度。通過核心技術(shù)來驅(qū)動性能提升,提升業(yè)務(wù)能力上限。
以上就是我的全部分享,謝謝。
講師招募
LiveVideoStackCon 2022 音視頻技術(shù)大會 上海站,正在面向社會公開招募講師,無論你所處的公司大小,title高低,老鳥還是菜鳥,只要你的內(nèi)容對技術(shù)人有幫助,其他都是次要的。歡迎通過?speaker@livevideostack.com?提交個人資料及議題描述,我們將會在24小時內(nèi)給予反饋。
喜歡我們的內(nèi)容就點個“在看”吧!
總結(jié)
以上是生活随笔為你收集整理的探讨视频云与边缘云平台的竞争力——基于Serverless的端边云一体化媒体网络...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能视频内容生产中专业视频数据导出工具的
- 下一篇: 共享经济模式下的边缘计算——PPIO边缘