現(xiàn)實(shí)中的錨是用來固定船的,是為了讓船不至于飄走。
騰訊技術(shù)體系,也要一個(gè)強(qiáng)大的錨,這個(gè)錨可以理解為騰訊技術(shù)體系的內(nèi)在價(jià)值究竟綁定在什么底座上,進(jìn)而解釋這一體系發(fā)展的參照基準(zhǔn),甚至對外展示其未來價(jià)值和如何滿足產(chǎn)業(yè)預(yù)期。
騰訊技術(shù)體系早期的錨,是錨定于某個(gè)超級產(chǎn)品上,就像早期的貝殼、金、銀等貨幣,它們有內(nèi)在價(jià)值,自身就是錨。
這就好比以往,外界要評估騰訊的技術(shù)水平,往往就會去看微信的產(chǎn)品做到怎么樣,我們就會聽到很多觀點(diǎn),比如,從微信的某某功能來看,騰訊的技術(shù)發(fā)展如何如何。
目前,騰訊的技術(shù)價(jià)值在一定程度上仍是錨定超級產(chǎn)品的,但從騰訊未來的產(chǎn)業(yè)地位和技術(shù)發(fā)展需要來說,這絕非長久之計(jì),因?yàn)楫a(chǎn)品是有興衰周期的,但技術(shù)卻可以越做越強(qiáng),越積越厚。
換言之,騰訊技術(shù)體系的錨,應(yīng)該錨定于自己最前沿技術(shù)的含金量和流通率這兩個(gè)指標(biāo)上,而縱觀整個(gè)騰訊的發(fā)展,沒有任何一個(gè)技術(shù)底座比云計(jì)算更適合擔(dān)當(dāng)這個(gè)“錨定物”。
而要加強(qiáng)這種錨定聯(lián)系,如果騰訊自身的自研業(yè)務(wù)都不能充分上云的話,在邏輯上顯然是不能自洽的,所以,我們看到了從9.30以來的這次“超級工程”。
回落到現(xiàn)實(shí)層面,互聯(lián)網(wǎng)野蠻增長的時(shí)代早已過去,精益增長成為新的標(biāo)準(zhǔn),降本增效要在每個(gè)局部較優(yōu)中求得全局最優(yōu)的解,也需要完成一次集體向云的遷移,這是騰訊前所未有的一次戰(zhàn)略級的技術(shù)穿透對齊,是騰訊內(nèi)部技術(shù)體系打通奇經(jīng)八脈、擁抱開源協(xié)同文化的大動作,是世界范圍內(nèi)也很難找到的超級工程、世紀(jì)工程,甚至可以上升到中國數(shù)字產(chǎn)業(yè)的競爭力的觀察窗層面。
1
騰訊“換錨”
將近四年前的秋天,騰訊完成了自成立以來的第三次重大組織架構(gòu)調(diào)整,史稱“930變革”。
早在2017年年底,騰訊核心管理團(tuán)隊(duì)便著手調(diào)研,試圖“診斷”自身,并且意圖進(jìn)行騰訊公司史上的第三次組織架構(gòu)變革。2018年9月30日,一封落款為“Pony(馬化騰)、Martin(劉熾平)和總辦全體”的郵件被發(fā)送到全體騰訊員工的郵箱中。
在這封宣布變革的郵件中提到:將原來七大事業(yè)群調(diào)整為六大,新成立云與智慧產(chǎn)業(yè)事業(yè)群(CSIG)、平臺與內(nèi)容事業(yè)群(PCG)的同時(shí),騰訊還成立技術(shù)委員會,打造具有騰訊特色的技術(shù)中臺。這也成為騰訊公司史上第三次架構(gòu)調(diào)整。
當(dāng)時(shí),媒體的更多關(guān)注點(diǎn)在于事業(yè)群層面的調(diào)整,對于技術(shù)委員會的成立,關(guān)注、解讀相對較少。
在雷峰網(wǎng)多年對頭部企業(yè)的采訪中,“技術(shù)委員會”作為一個(gè)組織設(shè)置,絕大多數(shù)情況下都扮演著相當(dāng)“虛”的角色,跟掌握著公司技術(shù)路線話語權(quán)的CTO不同,“技術(shù)委員會”大多是給即將榮退、或暫時(shí)無處安放的技術(shù)大牛的一個(gè)榮譽(yù)存在。
但是,這一次和歷史有所不同,930后的技術(shù)委員會有兩個(gè)相當(dāng)實(shí)在的任務(wù)。
那就是啟動“開源協(xié)同”和“自研上云”的兩大戰(zhàn)略方向。
開源協(xié)同比較好理解,此前,和所有“研發(fā)跟著業(yè)務(wù)走”的互聯(lián)網(wǎng)企業(yè)一樣,騰訊圍繞不同的業(yè)務(wù)形成了無數(shù)個(gè)典型的“煙囪式”業(yè)務(wù)架構(gòu),研發(fā)人員只為“自己這個(gè)煙囪”服務(wù)。
這就導(dǎo)致,很多部門的代碼不開放,或者開發(fā)者缺乏寫文檔的動力,因?yàn)闆]人看。但事實(shí)上,作為一個(gè)優(yōu)秀的組件,文檔、支持、社區(qū)都是非常重要的,沒有這些支持的話,很難把一個(gè)組件做到最優(yōu)。但是,在騰訊內(nèi)部無數(shù)次的重復(fù)造輪子的工作后,很多組件缺少文檔,研發(fā)力量支持力度不足,甚至出現(xiàn)了很多無人維護(hù)的“孤兒組件”。
而開源協(xié)同則是希望實(shí)現(xiàn),至少在騰訊內(nèi)部,所有的開發(fā)團(tuán)隊(duì)代碼都是開放的。這從理論上使得團(tuán)隊(duì)與團(tuán)隊(duì)協(xié)作更好,隨時(shí)可以去創(chuàng)建新分支,或者提交更豐富的特性功能,形成公司內(nèi)的開源代碼文化,創(chuàng)建更好的工程師氛圍。
但是,如果大家研發(fā)所使用的工具、體系、目標(biāo)、性質(zhì)都截然不同,代碼公開和開源協(xié)同的意義就變得有限,因?yàn)槟慵词箍吹搅藘?yōu)秀的源代碼,也無法借鑒、移植,應(yīng)用到自己的業(yè)務(wù)場景中去。
而要把這一切都統(tǒng)一協(xié)調(diào)起來,就必須讓開源和協(xié)同基于同一個(gè)底層架構(gòu)之上,而歷史的巧合點(diǎn)就是,有且只有把騰訊的技術(shù)底座以公有云的模式進(jìn)行了一次前所未有的“大一統(tǒng)”,才能讓開源協(xié)同的價(jià)值最大化。
這就是騰訊技術(shù)體系大演進(jìn)和騰訊云業(yè)務(wù)成長的風(fēng)雨際會與歷史巧妙的暗合。
當(dāng)然,自研業(yè)務(wù)上云,并不僅僅是為了更有效的開源協(xié)同。
在宏觀與微觀之間,騰訊全體系的“自研業(yè)務(wù)上云”,目的是基于公有云的研發(fā)模式,使用云上豐富的組件和服務(wù),實(shí)現(xiàn)技術(shù)層面的降本增效;同時(shí)把內(nèi)部自研業(yè)務(wù)的優(yōu)秀工具和組件上云,對外開放,在云上做服務(wù)。最終,使得騰訊云業(yè)務(wù)可以在內(nèi)外部客戶的雙重驅(qū)動下,不斷迭代成為行業(yè)內(nèi)的領(lǐng)先水平。
但是,從最大的宏觀層面,自研上云的核心,是重新錨定騰訊技術(shù)體系的價(jià)值。
長期以來,騰訊“產(chǎn)品強(qiáng)”的口碑都是眾所周知的,但那是toC互聯(lián)網(wǎng)時(shí)代的美譽(yù)。在產(chǎn)業(yè)互聯(lián)網(wǎng)時(shí)代,騰訊急需在技術(shù)價(jià)值層面,為自己的業(yè)務(wù)能力找到一個(gè)“錨定物”。
我們知道,現(xiàn)實(shí)中的錨是用來固定船的,是為了讓船不至于飄走。
騰訊技術(shù)體系,也要一個(gè)強(qiáng)大的錨,這個(gè)錨可以理解為騰訊技術(shù)體系的內(nèi)在價(jià)值究竟綁定在什么底座上,進(jìn)而解釋這一體系發(fā)展的參照基準(zhǔn),甚至對外展示其未來價(jià)值和如何滿足產(chǎn)業(yè)預(yù)期。
騰訊技術(shù)體系并非沒有錨,但早期的錨,是錨定于某個(gè)超級產(chǎn)品上,就像早期的貝殼、金、銀等貨幣,它們有內(nèi)在價(jià)值,自身就是錨。
這就好比以往,外界要評估騰訊的技術(shù)水平,往往就會去看微信的產(chǎn)品做到怎么樣,我們就會聽到很多觀點(diǎn),比如,從微信的某某功能來看,騰訊的技術(shù)發(fā)展如何如何。
目前,騰訊的技術(shù)價(jià)值在一定程度上仍是錨定超級產(chǎn)品的,但從騰訊未來的產(chǎn)業(yè)地位和技術(shù)發(fā)展需要來說,這絕非長久之計(jì),因?yàn)楫a(chǎn)品是有興衰周期的,但技術(shù)卻可以越做越強(qiáng),越積越厚。
換言之,騰訊技術(shù)體系的錨,應(yīng)該錨定于自己最前沿技術(shù)的含金量和流通率這兩個(gè)指標(biāo)上,而縱觀整個(gè)騰訊的發(fā)展,沒有任何一個(gè)技術(shù)底座比云計(jì)算更適合擔(dān)當(dāng)這個(gè)“錨定物”。
而且,這個(gè)“錨”是一體兩用的。
對內(nèi),為所有的業(yè)務(wù)發(fā)展找到根本遵循;對外,展示騰訊技術(shù)體系的能力尺度。
還是拿貨幣來做比喻——在國際貿(mào)易中,想用來交換或者各國之間貿(mào)易,必須讓對方明確,你的貨幣,能夠買到什么,能買多少,它的價(jià)值如何衡量,這個(gè)衡量基礎(chǔ)的“物”,就可以稱之為貨幣的錨定物。
而在未來,外界評估騰訊云的價(jià)值如何、功能如何、對業(yè)務(wù)發(fā)展的價(jià)值如何,都可以參看自研業(yè)務(wù)上云后的整體水平和運(yùn)轉(zhuǎn)情況。
簡單說,騰訊要以自研上云的成果,為騰訊產(chǎn)業(yè)互聯(lián)網(wǎng)的技術(shù)輸出作出信用背書。
回落到現(xiàn)實(shí)層面,互聯(lián)網(wǎng)野蠻增長的時(shí)代早已過去,精益增長成為新的標(biāo)準(zhǔn),降本增效要在每個(gè)局部較優(yōu)中求得全局最優(yōu)的解,也需要完成一次集體向云的遷移,這是騰訊前所未有的一次戰(zhàn)略級的技術(shù)穿透對齊,是騰訊內(nèi)部技術(shù)體系打通奇經(jīng)八脈、擁抱開源協(xié)同文化的大動作,是世界范圍內(nèi)也很難找到的超級工程、世紀(jì)工程,甚至可以上升到中國數(shù)字產(chǎn)業(yè)的競爭力的觀察窗的層面。
更為重要的是,自研上云還有組織能力升級的附加值。
騰訊這樣發(fā)展20多年的企業(yè),內(nèi)部業(yè)務(wù)在一定程度上也形成了“部門墻”效應(yīng)。應(yīng)該說,騰訊做了不少穿透部門墻的努力,但并不是每次都取得比較好的結(jié)果,這里面的原因是極其復(fù)雜的,很難用單一的歸因來解釋。
但至少有一點(diǎn)是,原本分散的技術(shù)架構(gòu),使得部門墻的現(xiàn)象在技術(shù)層面也初見端倪,而自研業(yè)務(wù)上云,既有高層的壓力與安撫,也有執(zhí)行層的協(xié)作與博弈,但這些都客觀為騰訊迎來更開放的技術(shù)氛圍提供了條件。
而最后不得不提及的是,自研業(yè)務(wù)上云,騰訊已經(jīng)不是第一家了。為了迎接產(chǎn)業(yè)互聯(lián)網(wǎng)時(shí)代更激烈的競爭,使得騰訊在未來更殘酷的競爭到來前的檔口上,更換更強(qiáng)大的引擎,恐怕除了自研上云這樣的超級工程,也再也沒有更合適的業(yè)務(wù)實(shí)踐機(jī)會了。
這是一場只能贏,不能輸?shù)拈L期戰(zhàn)、整體戰(zhàn)。
2
自研上云的“三個(gè)關(guān)口”
自研上云,就是把所有騰訊自研的業(yè)務(wù)的運(yùn)行都放到云上去,你可以理解為一次“搬家”。
但這次“搬家”并不是一次簡單的物理平移,也不是把家里的物品原封不動的從A處挪到B處。
如果要找一個(gè)合適的比喻,它更像在太空中組建“天宮實(shí)驗(yàn)室”,它既要把最核心的能力完好無損的進(jìn)行一次漫長的遷移,同時(shí)又要使其在一個(gè)全新的環(huán)境中繼續(xù)安然運(yùn)行,難度可謂前所未有的高。
先拋一個(gè)結(jié)論,騰訊云副總裁徐勇州告訴雷峰網(wǎng):“自研上云之前,騰訊云整體的業(yè)務(wù)負(fù)載,也就是原來三年前大概是在30%的水平,但是今天,基于云原生帶來的調(diào)度以及遷移的能力,集群負(fù)載提升到45%,在離線業(yè)務(wù)混部集群的負(fù)載更是到了65%這樣一個(gè)相對比較高的水準(zhǔn)??紤]到有一些冗余要求,業(yè)界做得好的、也就是美國的科技巨頭,在負(fù)載上大約是做到50%左右。
所以可以得出結(jié)論,無論是從量的角度,還是質(zhì)的角度,騰訊自研業(yè)務(wù)在云端整體的資源負(fù)載率有了一個(gè)大幅提升,這對于企業(yè)來講是一個(gè)巨大的降本增效,是在運(yùn)營效率上得到一個(gè)更極致的提升的過程?!?/p>
然而,這樣一個(gè)過程卻是經(jīng)過了千辛萬苦。
首先,自研上云,這里的云指的是公有云,因?yàn)楣性撇攀窃朴?jì)算行業(yè)發(fā)展的主流,而此前騰訊業(yè)務(wù)已經(jīng)有很多的自發(fā)上云,有的是基于公有云,有的是基于私有云或者混合云。
這比在一張白紙上畫畫更難。
其次,騰訊的很多業(yè)務(wù)不僅成熟,而且對穩(wěn)定性要求極高,比如微信業(yè)務(wù),輕微的抖動都可能影響數(shù)億人的使用。
雷峰網(wǎng)在長期采訪企業(yè)數(shù)字化轉(zhuǎn)型的過程中,對成熟業(yè)務(wù)模塊遷移難度的印象是極為深刻的,這并不能簡單的用“部門墻”或“怕麻煩”來解釋,而是一種真實(shí)的焦慮,這其實(shí)成為很多數(shù)字化程度已經(jīng)很高的企業(yè)上云中最大的阻礙,那就是害怕遷移帶來的風(fēng)險(xiǎn),和對已有系統(tǒng)的信靠。
最后,騰訊并不是一個(gè)非常軍事化氛圍的公司,雖然“自研上云”是公司層面的正式?jīng)Q策,而且有“技術(shù)委員會”作為組織保證,但在實(shí)際工作中,騰訊云的員工并不能僅僅依賴這些公司決策來推動工作,他們需要換位思考、需要在這個(gè)過程中動用更多“情商”,去琢磨上云業(yè)務(wù)單元的種種痛點(diǎn)、顧慮,然后再找出對方能接受的辦法。這是一個(gè)水滴石穿的過程,也是一次最好的如前述“打通技術(shù)體系的奇經(jīng)八脈”的過程。
所以,這三個(gè)難關(guān),其實(shí)也是騰訊云自我突破的三個(gè)階梯。
3
在大江大海里
那么多的困難、那么多的挑戰(zhàn),騰訊仍要堅(jiān)持自研上云,實(shí)在是因?yàn)閮r(jià)值太大了。
用“大江大?!眮硇稳葸@次上云的規(guī)模,也毫不夸張。
用騰訊云CTO王慧星的一句話說就是——在大江大海里調(diào)度資源,難度雖高,但騰挪的空間反而更大了。
這個(gè)騰挪的空間,有兩層意思:一個(gè)是底層自研技術(shù)發(fā)揮作用的空間更大了,能倒推團(tuán)隊(duì)去研發(fā)更先進(jìn)的底層技術(shù);另一個(gè)是資源利用率提升了,降本增效的成果顯著。
首先是底層的自研技術(shù)。
可以說,全球的云計(jì)算都是在當(dāng)時(shí)的算力基礎(chǔ)設(shè)施上做起來的,包括當(dāng)時(shí)的CPU、服務(wù)器、操作系統(tǒng)等。但當(dāng)云計(jì)算的規(guī)模發(fā)展到一定階段,就產(chǎn)生了定制化軟硬件的需求,而且定制的越早,就越為后面的自主可控和資源利用率提升留出空間。因?yàn)樽匝械囊欢ㄊ歉叨确蠈?shí)際需求的,而外購的再好、再定制化,也要受制于人。
因此,包括騰訊這樣的大體量公司最終也都會走到定義硬件或者自研硬件的路子上去。
王慧星提到,2014年前后,騰訊自己的工程師就提出來要自研服務(wù)器、智能網(wǎng)卡,彼時(shí)距離圖靈獎(jiǎng)得主提出“計(jì)算架構(gòu)在未來迎來黃金10年”這個(gè)著名觀點(diǎn)還有三年。而騰訊去推動云平臺的軟硬結(jié)合、研發(fā)云原生硬件也可以追溯到這個(gè)時(shí)候。一方面騰訊云在自研硬件上布局夠早,另一方面自研上云帶來的巨大業(yè)務(wù)體量,也反推了星星海服務(wù)器、智能網(wǎng)卡芯片、視頻編解碼芯片、AI推理芯片的誕生和應(yīng)用。到自研上云后期,性價(jià)比極高的星星海服務(wù)器在云上的規(guī)?;瘧?yīng)用也成為了內(nèi)部業(yè)務(wù)上云的重要推動力。
其次,是資源騰挪帶來的利用率提升。
要在大江大海里把資源盤活,怎么調(diào)度就很重要。這里面也有不少故事。調(diào)度要看兩個(gè)層面,一個(gè)是基于什么調(diào)度,一個(gè)是用什么調(diào)度。
從技術(shù)上來說,全球的云計(jì)算已經(jīng)進(jìn)入云原生階段,其中的一個(gè)關(guān)鍵技術(shù)就是容器。在2019年初,騰訊就定下了最終所有業(yè)務(wù)都得完成容器化改造,打造云原生的基礎(chǔ)設(shè)施。而彼時(shí)大家爭論的點(diǎn)是:用什么調(diào)度,即這個(gè)容器的編排調(diào)度體系,到底是開放給各個(gè)BG各自去做調(diào)度?還是整個(gè)公司用一整套的調(diào)度平臺和服務(wù)?
從行業(yè)里看,最流行的容器編排調(diào)度技術(shù)是K8S。雖然它是谷歌提出來的,但是它今天是社區(qū)上面一個(gè)非常優(yōu)秀的開源服務(wù),騰訊云的團(tuán)隊(duì)在這里面也做了非常多的工作,形成了成熟的產(chǎn)品叫TKE。但騰訊的各個(gè)BG其實(shí)很早就做了很多容器化的實(shí)踐。雖然不是基于K8S的,但在海量業(yè)務(wù)的打磨下,也早就自成體系,扛住了不少考驗(yàn)。
“當(dāng)時(shí),我們在這個(gè)事情上大家的討論還是挺多的。其實(shí)這個(gè)背后的核心還是局部最優(yōu)和整體最優(yōu)。使用TKE作為統(tǒng)一的調(diào)度引擎,是能實(shí)現(xiàn)整體最優(yōu)的。我們也是靠這樣的數(shù)據(jù)分析說服了總辦,也非常感謝盧山(騰訊公司高級執(zhí)行副總裁、技術(shù)工程事業(yè)群總裁)在這個(gè)地方大力的牽頭推動”,王慧星回憶說。
為什么統(tǒng)一調(diào)度能實(shí)現(xiàn)整體最優(yōu)?其實(shí)原理說起來也很簡單:
每個(gè)BG自己做調(diào)度,就相當(dāng)于自建一個(gè)小池塘,按照安全運(yùn)營的基本邏輯,這個(gè)池塘最少也要有20%的一個(gè)空余空間必須保留著。
但是,因?yàn)轵v訊的BG非常的多,如果搞20個(gè)小池塘,那每一個(gè)小池塘都得留著20%,最后留出來的空間那就是20乘以20%,這就是非常大的浪費(fèi)。
在一個(gè)小池塘,跟在一個(gè)大江大海里去做資源的搬遷和調(diào)度,肯定是大江大海的騰挪空間更大,因?yàn)楦罅?,所以反而更省了?/p>
在大江大海里騰挪資源,底層推動技術(shù)創(chuàng)新,往上提升資源利用率。這就是自研上云給騰訊帶來的一個(gè)很顯性價(jià)值。據(jù)騰訊披露,自研上云三年省了30億元。
4
內(nèi)外統(tǒng)一視角之下的自研上云
讓雷峰網(wǎng)感觸頗深的,是騰訊云的自研上云伊始,就提出來一個(gè)要求——服務(wù)于內(nèi)外部客戶,要用統(tǒng)一標(biāo)準(zhǔn)來規(guī)范服務(wù)。
這個(gè)“內(nèi)外部客戶統(tǒng)一性”,值得說說。
有人或許認(rèn)為,服務(wù)于內(nèi)部客戶或許溝通難度低一點(diǎn)。但在騰訊云的實(shí)踐中,這是不能區(qū)分的,或者,有時(shí)候內(nèi)部客戶反而“更刁鉆”。
例如在支持全民K歌的海外版業(yè)務(wù)上云的過程中,使用了一段時(shí)間以后,全民K歌的技術(shù)人員直接扔給騰訊云TRTC(騰訊云實(shí)時(shí)音視頻業(yè)務(wù))一份文檔,另附一行字:“你們自己看看數(shù)據(jù)比得過競品嗎?“
這是真實(shí)的故事,當(dāng)時(shí)全民K歌海外版(WeSing)上云后使用量一直不漲,騰訊云的員工去溝通,對方就直接丟過來一個(gè)很大的文檔,上面就是和競品的各種質(zhì)量對比。
結(jié)論是——進(jìn)房耗時(shí)沒有人家好、清晰度沒有人家高、秒開率也沒有人家高。
TRTC就要分析,除了進(jìn)房耗時(shí)這個(gè)指標(biāo),外部競品有誤導(dǎo)之嫌以外,秒開率、清晰度確實(shí)不如競品。
某種程度上,云服務(wù)出海的技術(shù)復(fù)雜度高于本土,但技術(shù)先進(jìn)性未必高于本土。
在國內(nèi),運(yùn)營商的基建水平很高,例如各個(gè)運(yùn)營商都有很多的大buffer路由器,這些路由器上都有緩沖,當(dāng)帶寬不夠的時(shí)候會增加延時(shí)抗拒丟包,但是,海外很多落后的國家或者偏遠(yuǎn)地區(qū)用的設(shè)備還是上世紀(jì)90年代的設(shè)備,這些設(shè)備沒有緩存,遇到帶寬不夠的時(shí)候上來就丟包,沒有增加延時(shí)。所以當(dāng)時(shí)把國內(nèi)的經(jīng)驗(yàn)搬到海外給客戶用的時(shí)候就水土不服。
騰訊云意識到這個(gè)問題后,針對海外網(wǎng)絡(luò)進(jìn)行了非常多的細(xì)致優(yōu)化,再進(jìn)行大的架構(gòu)升級改造,最終實(shí)現(xiàn)TRTC在各方面指標(biāo)全面做到業(yè)界領(lǐng)先。這些經(jīng)驗(yàn)不僅為更廣泛領(lǐng)域的出海所用,也反哺了國內(nèi)的技術(shù)演進(jìn)。
另外,隨著全民K歌推出“合唱“功能,原有的延時(shí)300毫秒的標(biāo)準(zhǔn),就不夠用了。因?yàn)?,原來都是你唱一段我唱一段,所以延時(shí)300毫秒是沒有問題的。但實(shí)時(shí)合唱就是兩個(gè)人在一起同時(shí)唱一首歌,大家的聲音一定不能一前一后,要到80毫秒以內(nèi),人耳才感覺不出來。
這對技術(shù)挑戰(zhàn)很大,TRTC的延時(shí),是一個(gè)系統(tǒng)性問題,是從采集、編碼、傳輸再到播放渲染這一系列過程中產(chǎn)生了300毫秒的延遲。那么,要優(yōu)化就要從全鏈路上優(yōu)化,從每一個(gè)環(huán)節(jié)上找原因。甚至要精細(xì)到針對手機(jī)的不同操作系統(tǒng)版本,通過調(diào)用不同的API的方式,盡量降低延時(shí)。
所以,TRTC的一個(gè)業(yè)務(wù)負(fù)責(zé)人很有感觸地說:“內(nèi)部客戶的業(yè)務(wù)指標(biāo)檢測做得足夠好,因此提要求就有理有據(jù),這就帶給我們很大的壓力,為了‘生存’、為了應(yīng)對自研業(yè)務(wù)的挑戰(zhàn),在這種極度打壓測試中,慢慢地產(chǎn)品就越做越好了”。
5
分頭突破 集中成長
從全民K歌這個(gè)案例里,我們能看出來,自研上云的第二重價(jià)值,是很好地打磨了騰訊云的產(chǎn)品。
騰訊業(yè)務(wù)線眾多,每個(gè)業(yè)務(wù)場景不同、痛點(diǎn)不同,所以一通跑下來,整個(gè)騰訊云都在提升。
比如,如果粗略的劃分一下,自研上云的過程,可以分為從本地服務(wù)器遷移到云服務(wù)器,和業(yè)務(wù)的云原生化改造兩個(gè)階段,每個(gè)階段都充滿了挑戰(zhàn)。
第一階段的絕對主角是CVM(云服務(wù)器),它是最核心、最基礎(chǔ)的云計(jì)算產(chǎn)品之一,也是騰訊自研業(yè)務(wù)上云的基礎(chǔ)大底座。
簡單而言,CVM要支持大量原本本地化部署的業(yè)務(wù)完成主機(jī)上云,也就是從物理服務(wù)器到云服務(wù)器。
而更進(jìn)一步來說,CVM也是很多業(yè)務(wù)實(shí)現(xiàn)云原生上云的底層支持,例如我們后面會討論到的TKE和EKS等云原生容器服務(wù),本質(zhì)上也是基于CVM構(gòu)建。
作為自研業(yè)務(wù)上云最早的支撐產(chǎn)品,也是自研業(yè)務(wù)上云中規(guī)模最大的產(chǎn)品,CVM承擔(dān)著建立自研業(yè)務(wù)團(tuán)隊(duì)對云本身的信任的責(zé)任。
但這個(gè)過程開局就不順利,2019年2月,首個(gè)自研上云可用區(qū)交付的時(shí)候,定的交付時(shí)間,是一個(gè)周五。但是CVM團(tuán)隊(duì)一直搞到周五晚上一點(diǎn)鐘、兩點(diǎn)鐘還是沒有交付,等到搞完了,業(yè)務(wù)下班了,只能延期到下周一。
首次交付就delay,此次事件被稱為“CVM團(tuán)隊(duì)在支撐自研上云業(yè)務(wù)時(shí)的當(dāng)頭一棒”,后來團(tuán)隊(duì)比較高規(guī)格地復(fù)盤此次問題,引發(fā)了很大的震動。
必須說,騰訊有超級產(chǎn)品和超級場景,這對云業(yè)務(wù)的成長有很大的好處,但也帶來了空前的挑戰(zhàn)。
例如,本地部署的物理服務(wù)器,雖然遠(yuǎn)沒有云來的靈活,但不存在虛擬化帶來單機(jī)性能損耗。
因此性能上,騰訊自研業(yè)務(wù)特別是一些超級業(yè)務(wù),對CVM有著極高的要求,比如微信、QQ等業(yè)務(wù)要求云服務(wù)器單機(jī)性能要相對物理服務(wù)器在8%以內(nèi)。
而事實(shí)是,在2019年時(shí),CVM僅僅能在不同場景下做到虛擬化開銷在15%左右,雖然已經(jīng)是當(dāng)時(shí)的業(yè)界最佳水平,但與自研業(yè)務(wù)預(yù)期之間還有較大差距。
在清晰的目標(biāo)和強(qiáng)大的倒逼壓力下,CVM產(chǎn)品團(tuán)隊(duì)在三個(gè)月時(shí)間內(nèi),結(jié)合業(yè)務(wù)性能測試結(jié)果,啟動云服務(wù)器性能優(yōu)化專項(xiàng),重構(gòu)網(wǎng)絡(luò)虛擬化、存儲虛擬化軟件,大幅優(yōu)化KVM性能。
最后,他們做到了,虛擬機(jī)相比物理機(jī)性能損耗控制甚至在5%以內(nèi),并實(shí)現(xiàn)虛擬化性能損耗降低50%的技術(shù)突破。到現(xiàn)在,騰訊云的虛擬機(jī)相對于物理服務(wù)器的損耗已經(jīng)到0。
而這個(gè)過程,就包含我們前述的,很早就通過自研軟硬件一體化來為系統(tǒng)架構(gòu)突破提供騰挪空間,事實(shí)上,這次CVM的成功達(dá)陣,不是單純靠軟件優(yōu)化得到了,反而恰好是首創(chuàng)性的使用了硬件芯片加速,才實(shí)現(xiàn)網(wǎng)絡(luò)性能提700%,延時(shí)降低60%;存儲性能突破,IO性能提升300%,有效支撐了自研業(yè)務(wù)平滑上云。
有時(shí)候,不得不嘆服,體量大、痛點(diǎn)多,固然是騰訊云的磨難,但的確也是云計(jì)算行業(yè)的福氣。
王慧星就講過一個(gè)案例,他說,一般的服務(wù)器存儲出現(xiàn)問題,換塊硬盤就好了,最多不過換一臺物理機(jī)。但是由于騰訊云的業(yè)務(wù)密度非常大,所以一個(gè)存儲機(jī)柜可能有幾個(gè)P的存儲空間,一旦發(fā)生問題,T級的數(shù)據(jù)備份和P級的數(shù)據(jù)備份,完全不是一個(gè)數(shù)量級上的問題。
但騰訊云的業(yè)務(wù)密度就是催生了這種怪獸級的P級存儲柜,而為了解決這些不可預(yù)知的硬件故障問題,倒逼騰訊云打造出了業(yè)界領(lǐng)先熱遷移熱升級技術(shù),使得熱遷移成功率由70%提升到了98%,已經(jīng)接近極限。
此外,為了優(yōu)化磁盤IO慢導(dǎo)致停機(jī)時(shí)間變長的問題,騰訊云在業(yè)界首創(chuàng)了停機(jī)階段內(nèi)存和磁盤單獨(dú)控制的思路,這已經(jīng)是系統(tǒng)架構(gòu)底層的突破了,而這種突破使得停機(jī)時(shí)間從秒級減少到50ms,而這種“單獨(dú)控制”結(jié)合前面所說的熱遷移技術(shù),使得MCA Recovery技術(shù)大規(guī)模落地,把服務(wù)器內(nèi)存故障率下降了50%,服務(wù)器可用性達(dá)到業(yè)界領(lǐng)先水平。
說到這里,不得不提及的還有一個(gè)驗(yàn)收環(huán)節(jié)。
騰訊,或者說絕大多數(shù)有超級產(chǎn)品的企業(yè),都有一個(gè)特性,那就是規(guī)模越大,對可控性要求越高。
比如,波音747的安全性理論上就是會比波音737更高。
在推動自研上云的過程中,騰訊云計(jì)算產(chǎn)品策劃經(jīng)理劉潔欣就感到,業(yè)務(wù)體量越大的自研上云的業(yè)務(wù),不管是對設(shè)備的性能監(jiān)控,還是日常使用的流程管理,都比其它體量相對沒那么大的業(yè)務(wù)更加嚴(yán)謹(jǐn),準(zhǔn)確的說,是要嚴(yán)謹(jǐn)很多。
這體現(xiàn)在,騰訊云在給一些比較大的業(yè)務(wù)做交付時(shí),即使是內(nèi)部,也會有非常詳細(xì)的驗(yàn)收場景和流程。比如QQ里面也細(xì)分了非常多不同的場景,其中,春晚保障紅包的團(tuán)隊(duì)的驗(yàn)收標(biāo)準(zhǔn),跟QQ提供基礎(chǔ)能力的團(tuán)隊(duì)的驗(yàn)收指標(biāo),又是不一樣的;而到了QQ群的場景,它又是以另一個(gè)標(biāo)準(zhǔn)來衡量,又換了一套更貼合于他們業(yè)務(wù)自身所定義的標(biāo)準(zhǔn)。
這帶來的一個(gè)極大的好處就是,騰訊云每攻克一個(gè)大的業(yè)務(wù)“山頭”,就會沉淀出一整套針對更多的細(xì)分場景和性能場景不同的驗(yàn)收要求,而這些也會沉淀下來,補(bǔ)充到騰訊云的交付體系中,久而久之,這個(gè)體系就天然十分嚴(yán)密。
更多時(shí)候,騰訊云還需要擁抱前沿技術(shù),才能滿足那些復(fù)雜和嚴(yán)密的要求。
比如,騰訊云是國內(nèi)是首先采用KVM虛擬化技術(shù)的,一開始布局虛擬化平臺的時(shí)候,就選擇了Linux+KVM的技術(shù)方案。這在當(dāng)時(shí)是激進(jìn)的,也是有爭議的,畢竟當(dāng)時(shí)業(yè)界主流的虛擬化技術(shù)是Xen。
選擇KVM一方面是KVM在技術(shù)架構(gòu)上有著更好的前景,能夠兼容主干Linux,另外一方面KVM社區(qū)很高的活躍度,正好也符合騰訊擁抱開源的技術(shù)思路。
即便騰訊云在KVM上保持著行業(yè)領(lǐng)先性,但每個(gè)BG需要的交付和支撐都是不同的,要讓騰訊云一開始拿出的交付就滿足所有性能要求,基本不可能。因?yàn)殚_發(fā)者是無法通過窮舉用戶的使用行為來設(shè)計(jì)功能的,只能說沿用過去定義的幾個(gè)業(yè)界比較規(guī)范的指標(biāo)去開發(fā)大略的功能,然后在業(yè)務(wù)交付中不斷完善,每次交付要處理的這些純“細(xì)節(jié)”問題都不會少于上百個(gè),而這也能逐漸加強(qiáng)最終產(chǎn)品形態(tài)的完善。
而在這個(gè)過程中,其實(shí)也充滿了博弈。
聯(lián)合調(diào)優(yōu)、協(xié)同打造,固然是常見;但騰訊云也有一個(gè)堪稱難能的優(yōu)點(diǎn)——那就是它們不會因?yàn)閷Ψ绞强蛻?,就放棄質(zhì)疑對方的權(quán)利。而這才是一種對技術(shù)負(fù)責(zé)的態(tài)度,也是非常有價(jià)值的。
“被上云”的團(tuán)隊(duì),有自己的已有資源和經(jīng)得起考驗(yàn)的技術(shù),所以他們能直接說“你搞不定我就不用”。而騰訊云作為服務(wù)方,也會去質(zhì)疑和挑戰(zhàn)某些標(biāo)準(zhǔn)設(shè)置的是否合理,是否是最優(yōu)路線。正是在兩方都在求真、求極致,才能共同把事情做好,甚至打磨出新的產(chǎn)品復(fù)用到公有云。
6
云上生長
前面我們已經(jīng)提到了,騰訊的上云不是簡單的將業(yè)務(wù)從物理機(jī)搬到云上虛擬機(jī),盡管這個(gè)過程是自研上云的第一大階段。
但這個(gè)階段的目的,恰好是為了幫助自研上云完成第二步的目標(biāo),即借助云原生,尤其是容器、微服務(wù)、DevOps的能力,構(gòu)建面向未來的技術(shù)架構(gòu),打破部門墻和重復(fù)造輪子現(xiàn)象,通過內(nèi)部開源協(xié)同,加強(qiáng)基礎(chǔ)研發(fā),促成更多協(xié)作與創(chuàng)新,提高騰訊的技術(shù)資源利用效率。
騰訊各大事業(yè)群(BG)在沒有上云之前,大多都有一套自己的容器平臺,有的基于自研技術(shù),有的基于開源的K8S,但是大家的方向是一致的,就是看到云原生是未來的大勢所趨。
因此,在上云的過程中,面臨的問題就是怎么上云,是直接上虛擬機(jī),還是云原生,如果使用云原生的話,究竟要用哪個(gè)BG的技術(shù),這里內(nèi)部展開了激烈的PK,當(dāng)時(shí)也調(diào)研了很多的云原生技術(shù),最終確定了以開源協(xié)同的方式,構(gòu)建基于K8S的底層能力,在此之上,使用騰訊云TKE來構(gòu)建每個(gè)BG自身的容器平臺。
反過來先看一個(gè)結(jié)果——自研上云從2018年的930到現(xiàn)在已經(jīng)過了三年多時(shí)間,騰訊云自研業(yè)務(wù)整個(gè)規(guī)模已經(jīng)超過5000萬核心。
更重要的是,騰訊實(shí)現(xiàn)了自研業(yè)務(wù)百分之百在云上生長,這是一個(gè)面向宏闊未來的最佳開局。
前述中,我們講過Wesing這樣的業(yè)務(wù)的上云過程,但事實(shí)上,后期很多的業(yè)務(wù)使用,是直接在云上使用云的能力構(gòu)建自己的服務(wù),最典型的,就是騰訊會議。
騰訊體系內(nèi),除了QQ和微信之外,誰是用最短時(shí)間達(dá)到億級用戶的,你的腦中可能浮現(xiàn)出無數(shù)產(chǎn)品,但你大概率想不到是這一款——騰訊會議。
2020年1月23日,武漢宣布封城,全國在短短數(shù)日內(nèi)切入抗疫模式,僅僅在6天之后,騰訊會議的后臺資源已經(jīng)告急。
畢竟,這是一個(gè)最初只為5萬DAU設(shè)計(jì)的、帶有一定試驗(yàn)性質(zhì)的視頻會議產(chǎn)品,哪知道在幾天之內(nèi),就要承擔(dān)一個(gè)14億人的國度驟然增長的線上會議需求。
這是一次前所未有的、集中的跨時(shí)空溝通需求對線上資源的“擠兌”——扛過擠兌的,自此會提升一個(gè)甚至幾個(gè)數(shù)量級,抗不過擠兌的,自然會在極化的競爭中被淘汰。
如果是在傳統(tǒng)的IOE時(shí)代,這種幾何級數(shù)的增長是平臺級服務(wù)商最難抵御的,因?yàn)閭鹘y(tǒng)系統(tǒng)的設(shè)計(jì)有一定的上限和下限的閾值限定,如果遇到需求突然放大,就必須擴(kuò)容機(jī)房、添置服務(wù)器、增加帶寬,進(jìn)行大量的線下作業(yè),而這其中消耗的時(shí)間可能短則幾日、多則一兩周。
好就好在,騰訊會議基于云原生模式生于云,長于云的,于是,從當(dāng)年的1月29日開始到2月6日,騰訊會議每天都在進(jìn)行資源擴(kuò)容,日均擴(kuò)容云主機(jī)接近1.5萬臺,8天總共擴(kuò)容超過10萬臺云主機(jī),共涉及超百萬核的計(jì)算資源投入,這種無縫也無感的資源投入,只有云計(jì)算才可能做到。
更重要的是,資源擴(kuò)容還好說,架構(gòu)的擴(kuò)容才是最具有技術(shù)難度的。在傳統(tǒng)的數(shù)字化體系內(nèi),軟件的架構(gòu)從萬級到億級,是需要經(jīng)過若干次徹底重寫的,而騰訊會議在短短兩個(gè)月時(shí)間內(nèi)快速擴(kuò)容、調(diào)整架構(gòu),從一個(gè)支撐5萬日活的體系,變成一個(gè)能快速支撐超過千萬日活的體系,在產(chǎn)品孵化期只投了1.5個(gè)后臺開發(fā),花了兩個(gè)月時(shí)間就完成了整個(gè)騰訊會議的后臺體系搭建,這在過去也是不可想象的。
而這一切的背后,核心技術(shù)可以用一個(gè)詞來概括,那就是“云原生“。在整體架構(gòu)上,騰訊會議采用了容器化的云原生方案,真正做到彈性伸縮、自動擴(kuò)容、異地容災(zāi)備份、服務(wù)化治理。
更重要的是,為了進(jìn)一步降低云原生的應(yīng)用難度,從前端的角度講,云原生一直在低代碼/零代碼化,以及不斷累計(jì)優(yōu)秀的組件和模塊,使得開發(fā)者不用太多的考慮基礎(chǔ)設(shè)施層的東西,比如存儲層、邏輯層、接入層等。
簡言之,云原生的應(yīng)用,甚至使得開發(fā)人員并不用擔(dān)心后臺的資源問題,而是完全聚焦于業(yè)務(wù)本身,之于如何用云,由于可以大量快速的使用基于云的基礎(chǔ)設(shè)施和組件,極大的降低了后端的開銷和開發(fā)。
騰訊云原生的案例,雷峰網(wǎng)已經(jīng)收集過很多,但最經(jīng)典的還是這個(gè)——騰訊會議能撐過億級需求,可以說是騰訊云在2017年加速發(fā)展后,一系列基礎(chǔ)研發(fā)和基礎(chǔ)建設(shè)的一次總驗(yàn)收。
這次總驗(yàn)收,也讓騰訊內(nèi)部經(jīng)過海量業(yè)務(wù)打磨的云產(chǎn)品、云技術(shù)和云服務(wù)開放給產(chǎn)業(yè),推動產(chǎn)業(yè)的數(shù)字化升級,助力實(shí)體經(jīng)濟(jì)全面發(fā)展。
7
結(jié)語 走向未來
在深度了解騰訊自研上云的三年多歷程后,雷峰網(wǎng)的感受是,自研上云,并不是簡單讓業(yè)務(wù)把云用起來。
有三點(diǎn)讓人感觸良多:
第一,是騰訊少見的用一個(gè)點(diǎn)調(diào)動了全局。
本質(zhì)上來說,自研上云這個(gè)過程,其實(shí)是集整個(gè)騰訊自研業(yè)務(wù)的全部技術(shù)能力,參與、幫助騰訊云的能力建設(shè)和打造,是一個(gè)少見的能夠通過一個(gè)技術(shù)底座,調(diào)動全公司之力參與的超級工程。
比如K8S的技術(shù),在內(nèi)部叫TKE,它不是騰訊云的一個(gè)部門自己去研發(fā),然后給騰訊所有的業(yè)務(wù)去使用,而是由全騰訊所有的K8S的團(tuán)隊(duì),通過開源協(xié)同的方式共建。一方面,業(yè)務(wù)自己用云的水平得以提升,另一方面,通過開源協(xié)同的方式建設(shè)這個(gè)能力。這個(gè)能力的增強(qiáng)和成本的下降,最終也會讓行業(yè)使用騰訊云的客戶得到這樣經(jīng)過反復(fù)打壓測試后提升的更成熟的云產(chǎn)品。
第二,是全公司的技術(shù)團(tuán)隊(duì)得到了一次很好的穿透對齊。
穿透對齊是企業(yè)文化里常見的一個(gè)表述,但是,通常情況下的傳統(tǒng)對齊比較形式主義,往往是企業(yè)的創(chuàng)始人發(fā)一封全員信,或者全體員工被號召去讀一本書,都叫穿透對齊。
像騰訊這樣體量的公司,穿透的難度是很大的。從這個(gè)角度上,CSIG和自研上云部門建立的協(xié)同機(jī)制,以及在這個(gè)機(jī)制下協(xié)同、對抗、相互質(zhì)疑的過程,會讓原本散作滿天星的騰訊技術(shù)人,能夠建立一種深厚的戰(zhàn)友情誼,同時(shí)也對云的應(yīng)用有了更強(qiáng)的精神共識。
而按照美國科學(xué)哲學(xué)家托馬斯·塞繆爾· 庫恩的名著《科學(xué)革命的結(jié)構(gòu)》所闡述的那樣,一個(gè)主流范式(云原生)的應(yīng)用,除了技術(shù)上的交叉疊加外,最重要看在什么程度上被承認(rèn)為共識,而共識的滲透率決定了這個(gè)技術(shù)范式的影響力。
毫無疑問,自研上云后的騰訊的整個(gè)技術(shù)文化,將產(chǎn)生巨大的變化,而其中之一是更深的共識。
第三,當(dāng)這種共創(chuàng)作為一種機(jī)制保留下來后,騰訊的組織結(jié)構(gòu)也會發(fā)生微妙的變化,比如上云后組織架構(gòu)和職能的變化,包括運(yùn)維職責(zé)的變化;研發(fā)、測試和生產(chǎn)環(huán)境如何在混合云中共存;資源預(yù)核算的變化;故障處理流程的變化等,整個(gè)技術(shù)體系的組織都要準(zhǔn)備跟著公有云轉(zhuǎn)變。
組織架構(gòu)的變化也會帶動三重價(jià)值。
第一是業(yè)務(wù)價(jià)值,業(yè)務(wù)的研發(fā)效率會更高,從0到1開發(fā)一個(gè)新產(chǎn)品的時(shí)間大大縮短;研發(fā)團(tuán)隊(duì)不需要從0開始開發(fā)各種組件和工具,可以更專注業(yè)務(wù)研發(fā)。
第二是工程師價(jià)值,工程師可以使用到整個(gè)業(yè)界最標(biāo)準(zhǔn)化的服務(wù),基于公有云的研發(fā)模式,能夠離開封閉的開發(fā)環(huán)境和組件,讓自己對外、甚至對整個(gè)世界輸出,這無疑給了工程師更多的獲得感。
第三是客戶價(jià)值,可以給行業(yè)輸出非常多的公有云的經(jīng)驗(yàn),讓客戶用到更好的云,推動整個(gè)國內(nèi)數(shù)字化水平的提升。
2017年3月,計(jì)算機(jī)架構(gòu)領(lǐng)域兩位巨星級人物David Patterson與John Hennessy在斯坦福大學(xué)發(fā)表演時(shí)預(yù)言——計(jì)算機(jī)體系結(jié)構(gòu)將迎來一個(gè)新的黃金時(shí)代!
因此,超級場景產(chǎn)生超級云——騰訊自研上云的核心價(jià)值是讓騰訊龐大的業(yè)務(wù)場景變成驅(qū)動騰訊云技術(shù)進(jìn)化的新動能,最后產(chǎn)生世界級的云創(chuàng)新,建立屬于自己的計(jì)算科學(xué)體系架構(gòu)。
這一天,在走向未來中漸漸到來。