探討視頻雲與邊緣雲平台的競爭力 ——基於Serverless的端邊雲一體化媒體網絡

語言: CN / TW / HK

視頻在邊緣的創新方向在哪?下一代視頻雲平台什麼樣?本次LiveVideoStackCon 2021 音視頻技術大會 北京站 我們邀請到了華為雲媒體服務RTC資深產品專家盧志航老師,從以Serverless為承載平台,以開放、專業的媒體處理能力為價值核心的方向,與大家探討視頻雲與邊緣雲平台的下一代競爭力。

文 | 盧志航

整理 | LiveVideoStack

圖片

簡單做個自我介紹,我叫盧志航,來自華為雲媒體服務產品部。從畢業之後就加入華為公司,一直在負責視頻相關業務,從IPTV,到運營商的OTT業務、再到公有云CDN和直播業務,最近兩年在做RTC相關工作,目前我擔任RTC的產品經理。

圖片

為什麼會想與大家聊Serverless系統,主要與整個團隊開發過程息息相關,雲視頻團隊在華為雲成立之初已成立,都是音視頻專家進行業務開發。經過這幾年的積累,逐步提供直播、點播、AR、VR、自由視角與RTC相關服務。隨着業務的拓展,架構也在進化,部署位置從線下到線上,包括到現在的完全雲原生,當前我們在做相關Serverless的探索共建,於是分享一些Serverless相關內容。分享將從四個方面進行,首先聊一聊Serverless前世今生,看一看Serverless將朝什麼方向發展;其次在構建Serverless過程中遇到的坑,為Serverless平台關鍵要素做一些總結;然後將Serverless平台架構和其他關鍵特性作總結;最後做一個整體總結。

1. Serverless正在朝着什麼樣的方向發展?

首先來看一看Serverless朝着什麼方向發展。

圖片

業界關於Serverless的討論也越來越多,那Serverless的定義是什麼?CNCF認為關鍵詞有3個:函數、按需付費、彈性伸縮。

回顧一下軟件行業在架構上的發展的歷程。我們早期使用虛擬機部署業務,開發者需要自己部署操作系統,比如centos和ubunutu,運行時,比如JAVA的JRE,再搭配一套中間件,比如消息中間件Kafka,最後再基於這一層層的能力來寫業務代碼,構建應用軟件,完成最終需求。但是由於硬件異構,操作系統異構,版本也異構,很難做到應用的擴容、遷移、運維。所以,docker和k8s應運而生,容器技術的產生使得開發者的開發模式完全變了,大家開始發現微服務框架配上容器使自己的部署變得簡單了。從此,計算資源開始無處不在,能跑容器的地方就是應用可以運行的地方。

但程序員在“偷懶”這件事上是永無止境的,所以我們還不滿意,就產生了Serverless技術,開發者連容器,運行時的中間件也不需要管了,一切應用需要的基礎能力全部由底層統一提供,開發者只需要關注自己的應用邏輯即可。

一旦開發者不再關注基礎資源,那麼他的開發方式也就不需要考慮這些東西。所以Serverless也就成了新的開發範式。從資源的角度,Serverless也無意中形成了一種新的計算範式。

圖片

Serverless作為一種新的開發範式,軟件的架構也一定隨着這種新範式的出現而做出對應的變化。傳統的單體是個完全封閉的架構,業務模塊耦合,牽一髮而動全身。微服務架構採用標準的接口來解耦各個業務模塊,通過容器技術也使得開發更有效率,但是開發者仍需要關注容器的部署位置,需要Devops的緊密聯動。Serverless的架構進一步讓開發者迴歸業務本質,免去非業務相關的運維,通過函數的方式來構建應用,使得應用解耦的顆粒度更小。

圖片

我們不僅在開發過程中可以更專注於業務,同時對冰山下的內容,從應用部署、算力親和……異構並行到彈性伸縮,這一切都成為非業務相關運維,全部由Serverless平台處理。開發者只需要關心業務相關的運維。

圖片

