在線教育「疫」外爆發,視頻直播闖關數百萬級用戶高並發

受特殊情況影響,今年全國普遍延期開課。「停課不停學」,線下教育停擺,教育行業轉戰在線直播。流量突然暴漲,多家在線教育直播都曾出現過系統崩潰。

看似簡單平常的在線視頻直播為什麼難倒了教育公司?數百萬學生同時在線學習需要什麼樣的計算支持?這些問題我們都很好奇。為了更清晰的解答這些問題,我們也與聲網Agora技術VP孫雨潤、聲網Agora教育產品負責人 仇媛媛聊了聊在線教育視頻直播背後的技術支持。

在線教育直播遭遇登錄難、高卡頓

假期期間,有多家在線教育的直播課出現了崩潰情況。解釋為什麼出現崩潰或者卡頓的問題。需要先解釋下在線互動直播教學系統的構成,一般有業務系統、白板系統和音視頻分發系統構成。

概括來說,多家在線教育直播出現的問題有兩類:登陸不上、高卡頓導致幾乎不可用的問題。登陸不上的原因是業務系統後台容量不足,擴容沒有跟上並發的增長,導致的登陸不上。高卡頓的問題主要實時音視頻部分的系統可靠性不夠導致。春節期間,各在線教育直播平台用戶量激增,由於春節期間封網,帶寬資源、服務器資源很難短時間擴容,導致超出了系統承載的極限。後台崩潰了,從而導致大範圍的不可用。

在線教育視頻直播的場景是非常重視實時音視頻質量的場景。任何一堂課的質量問題可能都會帶來賠償或者退費。音視頻質量的好壞是由系統的端到端決定的。大致可歸納幾個因素:

1.設備端:和設備性能、機型、平台有很大關係。設備性能差的話,如果使用純音頻或者低分辨率視頻直播,是沒有問題的。但是如果直播業務選擇了很高的分辨率,對機器性能要求就會比較高。

2.用戶端網絡:和老師、學生側的家庭網絡有關。電信、聯通等運營商的連接質量明顯好於小運營商的。有線連接穩定性明顯好於wifi連接。

3.平台側:和實時音視頻互動強相關的主要是RTC平台。比如聲網就是提供這樣的RTC PaaS服務的,也有部分教育直播互動平台自研RTC部分。RTC平台提供動態網絡路由調度,實時音視頻分發等功能。不同大小的廠商提供的平台並發能力、可用性都些差別,這和系統架構設計、運維能力都息息相關。如果服務器與服務器之間的網絡有丟包,或某台服務器負載過高,都會導致音視頻的卡頓。而春節期間,有些平台沒有及時擴容,出現大範圍的服務器資源過載,帶寬資源瓶頸,導致了音視頻傳輸在服務器與服務器之接出現了高丟包,從而導致大範圍的卡頓問題出現。

其實,教育、社交、辦公是音視頻技術的三個場景,但對音視頻技術的訴求會有些差別。相比於社交,教育、辦公對實時音視頻穩定性、流暢度要求更高。因為一旦實時的互動中出現音視頻不可用,高延遲、高卡頓的情況,就會影響到學習的效果,和會議中的溝通效率,帶來時間上或經濟上的損失。

社交場景因為娛樂性緣故,對音視頻的高清畫質、有趣的玩法要求更高,比如視頻直播場景裡,對連麥的首幀出圖時間以及切換頻道的延時要求很高。

因此技術難度上,教育和辦公場景因為強調高質量、低延時、強互動,所有與會方所在的網絡、使用的終端、所在環境等多種因素都會導致實時互動的延遲、卡頓、穩定性、視頻質量,難度會更高。

在線教育直播「闖關」超高並發

概括來說,此次一些在線教育直播的崩潰來自於超高並發的流量。

高並發顧名思義說的是能同時支持大量用戶同時使用服務,這實際上是個結果,這個結果要求背後有一套高可靠性(reliable)、高可擴展性(Scalable)、高可維護性(Maintainable)的大型分佈式系統。這些buzzwords向來是說起來容易做起來難。對實時互聯網、實時音視頻技術來說,突出的難點可以總結成兩點:

一是實時互聯網對質量的要求是近乎苛刻的。比如,聲網平台每天高峰期數百萬用戶同時使用音視頻服務,百萬分之一的bug都會帶來不小的影響。以教育為例,上課時音視頻卡頓不僅有可能會帶來教學質量差、師生投訴退款流失的風險,由此產生的拖堂、補課還會影響整體排課計畫引起連鎖反應。

二是互聯網中包括網絡、硬件、軟件甚至時間在內的絕大多數組件都是不可靠的:硬盤故障、服務器死機、交換機重啟、機架斷電、數據中心主幹網故障,這些問題司空見慣。尤其在一個包含數萬節點的大型分佈式系統中,幾乎每天都會有一批組件發生故障。

