01場景抽象:如何用四個人開發(fā)五天,上線語聊房業(yè)務
在新場景方面,一方面,疫情的推動,加速了各領域應用的線上化。另一方面, 無論是行業(yè)應用市場還是互聯網市場,都出現了線上政務、遠程庭審、無接觸金融服務等多個新場景。誠然,場景的日趨多樣化和復雜化加速了通信行業(yè)的發(fā)展,但在行業(yè)高速發(fā)展過程中,不可避免的對開發(fā)者的各項能力也提出了考驗。
在常規(guī)場景化解決方案下,行業(yè)經歷了兩個發(fā)展階段:
第一階段是利用后端開源代碼加前端開源代碼做二次開發(fā),難度大,學習成本高;
第二階段只需在前端做二次開發(fā),少了一端的接入,但對于開發(fā)者來說仍然需要學習底層知識,“技術雖談不上多復雜,但是開發(fā)人員會花費大量時間在理解實時音視頻的相關概念上,這大大降低了開發(fā)效率?!?/strong>
因此,在今年 6 月,融云上線了語聊房 SDK 1.0,讓開發(fā)者可以快速搭建一個語聊房。有多“快”?
岑裕舉了一個例子:“我們的某個客戶團隊,研發(fā)人員大概?3-4?人左右,在使用語聊房?SDK?的情況下,大概用了五天上線了這部分業(yè)務,而在我們沒有推出語聊房?SDK?之前,另一個客戶團隊,研發(fā)人員?20-30?人左右,用?RTC?底層去集成,大概用了?20?天左右?!?/strong>
目前單一形式的社交 APP 并不多,多數情況下都會加入語聊房的相關場景,基于用戶的需求以及行業(yè)研究,融云推出了語聊房場景 SDK。場景化 SDK 方案大大降低了開發(fā)者的開發(fā)難度和學習難度,提高了開發(fā)效率,也直接推動行業(yè)進入了新的發(fā)展階段,“此外,我們還推出了直播 SDK、呼叫 SDK,并將在未來推出更多熱門場景 SDK,不斷豐富場景化 SDK 的覆蓋面?!贬O蛭覀兺嘎?。
02技術挑戰(zhàn):如何突破直播場景的人數限制及首幀體驗
除了對全新場景做抽象,盡可能地服務開發(fā)者,降低開發(fā)成本。IM/RTC 服務場景的更迭,也將高并發(fā)問題再次提到了開發(fā)者的案頭前。
對高并發(fā)支撐能力,比較“極端”的展示,是融云的“無觀眾上限”互動直播服務。
通常“無上限”服務只是個象征性的表述,即便是大型的公有云服務商,也無法真正實現“無限擴容、無限彈性”。對于 IM/RTC 行業(yè)而言,“無上限”服務更是個嚇人的承諾,因為直播間不僅要承受與不同終端之間的 TCP 連接,還要支撐海量的彈幕轉發(fā)服務、海量的禮物效果轉發(fā)服務,可能要在信令控制層面同時控制幾千萬人。
前段時間,某香港明星出道?40?周年直播,抖音直播間觀看人次破億。岑裕舉了一個例子:
“最近,我們支撐了客戶的一場直播,大概幾百萬人的級別。4 個小時之內,我們分發(fā)了 1900 億條消息?!?/p>
支撐此類高并發(fā)直播,實現“無觀眾上限”互動直播的關鍵在于兩點:
1、消息分發(fā)的機制和控制:說白了,就是實現消息分級體系,在融云被稱為消息“白名單”。舉個例子,禮物信息一般要全數分發(fā),因為貴重禮物對用戶身份的體現,本來就是直播業(yè)務的核心運營價值之一;相反,彈幕的分發(fā)是有選擇的,一個觀眾不太可能在手機屏幕上同時閱讀上千條彈幕,所以也沒必要實現全量分發(fā);
2、音視頻處理:音頻和視頻的處理分發(fā)有兩種處理策略,一種是追求實時性和交互的靈活度,這種一般采用分流分發(fā)的模式;一種是在實時性和帶寬之間進行折中,進行合流分發(fā)。在業(yè)內,前者和后者的技術方案分別叫 SFU 和 MCU,在近些年的 RTC 低延遲直播,會將兩者結合起來用,比如合完流再推送給主播。但是近來由于疫情推動,超大會議室和小班課、語聊房等場景下,進一步模糊了兩者的技術邊界。音頻的部分,除了分流全分發(fā)和合流完再分發(fā),還可以在服務上,對所有上行音頻的音量進行逐節(jié)點權重選路再分發(fā),兼顧實時性和帶寬。視頻的部分,常用的合流分發(fā)會帶來一定的延遲,分流分發(fā)交互更靈活和延遲較高,但是人數多時帶寬占用會較大。在直播時,這兩種模式可以一起使用,并支持隨意切換。在分屏較多時,通過提前訂閱,翻頁顯示幾乎無延遲;通過鏈路復用和內容分層,跳頁顯示延遲在 200ms 以內。
除此之外,直播首幀顯示也是重要用戶體驗指標之一,也是作為開發(fā)者需要重點關注的點。融云提供的低延遲互動直播是基于?RTC?技術做的直播推流,它不依賴?CDN?推流,首幀顯示上延遲在?300ms?左右。“首幀顯示這件事我們同樣分為幾個維度來做。”融云技術?VP?岑裕介紹:
第一,鏈路層面。在保證全球覆蓋的前提下,融云結合所有運營商接入節(jié)點、客戶端物理特性等,幫助用戶在第一時間選擇到最正確的鏈路,這也是基于融云歷史數據不斷去學習的過程;
第二,音頻和視頻的對齊。針對在不同情況下進行音頻首先下發(fā),包括提前多少,視頻如何跟隨調整以及調配鏈路首幀比例,融云會針對不同場景相應做策略上的調整;
第三,首幀 buffer 的設計。傳統 CDN 鏈路涉及直播地址分發(fā)、GOP buffer 數據請求等一系列耗時操作,無法滿足用戶對于“打開一個直播,希望立即加載出視頻畫面”的需求。融云在 RTC 技術上實現了客戶端動態(tài)緩存,并配合服務端對關鍵幀請求處理,把 buffer 變成靜態(tài)加動態(tài)的過程。但關鍵幀請求過程會對網絡有一定壓力,所以在此過程中,融云又對關鍵幀請求做一定的限頻,和靜態(tài)的 buffer 配合形成動態(tài)的首幀 GOP buffer 緩存,從而提高首開效率;
第四,針對不同客戶場景提供不同方案。融云在服務器端提供大小流或者是分層編碼方案,針對不同客戶場景提供不同選項,從而保證客戶依據自己的業(yè)務情況選擇不同的解決方案;
第五,首幀數據監(jiān)控。融云打造了一套完整的體系監(jiān)控全球網絡首開的質量以及具體數據情況,并依據數據情況針對不同地區(qū)網絡情況進行優(yōu)化。
當然,支撐高并發(fā)直播的“內功”,還是分布式架構的設計、分布式事務的處理能力。作為 IM/RTC 服務提供者,還是要優(yōu)先保證自身基礎設施不被流量壓垮,才有余力考慮消息的分級、合并、渲染和分發(fā)。關注【融云全球互聯網通信云】了解更多通信技術
03 WICC 與通信云的未來
服務開發(fā)者,除了提供高標準的技術方案以外,融云也在探索更多形式,全球互聯網通信云大會(WICC) 便是其中之一。
聊到 WICC,岑裕表示“舉辦 WICC 的初衷是,我們希望為開發(fā)者提供一個平臺來和大家交流,幫助他們看清通信技術的發(fā)展的趨勢?!蓖瑫r,他還為大家介紹,每屆大會都會為大家?guī)砑夹g分享,在剛剛過去的廣州站,WICC 為各位開發(fā)者設立了兩場技術分論壇:“社交分論壇”、“出海分論壇”,是對以上場景化趨勢的實踐解讀。
在社交分論壇中,融云場景化研發(fā)負責人臧其龍帶來《融云社交場景化 SDK 探索》主題演講,介紹了融云社交場景化 SDK 的發(fā)展規(guī)劃;積目風控負責人徐銘帶來了《陌生人社交生態(tài)治理實踐》主題演講,介紹了積目在對抗網絡詐騙類黑產中的防控思路與實踐經驗;StarMaker 廣州研發(fā)負責人林瑞群帶來了《StarMaker 音視頻直播架構演進之路》主題演講,從后端架構、海外 CDN、直播協議等方面為直播行業(yè)開發(fā)者提供了自己的經驗。對于身在社交場景的開發(fā)者而言,該場分享是必聽的。
在出海分論壇中,荔枝運維總監(jiān)熊振帶來《全球化業(yè)務基礎設施建設》主題演講,分享了出海業(yè)務在基礎設施上的技術難點,并為各位開發(fā)者帶來了解決方案建議;阿里云智能視頻云高級技術專家鄒娟帶來《面向全球競爭,阿里云視頻云的最佳技術實踐》主題演講,分享了阿里云視頻云的演進路線與技術架構;LiveMe?技術總監(jiān)鄒義鵬帶來《跨境支付體系的演進之路》主題演講,分享了跨境支付體系的搭建實踐過程,并給予各位開發(fā)者實際案例講解。出?;A設施層和架構層涉及的問題比較多,這一場分享可以讓音視頻領域開發(fā)者補充自身技術棧。
兩個分論壇都覆蓋了當下通信云最前沿的技術知識,某種意義上,也向開發(fā)者描繪了行業(yè)未來的整體趨勢。
談及通信云的未來,“我們目前看到的場景中的需求,我認為還是在 4G 或者說 4G 末期積累下來的,至于 5G 下應該如何走,我覺得大家都還處于探索階段?!贬Uf道。
對此,融云也針對行業(yè)目前的現狀提出了應對挑戰(zhàn)的發(fā)展規(guī)劃:
第一,在技術趨勢探索方面,融云將不斷挖掘新的場景下的需求,通過和相關前沿技術廠家合作等方式來不斷滿足新場景下的新需求,為開發(fā)者減負賦能;
第二,在推動整個行業(yè)方面,融云將不斷總結自己的通信云領域經驗,并將經驗傳遞給整個行業(yè)。具體包括:未來將會與產學研界加深合作,進一步明確、推進相關行業(yè)標準的建設工作;支持、推進WICC等行業(yè)各類主題峰會的開展;同時將加強技術社區(qū)建設,逐步推動完善行業(yè)生態(tài)。