雖然Serverless的好處顯而易見,但Serverless的產品化之路也是一個漫長持續積累的過程。基於容器技術,公有云廠商把容器背後的計算資源弄成一個大池子,然後提供容器自動伸縮和按需計費的能力供開發者使用。儘管這樣做省去了不少麻煩,卻不能讓開發者完全滿意。我們期望它能夠更便捷的使用已有的軟件能力,快速構建應用,解決需求。因此,各個公有云廠商也開始將已有的各個雲服務通過提供函數接口的方式將業務能力開放,使得各個雲服務成為一個Backend即服務。開發者只需要在自己寫的函數中調用Backend服務提供的函數接口,就可以滿足業務訴求,也就是所謂的Functions即服務。

綜上,在公有云廠商的已有成熟產品中,Serverless的價值也朝着應用化的方向發展。

圖片

我們關注到Serverless不僅僅是面向公有云場景,在面向邊緣場景、終端場景都有良好應用,這裏所説不是Serverless的部署位置。可以看到在邊緣場景上,Akamai有很好的實現,通過把邊緣CDN的接入邏輯和鑑權邏輯開放,實現用户更好接入。比如在終端上,華為消費者雲通過Wisefunction把華為手機HMS core的業務能力在服務端也開放出來,舉個例子:去年疫情初期,華為手機的負一屏實時顯示各省的疫情情況,就是我們通過Serverless技術來構建的,在函數中寫好javascript的業務邏輯、頁面佈局,三天時間直接上線運行。

圖片

總結一下,Serverless在雲、邊、端已經形成了不同的產品形態。這些不同的產品形態,能讓我們對於未來Serverless的發展方向有個基本判斷。

面向雲上,主要集中在以函數接口,事件式觸發來串聯起各個雲服務,為構築完整應用解決方案創造價值。

面向邊緣,結合所處的音視頻行業,我們認為:主要集中在雲、邊一體的全覆蓋的媒體業務能力的開放,提供專業化、可定製的視頻雲服務,關鍵還是在於媒體能力的開放。

面向端,主要集中在前後端一體化開放框架,構建前端業務快速交付的能力。

2. 視頻雲需要一個什麼樣的Serverless平台

看完了Serverless平台演進過程,就要討論對於音視頻業務本身需要怎樣的Serverless平台更好發展音視頻業務。

圖片

要回答音視頻業務需要怎麼樣的Serverless平台,我們聚焦於視頻的主要核心階段:生產,處理和分發。

如果我們的視頻業務是基於Serverless平台構建的,我們希望這個平台有足夠計算資源,同時能執行良好的管理邏輯,方便生產和處理視頻內容。

同時我們希望這個平台能夠管理在統一的傳輸網絡中,可以有效的傳輸RTC、直播、點播等業務,可以根據我們對不同視頻業務的SLA做動態調整。

最後我們希望這個平台能夠基於全球一張網來實現,有效的屏蔽地域和運營商的差異給視頻開發者造成的困擾,管理足夠多的邊緣節點,讓視頻更加貼切用户。能夠滿足視頻雲的這些特點,才能更好的助力視頻業務發展。

圖片

除了外在的應用資源,我們對於內在的軟件資源也有對應訴求,其中主要解決兩方面的問題:一是運維成本;二是資源浪費。運維成本方面,希望在Serverless平台將集羣和中間件、基礎設施運維由統一平台進行管理,對外只開放應用代碼運維。資源浪費方面,因為需要管理雲端、邊端海量的資源所以需要對應的帶寬資源,舉個例子白天和晚上根據業務不同對視頻業務做削峯填谷,對於計算資源而言能在地域之間把高流量節點和高計算資源節點做到統籌分配,實現業務靈活調用,從而有效降低機房的TCO值。

圖片

説完內外在的要求,回到音視頻業務本身,是所有業務中最豐富多彩和變化多端的,開發者對各種需求應接不暇,所以希望視頻原子能力特別是已經對外提供服務的雲服務的原子能力能夠進行抽象,這些抽象出來的功能足夠小的原子顆粒,能給開發者做快速的編排使用方法,舉個例子:常見的RTC旁推直播,也就是主播連麥PK場景,希望RTC的流處理分流邏輯、RTMP旁推邏輯和CDN播放鑑權邏輯抽象為對應的原子能力,從而快速靈活組成希望要的旁推直播場景。同樣語言、字幕、會議紀要可以通過原子能力提煉形成開放。

圖片

