擔任騰訊技術運營副總監好幾年,徐海麗的風格一向穩健,可今年十月底申報預算時卻特別緊張,因為她打算為一項工作第三次「獅子大開口」,向公司申請一大筆錢,「公司還會批嗎?」
何況批預算的總裁劉熾平是出了名的「火眼金睛」,在預算會上審項目,要麼一言不發直接過,要麼隨時打斷提問題。輪到自己,徐海麗惴惴不安地看著老闆,只見劉熾平點點頭,竟自言自語地說「這個錢花得值」——預算通過了。
短短幾個月中,這樣的意料之外已是第二次發生在她身上了。
另一次發生徐海麗休假時的大半夜,家人的手機響了,竟然是團隊同事找來,聲音緊張又興奮。徐海麗一驚:出了什麼事?原來,CEO馬化騰剛剛回復了團隊的一封郵件,要求修改郵件的內容格式,讓手機上看起來更方便。而這封郵件,不過是徐海麗團隊發給全員的例行工作進展郵件。
讓劉熾平如此大方、讓馬化騰如此仔細的工作,究竟是什麼?
151秒識別128萬張圖,底層技術收入寫進財報
答案是四個字:開源協同。
簡單說,開源協同就是騰訊內部原始碼全部開放,不同團隊協同開發,共建騰訊基礎技術平臺。
外部人可能了解的少,實際上,開源協同已在騰訊推進兩年。目前,騰訊內部代碼開源率已超過80%,組建和孵化了151個Oteam(開源協同小組的簡稱),涵蓋了計算、存儲、數據等所有網際網路技術基石,涉及了微信、QQ、騰訊雲等所有騰訊核心業務板塊。
騰訊tRPC Oteam 開源協同生態日活動,主題是:「來吧,留下代碼」
開源協同不僅為騰訊省下了數億元的成本,更通過研發效能的提升,技術輔助騰訊自己的產品、騰訊雲上的廣大產業客戶乃至全球技術共同體。
以雲帆Oteam為例,這個小組已有70多位程式設計師參與貢獻代碼,主攻深度學習框架,集結了騰訊所有事業群的相關技術高手,成立半年後,小組成功刷新圖像處理領域著名的ImageNet訓練速度世界記錄,只需2分31秒就能識別出ImageNet內128萬張圖片內容,Top5精度達到93%。
在程式語言java的openJDK國際開源社區裡,騰訊是迄今為止唯一一家因顯著貢獻被點名致謝的中國公司,在社區最近發布的JDK15版本中,JDK Oteam向主分支貢獻的代碼名列中國公司第一。
在全球最大的代碼託管平臺——Github上,騰訊也已經悄悄貢獻了超過100個開源項目,累計獲得超過30萬個星標,開源貢獻度居全球科技企業頭部。
底層技術收入甚至寫進了剛剛出爐的騰訊2020年第三季度財報。企業級技術優勢被認為是騰訊發力產業網際網路的新亮點,今年前九個月,基礎架構安全產品收入同比增長178%,雲原生安全產品客戶規模超過一萬家。
這還是那個被坊間笑稱只會做產品沒有技術標籤的騰訊麼?
12月2-3日,國際內源基金會ISC首次舉行亞太區峰會, 對騰訊的開源協同大加讚賞
開源協同正在悄悄地重構著騰訊的肌理。騰訊向來以賽馬文化知名,但開放協同恰恰是封閉賽馬的反面。兩年來,騰訊究竟經歷了什麼,不惜在技術上告別「賽馬」轉向「協同」?
但可以肯定的是,無論是取得共識,還是推行實踐,只要對自己「動刀」,就註定了開源協同會歷經艱辛。
哪個能代表騰訊,哪個看上去都不夠強
作為推動開源協同落地的項目經理,徐海麗目睹了這個艱辛的過程,也看到了她在騰訊十三年所不曾看過的景象,比如兩個程式設計師互吹整瓶紅酒。
張青林酒量平平,但在2018年底一個晚上,卻主動幹掉了一整瓶紅酒,對於低調平實的程式設計師來說堪稱罕見。
更稀奇的是,他竟然是向一直以來的「對頭」——另一個程式設計師雷海林敬酒。倆人的團隊同在騰訊技術工程事業群(簡稱TEG)做資料庫技術,關係卻很僵。用雷海林的話說,曾認為彼此「老死不相往來」。
「互撕」在騰訊內部並不稀奇。
多年來賽馬機制催生出許多業務相似的團隊,產品側在賽馬,技術側也在賽馬。優點是產品的需求能在自己的技術團隊裡閉環,得到最快速的支持;而缺點是,重複技術自然造成資源浪費,尤其是研發效能低下,勁兒沒法往一處使。
能推出微信、QQ這種十幾億用戶級別的產品,騰訊存儲、計算、數據等支撐產品的技術家底一定不薄。但伴隨產品取勝,留下一根根技術大煙囪,好比強大的水和電被分散在一個個獨立運轉的工廠裡。
「我們梳理過公司內部重複的技術團隊,有150個之多,向Martin(劉熾平的英文名)匯報時,他都驚呆了。」TEG運營管理部總經理鄭亞峰迴憶。
2018年9月30日,騰訊宣布戰略調整(簡稱930變革),樹起產業網際網路大旗,專門成立了雲與智慧產業事業群(簡稱CSIG)。而要向其他產業提供網際網路的水和電,騰訊雲需要輸出的,恰恰是公司級的技術能力。
但分散的技術能力顯然既缺少說服力,也缺少競爭力。這些煙囪在內部誰也不服誰,單拿出來又都沒法跟外面整體比較,簡言之,就是「不強」。
「拿資料庫來說,光是關係型資料庫就有三個技術產品放在騰訊雲上,客戶一看都懵了,究竟哪個能代表騰訊?哪個看上去都不夠強。」鄭亞峰說。
資料庫只是騰訊幾百個技術煙囪之一。不破不立,騰訊高級執行副總裁兼TEG總裁盧山給出的答案十分直接:敲掉煙囪,拉通技術。
930變革後,騰訊在各事業群之上專門成立技術委員會,盧山牽頭。資料庫是技術委員會點名「必須拉通」的首批技術之一。
在2018年底雙方宣布合作的晚宴上,看著張青林一瓶紅酒喝完,雷海林沒示弱,也幹了一瓶。酒精的刺激下,也許是回顧過往的感觸,也許是多年心防的釋放,放下成見的兩人抱頭痛哭。
兩瓶酒和男人的眼淚,成了團隊合作前夜最好的「破冰」儀式。
在技術拉通的大勢之下,還有多少個醉倒的「雷張」無從知曉。接下來的問題是:該怎麼把散落在公司各處的技術擰成一股繩?
走出條新路,就得先革自己的命
壓力漩渦中心的盧山陷入焦慮:拉通技術意味著打破封閉,可封閉正是過去騰訊勝利的法寶。
革自己的命,談何容易?
鄭亞峰能理解這種複雜心情,他見證過騰訊技術打過的大大小小無數硬仗。在中國網際網路公司裡,騰訊服務面最廣、場景最多、用戶時常最長,「海量」是騰訊技術最重要的標籤之一。
海量時代講究技術專有、敏捷開發,一個功能的實現要經過從需求到開發、測試、運營上線等各環節的串聯路線,每個環節把自己的能力做到極致,專有的同時也是封閉。
但隨著開源和雲化成為最大的兩個技術趨勢,持續開發持續集成,大量開源組件可以直接用,測試運營等則交給研發效能工具,一行代碼可以很快讓用戶看到效果。
曾經的先進變成如今的落後,封閉是病根,那開放就是解藥。
盧山想明白了。他說服騰訊最高決策層「總辦」,借勢930變革,用「開源協同」的方式拉通技術。
但期待中的「大幹一場」,並未立刻出現:從2018年底提出到2019年5月,騰訊的「開源協同」在半年裡,幾乎毫無進展。
「原因特別簡單,大家都覺得開源協同是好事,但不是我的事。」在騰訊技術委員會負責開源協同項目的鄭亞峰說。甚至有技術團隊不理解地問:「我們靠本事打下的陣地,憑什麼別人來搶地盤?」
2019年6月,騰訊技術委員會的會議上,盧山下決心拍板「全面開源」。不光是底層的共同代碼開源,所有專門為產品服務的業務代碼也要內部開放,否則總有人說是業務代碼藏起來。
說到感慨處,盧山在會上紅了眼眶,對著各事業群的技術副總裁們說:「等多年後我們都離開了騰訊,回頭看留下的東西都是一堆煙囪這種殘垣斷壁,心裡會不會痛?」
技術委員會開啟自上而下的強推,決定從最重要的底層技術「山頭」開始動刀,「不同意開源協同的就上總辦」。
六大事業群技術負責人齊聚騰訊技術委員會linktime活動,盧山(左四)與一線程式設計師交流開源協同
基礎的名字服務(一種對IP位址進行名字編碼以方便後臺調用的技術)被點到。TEG基礎架構部組長王洪智受命做名字服務Oteam,才發現公司裡竟然有cl5、織雲l5等眼花繚亂的九個名字服務系統。
怎麼把九個砍成一個?王洪智懵了,「當時我們團隊在維護其中最大的一個,另外八個裡我只認識兩個,還不太熟。」
平臺與內容事業群(簡稱PCG)的內部合併讓Oteam找到一個契機。930變革時,PCG由原先三個事業部合併而成,大量類似的技術服務亟待整合,九個名字服務裡有三個都在PCG。
「我們首先找到PCG的團隊,提出了統一全公司名字服務的方案,經過四輪討論和修改,統一方案得到了雙方的認可。」王洪智先把PCG的「三合一」團隊拉了進來。
這讓王洪智信心倍增,他帶著統一方案又成功說服CSIG的第五個團隊,接著剩下四個團隊也順理成章地都加入了。Oteam給公司級的名字服務取了一個響亮的名字——北極星。
截至2020年9月底,北極星已更新至第12個版本,整合了騰訊全公司90%以上的服務,有110個部門、140萬節點接入了北極星,接口的日調用量超過2.5萬億,調用成功率超過99.999%,曾經的cl5和織雲l5在10月20日正式下線。
從大學畢業進入騰訊,王洪智做「碼農」五年,從沒想過有機會做一個公司級的技術產品。
「我們九個團隊第一次見面時還暢想過,將來提到騰訊的名字服務就是北極星了,我們再完善些也會貢獻到開源社區。」王洪智嘿嘿笑說。
從海量到雲,新時代提出新的技術要求,敲煙囪的人終於跑通了一條自己的新路。
「全行業只有騰訊選擇了開源協同這條路,這是騰訊的創新。」鄭亞峰認為,這條路以開放和協同為抓手,提供了一種新技術中臺的虛擬組織形式,提升研發效能,促進技術進步。
趟進深水區,反而不焦慮了
「新鵝」楊曉峰,雖然在JDK(程式語言java的開發工具技術)領域很資深,卻一直覺得:「誰會關注我們這些做基礎技術的?」
剛入職三個月,他就代表JDK Oteam在騰訊深圳總部濱海大廈領了個大獎——2019年度開源協同優秀獎。
「騰訊招我來牽頭JDK開發的時候就說了,要用開源協同的方式做,我其實就是衝著『協同』兩個字來的。」楊曉峰認為,把基礎軟體開發和全公司的產品需求融合在了一起,Oteam的方式很難得。
10月,JDK Oteam在濱海大廈舉辦生態開放日。楊曉峰沒想到,業務總經理都親自來參加活動;更沒想到,當看到Oteam成員沉醉於討論技術細節、以致於超時了都沒發現,他忽然被感動了。
楊曉峰不再認為自己的工作在騰訊是「無人關注」的:「開源協同這事,給了對基礎技術有興趣的人一個舞臺。」
這正是徐海麗期望看到的。生態開放日活動是她今年推動開源協同的一個重要抓手,幫助Oteam在公司內外打造技術影響力,鼓勵程式設計師們找到更多存在感和榮譽感。
「我們叫培育新代碼文化,讓開放和協同的文化深入人心。」徐海麗說。從當初旁觀雷海林和張青林的「紅酒泯恩仇」,她就隱隱感覺到某種精神被激發,只要有合適的技術土壤和技術氛圍,騰訊的技術還能「幹出更大的事」。
騰訊開源治理文化宣導視角之一:代碼規範大於寫代碼的自由
程式設計師的熱情被點燃。僅2019年,騰訊新增的代碼行數就高達12.9億,新增研發項目超過3500個。
今年6月,集合了騰訊各事業群資料庫內核開發精英力量,資料庫Oteam正式發布首個開源協同版本的資料庫內核TXSQL-8.0,這是騰訊歷史上第一個公司級MySQL內核統一版本,可為騰訊自研業務以及廣大雲客戶提供更強大的支持。
碼客(騰訊內部的技術社區)中「資料庫技術」圈子的成員已超過2800人,一個置頂帖子問:騰訊雲和友商的資料庫產品有何差距?獲贊最多的回答來自一位資料庫產品總監。他寫道,騰訊雲和所有兄弟團隊「已經不止是開源協同,而是全面合作開發」,騰訊雲資料庫的未來「砥礪前行,大有可為」。
騰訊CI Oteam第一個舉辦了生態開放日,數千名員工觀看了內部直播,並在滿分5分的內部直播評價中打出了4.9分;天穹大數據Oteam在內網分享技術心得,獲贊上百個,員工留言「大廠表率」「非常支持這種有意義的事情」;資料庫Oteam的內部分享也被員工表白「強大,慕名而來點讚」……
所有這一切被盧山歸納為開源協同的「深水區」。儘管騰訊在短時間內內部開源的比率讓行業內驚訝,但開源率和Oteam數量都已不是騰訊的重點。
10月30日,騰訊技術委員會面向全員的活動上,盧山說:「2020年我們的重點是Oteam質量、是開源治理,往深水區走了。」
騰訊技術委員會與各事業群程式設計師合影
當然還是會有不一致的聲音。
比如開源治理所發布的代碼規範,為了代碼縮進兩格還是四格,騰訊內網裡程式設計師們吵個不停,盧山笑說這是好事,「大家互相爭吵,代碼越寫越好」。比如經過激烈PK後,依然有類似的團隊協同不了,特別是涉及到一些業務核心利益時,鄭亞峰仍舊耐心地密切觀察,保持溝通。
但無論是盧山,還是鄭亞峰,都不再焦慮。
「開源協同,沒有裡程碑也沒有終點,最終開放和協同會化為無形,成為騰訊的一部分。」鄭亞峰說,「我們一直在路上。」
盧山更看重的,是開源協同背後的信任。當時代對騰訊提出新的要求,只有敏銳地自我革新,用開放協同的文化打破煙囪林立,找回信任,才能勇立潮頭,靜觀風雨。
「技術的開放協同培養了信任,信任才能產生更長遠的創新和影響。」盧山說。
文 | 陳其亮