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