所以,我們認為視頻雲的Serverless平台驅動架構解耦更加充分,讓開發團隊更快速適應需求的平台。我們以視頻的完整生命週期為例,期望全生命週期的各個環境都是原子解耦的。比如音視頻的採集源可以有多視角,自採集的能力。採集後的數據,可以做手勢檢測、ROI檢測、字幕檢測、背景替換等前處理。在本地端,音視頻數據可以做本地預覽和渲染。處理後的數據,可以通過不同的編碼方式編碼,如H264,H265,VP8等。再經過不同的線路做分發傳輸,如公網Overlay的RTN,專線等送到消費端。消費端選擇合適的解碼方式如硬解,軟解等,最終再被後處理和渲染。後處理的時候,還可以採取適當的插幀來增加流暢度,去模糊來增強畫質等。

我們期望視頻的每一個環節在這個Serverless平台都可以構建原子能力。然後通過原子的組合能力編排,來解放生產力。

3. 華為雲—雲原生媒體網絡Serverless探索與構建

圖片

這張圖是華為雲視頻基於Serverless平台構建的業務架構圖。

首先是最底層的終端,包含RTC終端,Live直播終端,行業視頻VIS終端。

其次是平台層,平台層分為大雲Region和邊緣節點兩種部署方式。Region和邊緣節點具有相同的功能,包括應用網關、沙箱、容器和調度控制。應用可以直接在沙箱內部署函數,也可以通過將容器鏡像部署為函數。而函數的啟動、停止、預熱、擴縮等功能全部通過節點內的調度控制模塊來管理。每個邊緣節點還配置了應用網關,以便節點對外提供必要的API開放能力。而大雲Region和邊緣節點之間的數據協調,資源協調,函數部署等則由分佈式的Serverless OS來統一納管。這個分佈式Serverless OS 的內核華為起名為元戎OS,也就是統帥的意思,期望它能夠完全統管整個雲邊一體的媒體網絡。分佈式ServerlessOS 對使用者提供函數、工作流、統一的IDE工具(用於寫函數,和編排函數)。運營做到無感知,其內部包含了全域調度(統管資源調度,節點彈縮管理)、分佈式數據庫、全局接入等能力。

最後是媒體函數層。我們把雲視頻的核心業務組件RTC的SFU,直播的LAS, 轉碼的MPC,消息的MBS 通過容器部署為函數的形式與元戎平台深度結合。在這些業務組件能力之上提供函數接口能力。通過函數接口,構建一個函數生態,有自建函數,也有第三方的函數都可以跑在我們的ServerlessOS平台之上。比如各種第三方的美顏算法就可以化為函數,落在我們的MPC上。

我們把這套架構,總結了4個關鍵詞:Edge Native; Serverless; No Ops; ApI Adatper。

圖片

這套端邊雲Serverless平台的關鍵特性一是核心雲服務下沉邊緣,實現雲邊業務協同。可以滿足雲邊的數據同步、任務協同、管理協同、安全協同等等。如我們在華為雲人工智能平台EI上的ModelArts訓練出來的算法,可以直接下推到邊緣節點進行應用。我們也可以把部分雲上Region實時性要求不高的轉碼活動,下放到邊緣節點去轉碼。通過雲邊協同,真正把邊緣作為公有云的延伸,擴大公有云的服務範圍資源使用率。

圖片

關鍵特性二是雲邊混合調度,流量+資源聯合彈性。剛才架構圖中我們提到元戎內核的全域調度能力。這個全域調度就是我們分佈式ServerlessOS內核中的核心。他通過邊緣節點的流量數據,結合媒體流業務特點,預測出媒體業務的未來趨勢。將數據反饋給資源調度平台——瑤光系統,做資源調度的預測和統配計算。最終通過Serverless的基礎平台來部署函數。實現精準的協調邊緣節點的資源與服務SLA質量,使之達到平衡點。

圖片

關鍵特性三是一體化開發體驗、快速迭代視頻應用。其實這個特性,也是Serverless對開發者最直觀的反饋。開發者通過一個IDE環境寫出的業務函數,直接運行到Region和邊緣,只要函數功能是原子的,就可以隨意運行在Region或者邊緣。同時,函數在運行時,為了函數達到毫秒級的啟動,也為了更加適應業務突增陡降帶來的資源變化,華為雲Serverless有3個優化點:1、通過調度、代碼緩存、預熱等優化函數啟動階段,使得函數啟動更快。2、提供函數與函數之間的通信框架,使得函數的調用更加靈活。3、函數的擴縮容參考函數類型,歷史流量等動態執行。