基於不可靠的組件、在全球範圍內構件出一套極致可靠的大型分佈式系統,來滿足客戶、用戶實時音視頻通信需求,這是非常有挑戰的。分佈式系統的原則和思路在學術和工業界都相似,這裡我更想分享下從源頭工程管理和工程實踐上如何保證質量。

首先架構設計上:聲網Agora的架構師團隊在做架構演進設計是要考慮10X以上負荷。比如,如果平台在高峰期需要支持100W用戶同時在線時,那麼系統從架構設計上要有能力支撐1000W;高峰期請求QPS在1K時,系統要至少具備10K的處理能力。

然後在工程師代碼管理上:針對工程師有完整的自動化工具來扮演專家code review的角色:包括coding style、模塊化程度、UT覆蓋率、黑盒自動化測試覆蓋率、staging環境測試、壓力測試、自動灰度升級、灰度升級期間自動驗證等。這樣才能保證以兩週一個班車的高頻迭代下,仍然有可用性的質量保證。剛來的工程師會發現進代碼很難。

最後極其重視從錯誤中學習:公司初期,有一個「等號」寫成「不等號」的低級錯誤,聲網Agora CEO 趙斌牽頭復盤了3次,背後的邏輯是這種低級錯誤如果都不能避免,就別奢談什麼解決行業前沿、世界前沿的難題。

超高並發背後的資源瓶頸

超高並發背後其實是資源瓶頸。資源瓶頸包含兩個方面,第一個是CDN和RTC這類直播、互動雲服務的後台瓶頸,第二個是企業自身業務後台是否存在瓶頸。

CDN/RTC:在線教育的視頻直播主要包括兩個類型,一類就是偏向於直播,老師和學生之間有簡單的實時互動要求,學生能聽/看清楚即可,允許3-10秒的延遲;二類就是更偏向於互動,教師和學生之間需要有較多的互動,教師和學生要實時與對方進行互動,要求延遲低於300毫秒。第一類CDN即可解決,第二類RTC。

業務後台:不論做純直播還是做互動,服務器對在線教育視頻直播是不可用或缺的,業務後台依賴於服務器資源,包括教育中需要用到的錄像等業務也依賴於服務器資源或者云存儲資源。業務平台功能,例如登陸、後台消息互通都是需要有並發量支持,所以業務服務器資源多少決定了平台能承載的並發量。雲主機、雲存儲都是很成熟的IaaS服務了。購買可以解決服務資源的問題,雲服務廠商也會提供一定的技術支持。但是怎麼用,能不能用的好還是需要有後台開發和運維人員的。

其實,這波疫情期間,有很多在線教育視頻直播平台冒出來。其中大部分都是基於第三方的PaaS實現的。

在線教育視頻直播是自己建團隊、開發平台,還是直接採用SaaS服務,還是要看團隊自身的能力。

第一類像大型的教培機構,有構建研發團隊能力,他們在短期應急可能會選擇採用SaaS,因為有較全的基礎功能,可以立馬用,缺點是擴充性較差、實時互動質量難以保證。但從長期來,他們會更偏向於基於專業的PaaS服務來構建自己的平台,優點是實時互動質量得以保證,有較好的擴容性,可以做針對性業務需求進行定製化的功能開發,缺點是需要開發能力和集成時間。

針對這一類,基於PaaS自己實現在線教育視頻直播業務的。可能需要採購RTC、CDN、雲主機、雲存儲服務,然後基於這些第三方的服務開發自己的應用。還需要完成的工作包括研發團隊組建、適合自己場景的業務需求定義、開發運維、平台的運營以及對老師學生的服務支持等等工作依然需要自己完成。

比如,聲網就是提供RTC PaaS層服務的,服務客戶群包括:中大型的教培機構、在線教育公司、提供互動直播教學工具的SaaS公司。在教育行業的客戶包括:新東方、好未來、VIPKID、滬江CCTALK、火花思維、學而思網校等。SaaS客戶包括:伯索、百家雲、保利威、奧鵬教育、歡拓、希沃雲課堂、學點雲等。

第二類小規模的教培機構或者公立校,以老師和內容輸出為主的,沒有能力構建研發團隊,以採購SaaS為主,有較全的基礎功能、即買即用,可滿足他們的需求。

針對這一類,基於SaaS平台開展在線教育業務的。需要基於自己的業務,發展出適合自己的業務運營模式,從引流、試聽、購買、授課一整套環節都要實現在線化。需要結合內容對老師進行培訓並提供必要的工具,有些線下講課很好的老師未必能很好的適應在線教學。

原創文章,作者:石亞瓊。

本文經授權發布,不代表36氪立場。
如若轉載請註明出處。來源出處:36氪