(電梯環(huán)境對網絡的要求極高,這也成為團隊測試網絡細微變化的天然場景)
為了模擬真實的生活場景,技術人員就以經常出入的電梯作為測試環(huán)境,因為騰訊的電梯白天人來人往,員工上班進進出出很多,塑造了一個天然的真實場景。
黃星回憶,有幾天幾乎就在電梯上度過,因為需要不斷的調整參數,不斷的對網絡細微的變化做實驗,少說也乘了上千次電梯。談到那時的情形,他現在依然“心有余悸”。
因為乘坐的次數太多,以至于大廈的保安認為他們是來搗亂的。
除了電梯,為了測試騰訊會議在人流量密切場所的網絡效果,他們把目光鎖定在深圳北站,這里每日的客流量超過百萬,人員密集、網絡環(huán)境復雜,是理想的“實驗場所”。
有一段時間,黃星和宇鋒、景禧等小伙伴乘坐一輛小車在深圳北站附近轉悠,時不時還下車,拿著實驗設備在廣場上測試,因為形跡可疑,險些被公安民警請到警衛(wèi)室喝茶。
正是源于復雜場景的頻繁實驗,以及對網絡切換的苛刻要求,騰訊會議目前已經能夠做到毫秒級快速切換網絡,而行業(yè)還停留在“秒”的水平。
這就好像以前只有一條公路可以運送貨物,公路一旦出現走不通的情況,只能等待把路修好疏通。如今,一旦公路出現擁堵或者走不通,會議立馬可以提供高鐵甚至飛機的選擇,保障貨物更快速送達目的地。
在純粹的B端場景下,騰訊會議作為后入者,如何打磨每一個細分領域和場景,讓企業(yè)和組織的數字化溝通更加簡單、智能、高效,都不斷地考驗著會議團隊的專注和耐心。對會議來說,這更是一場馬拉松長跑。
一年功能迭代20000次背后
用戶體驗起來簡單的技術,背后反而是最復雜的。
為了優(yōu)化用戶體驗,騰訊會議技術團隊常常進入一種不瘋魔不成活的狀態(tài)。
做過App的人應該深有體會,一款App不僅需要適配不同的客戶端,還需要適配不同的操作系統(tǒng)。比如你是蘋果,我是華為,他還是OPPO,操作系統(tǒng)更是囊括了Android、iOS、Windows、Mac、Linux等。
作為天然的一個跨平臺的產品來說,如果每個系統(tǒng)使用獨立的一套架構,后果將會難以想象,不僅開發(fā)起來工作量巨大,對于后期升級和運維來說,也堪稱災難。
騰訊會議客戶端開發(fā)負責人陳志興是最早參與架構設計的成員之一,他回憶稱,從騰訊會議的第一行代碼開始,團隊就堅持同源同構的思想,即同一套架構,同一套代碼,服務所有場景。
更重要的是,主框架全部基于自研。
“雖然開源也可以實現功能上的創(chuàng)新,但對于會議場景來說,因為各個組件和模塊之間的拼接,將會導致信號在傳輸過程中產生延遲,自研的架構天然就是一個整體,在全鏈路的延遲上,有機會比開源做到更低”。
基于在音視頻實時傳輸系統(tǒng)搭建和優(yōu)化上的經驗積累,騰訊會議技術團隊自研了一個跨平臺而且高效的引擎 —xCast。這種端的優(yōu)勢在于實時性,在最短時間內根據網絡等狀況做出反應,配合云上的后臺優(yōu)勢,可以做到靈活調整云端策略。
有了這樣統(tǒng)一的架構,騰訊會議在面對新的移動場景端時,能夠做到最快的平臺兼容和穩(wěn)定。
目前,在騰訊內部,騰訊會議是最快支持蘋果M1芯片的內部應用。
“在底層能力上,騰訊會議堅持自主研發(fā),這可以認為是一種騰訊傳統(tǒng)的自然延續(xù),但對于騰訊會議技術團隊來說,xCast就是要做世界上最好的音視頻通信基礎服務”,騰訊會議平臺架構組負責人D老師表示。
2021年,騰訊會議迭代優(yōu)化了20000個功能,實現小步快跑,背后的殺手锏就是xCast。
一群做軟件的,被逼成硬件工程師
其實,對于交互類產品來說,解決了穩(wěn)定適配和兼容這個最大公約數的問題還只是剛剛開始,為了給用戶最優(yōu)質的溝通體驗,還需要針對每個端的性能進行不斷的優(yōu)化。
拿用戶最關心的手機電量這個點來說,開會作為一個高頻場景,用戶格外關注電量問題,現在很多用戶都有電量焦慮癥。
在會議誕生之初,特別是在夏天,騰訊會議總是會收到比較多的用戶反饋。當時很多學生在使用會議來考試,老師要求必須開攝像頭,他們基本上邊充電,邊開著攝像頭。
(為了測試耗電量,技術團隊對各種款式的老舊手機進行反復測試)
有大量同學反饋說,經常設備發(fā)燙特別厲害,電量消耗得特別快。
為了搞清楚問題,負責性能優(yōu)化的貓哥特別針對相關反饋,一個用戶一個用戶打電話詢問,究竟在什么樣的場景下,掉電比較厲害。通過這種大范圍純手工的“人肉篩查”,團隊最終在超過180例反饋中,梳理出了問題癥結,并做了專門的優(yōu)化。
當時發(fā)現,在雙行卡的Mac機器上使用了高性能一些GPU,它對于非開攝像頭的場景,對電量或者是發(fā)熱的影響是非常大的,后來發(fā)現這個問題以后,針對性的做了多輪測試和優(yōu)化,極大減少了電量的消耗。
除此之外,還做了一些邊界的裁剪,因為剛剛做視圖播放的時候,渲染邊界或者動畫會對CPU的消耗影響非常大。
把線上比較緊急的問題解決完了以后,會議團隊也在思考怎么樣常規(guī)化、自動化地發(fā)現這樣一些問題。
但是問題接踵而來,電量的測試環(huán)境會因為不同的溫度、光照而存在差異,對整個電量消耗都是影響非常大的因素,需要做多次反復的操作,才能達到相對穩(wěn)態(tài)的狀態(tài)。
為了從根本上解決難題,團隊成員開始“不務正業(yè)”,研究起來了數據線的電路原理。
于是,一群會議的軟件工程師,硬是搗鼓出來一塊智能充放電控制板。
(為了提升電量消耗測試的效率,會議技術團隊做了一塊控制板)
經過一番研究之后,發(fā)現數據性的原理并不復雜,它內部的主要電路一部分是支持充電用的,一部分控制信號用的,充電本身就是一個繼電器和控制信號,繼電器的本質作用是為了給它做充電的操作,控制信號主要用來控制充電的開關。通過一臺PC或者Mac的電腦,可以對手機做自動充放電的管理。
摸透了原理之后,會議技術團隊便自己動手焊接了一塊自動控制板,灌上程序,跑了起來,硬生生把一群程序員逼成了硬件工程師。
有了這個電路板之后,技術團隊就能夠更加精準地去測試。比如在80%的電量場景下掉電是什么樣子的,當電量到30%的情況下,又是什么情形。
一個直觀的例子,很多人在參加會議時,如果細心的話會發(fā)現,每個人像旁邊有個麥克風音量動畫顯示對應講話人聲音,當多個人同時有講話時,存在多個動畫,但該動畫頻率高數量大時,對電量的影響也就越明顯。
經過分析后,技術團隊通過動態(tài)調整動畫幀率合并刷新等方式,降低了多音頻場景下電量的消耗,以macOS為例,6人參與的音頻會議,半小時電量消耗下降達到100mAh。
生于云、長于云
除了網絡上、架構上的優(yōu)化,騰訊會議還依靠騰訊云,在更宏觀的維度上作了系統(tǒng)級的規(guī)劃。
最開始,騰訊會議的設計容量支持5萬人同時在線,但是2020年3月騰訊會議的日活就突破了一千萬。如今,騰訊會議的用戶已經超過兩億,在一場又一場“大考”中歷練成長。
就拿擴容來說,以往提到擴容,很容易聯(lián)想到堆機器、堆資源、搶IP。
2020年初,騰訊會議就遭遇了一場硬仗。為了緊急擴容,支持爆發(fā)增長的遠程協(xié)作需求,整個公司幾乎所有有著海量服務經驗的12級專家,都參與到這場戰(zhàn)斗中。
當時,負責媒體傳輸的黃志海、負責媒體流控的薛笛、會議后臺整體架構的王彬三個團隊,更是組成了跨部門鐵三角戰(zhàn)隊。
在多個團隊日以繼夜的 “空降式“救援后,騰訊會議順利完成了會議擴容、穩(wěn)定了后臺服務,還創(chuàng)下8天擴容超過10萬臺云主機,創(chuàng)造了云計算歷史記錄。
這一切,都源于背靠騰訊云完成的。生于云、長于云的騰訊會議交出了一份嶄新的答卷。
(會議擴容之戰(zhàn)的特別作戰(zhàn)室)
根據騰訊云副總裁、騰訊會議技術負責人陳健生介紹,在整體架構上,騰訊會議采用了容器化的云原生方案,真正做到彈性伸縮、自動擴容、異地容災備份、服務化治理。
其次,騰訊會議全面使用騰訊云的云原生組件和能力,比如TDSQL、對象存儲、CDN加速器、文件存儲、日志監(jiān)控、消息隊列等。同時,基于云原生的模式,會議的開發(fā)、測試、部署、運營等四個域的研發(fā)效能全面得到提升,也讓騰訊會議在快速成長的時候得以保持敏捷的迭代節(jié)奏。
“現在要說擴容,幾十萬核心的擴容,一個按鈕就能搞定”,王彬說道。
后臺團隊的大鵬也深有感觸,騰訊會議把云上通用型的能力做成了靈活可配置,隨時可以上,隨時可以下,“原來很多人的苦活累活都被機器替換掉了?!?/p>
今年以來,全國疫情形勢嚴峻,當某個地方出個疫情,騰訊會議可以通過用戶需求觀察,進行系統(tǒng)性立體式的管理,及時發(fā)現流量異常,依靠全自動或極少人工參與的方式進行系統(tǒng)容量的保障,快速支撐疫情地區(qū)人民群眾的遠程需求。
云給騰訊會議帶來的改變遠遠不止擴容這個點。云資源的保障能力不僅體現在人數的垂直維度,還在地理的水平維度上。
2021年的時候,在一場有200方的會議中,成員遍布全球150多個國家。當時面臨的最大的問題就是有些國家網絡好,有些國家網絡很差,甚至有些非洲地區(qū)的網絡,網絡狀況還是十幾年前的水平。
為了保障整個會議的質量,騰訊會議依靠騰訊云遍布全球27個國家的70多個可用區(qū),以及2800多個加速節(jié)點,為220多個國家和地區(qū)的用戶提供就近接入能力,同時借助騰訊云網絡的高質量低延遲的傳輸能力,為會議的穩(wěn)定進行提供了基礎保障。
毫無疑問,生于云、長于云,讓騰訊會議有了一個堅實的技術底座,扛住了洪流般的用戶需求,經歷了一場場大規(guī)模云端實踐。
對于會議的未來技術演進目標,騰訊云副總裁,騰訊會議負責人吳祖榕總結了四個“any”,他希望用戶無論是anytime(任何時間)、anywhere(任何地點)、anydevice(任何設備)、anynetwork(任何網絡),都能穩(wěn)定流暢的開會。
“騰訊會議會開會”,不僅是騰訊對于會議這款產品的承諾,也是一種底氣。