圖片

關鍵特性四是媒體業務函數級靈活編排。最後一個特性,是把我們整個雲視頻的業務能力全部按照函數開放出來:如媒體流函數集專門用於做媒體流收發,智能分析函數集專門做EI相關處理,視頻編輯函數集專門用於做視頻剪輯,實時處理函數集專門做實時媒體流的增強處理等。我們通過合理的函數接口設計,讓各個函數可以直接編排使用。通過開放的編排能力來完成視頻業務的各個流程,達到快速滿足定製化業務需求的目的。

圖片

舉幾個實際使用的案例。場景舉例一:終端鑑權場景。基於這套架構,我們把接入鑑權功能做了調整。原先我們的接入鑑權是工程師把客户的接入鑑權規則編碼到鑑權服務器內部,鑑權通過以後才能允許終端接入SFU/LAS等媒體服務器。通過Serverless平台,我們把這些鑑權規則寫成函數,然後部署到邊緣節點,終端通過邊緣節點的應用網關接入後,會觸發相應的鑑權函數被執行,一旦函數反饋鑑權通過,就允許接入到對應的媒體服務器。

圖片

場景舉例二:實時語音字幕。這個案例是RTC團隊與華為雲會議團隊聯合開發的。因為字幕的實時性要求比較高,也並非所有的客户都需要這個功能,所以當前的字幕需求並不是一個標配,並且這個業務特性的波峯波谷特別明顯。採用Serverless技術後,可以快速靈活的調整資源。我們通過分流函數從SFU分出一路音頻,送入解碼得到音頻數據後、再送入ASR做語音文字解析、最後通過MBS將文本信息下發到端側SDK。從而既不增加原有音頻流的時延,又滿足字幕的需求。

幻燈片23.jpeg

圖片

場景舉例三:邊緣實時渲染能力。現在的手機型號五花八門,能力也參差不齊。各個廠商費盡了心思去適配各種機型,為了滿足渲染的一致性和屏蔽機型的差異,產生了在雲端做渲染美顏的想法。我們通過在邊緣Serverless平台做了一個RTC邊緣實時渲染的案例。在邊緣部署了相應的函數能力以後,通過端側的信令做為觸發條件,從SFU分流一路視頻後,經過解碼,美顏,編碼再推流到SDK完成整個實時渲染的過程。這裏我們還依賴與元戎做了不少深度的結合。比如需要元戎把宿主機的GPU卡的能力開放給我們的函數使用,完成GPU直通,直通後的GPU卡可以在不同容器內完成快速切換是元戎給我們解決的最大的一個問題。

幻燈片26.jpeg

在做測試同時也用對應秒錶計算做對應測算,基本上端到端時延保證在150ms以內,有幾組測算數據,在停住後可以看到數據更加明顯一些。

4. 總結

圖片

雲視頻的架構是隨着雲原生技術的演進不斷演進的,當下與未來都將處在演進之中,我們對雲視頻的未來有幾個想法分享給大家:

一、雲視頻的價值: 既要支撐視頻解決方案業務快速創新,也要帶動周邊服務大規模協同併發。

二、雲視頻的產品: 構建媒體網絡可編程平台,通過平台提供高級直播、RTC業務處理能力、視頻實時AI能力、可編程內容製作及媒體處理管線能力。再通過這些能力來驅動業務創新,實現新的價值。

三、雲視頻的核心技術: 邊緣Serverless,高密度的OS, 全域調度。通過核心技術來驅動性能提升,提升業務能力上限。

以上就是我的全部分享,謝謝。


講師招募

LiveVideoStackCon 2022 音視頻技術大會 上海站,正在面向社會公開招募講師,無論你所處的公司大小,title高低,老鳥還是菜鳥,只要你的內容對技術人有幫助,其他都是次要的。歡迎通過 [email protected] 提交個人資料及議題描述,我們將會在24小時內給予反饋。