探討視訊雲與邊緣雲平臺的競爭力 ——基於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小時內給予反饋。