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