數萬人的網際網路公司如何高效運轉,提升技術開發和運用效率?
截至2019年6月30日,騰訊(00700.HK)共有5.63萬名員工。在去年9月30日的大規模組織架構調整中,騰訊沒有通過人員團隊移動,效仿建立技術領域的「大中臺」制,而是寄希望於用內部的「開源協同」去實現「減少重複造輪子」的目標,完成有騰訊特色的「中臺」功能。
此後,騰訊開始愈發注重內部的「技術協同」,希望營造開放的技術氛圍。2019年6月3日,騰訊副總裁姚星在騰訊內部技術社區碼客上寫道:開源協同是目前騰訊研發體系升級很重要的一個方法,開源是手段,協同是結果。如何平衡「去中心化」和「重複造輪子」,開源協同是個很重要的方法,開源的目的是減少「重複造輪子」,協同的目標是「去中心化」,保持快速的響應。
近日,騰訊內部開源和對外開源相關負責人接受了澎湃新聞(www.thepaper.cn)記者在內的媒體採訪,介紹了騰訊近一年以來在內部開源協同和外部開源上的進展。
騰訊為什麼要做內部開源協同?在外界的印象中,騰訊以產品見長。技術圍繞產品快速迭代,但往往限於事業群或是業務內部使用,互相之間壁壘高聳。
「過往我們也有很多引以為豪的技術,像我們的QQ有億級的在線,微信為十億級用戶服務,為什麼到去年突然外面覺得整個騰訊技術能力不行了呢。」騰訊技術委員會PMO成員、開源協同項目負責人鄭亞峰迴憶2018年組織架構調整前的騰訊。
「我們在反思,之前公司內部確實有一些技術壁壘,部門與部門之間的隔閡太多了。同樣的技術,多個團隊在做。」
這成為騰訊推進內部開源協同的初衷:打破壁壘,加強內部的開放和合作。「所以開源協同最主要的目的,是在公司內部營造開放的技術氛圍和開放的代碼文化,以提升公司的研發效能和運營效率。」
2018年9月30日,騰訊宣布架構調整,一是重組事業群(BG),新成立雲與智慧產業智慧群(CSIG)、平臺與內容事業群(PCG),兩個事業群成立的邏輯均是集結了原本散落在多個部門的拳頭產品和技術,齊心擁抱產業網際網路,以及集中精力加大對消費網際網路投入。
二是宣布將成立技術委員會,通過內部分布式開源協同,加強基礎研發,打造具有騰訊特色的技術中臺等一系列措施,促成更多協作與創新。
內部開源協同因此被提升到公司級的戰略高度。2019年1月,騰訊技術委員會正式組建,由騰訊高級執行副總裁、技術工程事業群總裁盧山和騰訊高級執行副總裁、雲與智慧產業事業群總裁湯道生兩名騰訊總辦成員牽頭,下設「開源協同」、「自研上雲」兩個項目組和對外開源管理辦公室。
過去,開源是自下而上的自發行為;現在,開源協同升級成為騰訊的技術戰略之一,由技術委員會牽頭自上而下,投入更大的力度全員推進。
避免「重複造輪子」的另一目的是成本優化。
鄭亞峰介紹,2014年之前,騰訊運營成本增長得很快,運營成本在騰訊總收入裡佔比年年上升。至2014年,騰訊開始組建專門的團隊,通過頂層設計、去中心化協作進行成本優化。
「成本優化,始終是騰訊這麼多年來一直在堅持和貫徹的一項戰略。自從開源協同出現後,這項戰略可以有更多手段來實施。」
內部開源協同是如何實現的?「這次開源在騰訊的戰略是從上而下去設計,從騰訊的技術藍圖出發,盤點每一個領域裡,有哪些公共的技術,以及有哪些團隊在做,多少團隊可以組織起來。這樣做,是為了在將來能達到技術真正的統一和協作。」鄭亞峰介紹。
在日常工作中,技術委員會的角色是做協調、溝通、運營,支撐工作,開源協同的真正參與者是騰訊2萬多名的開發人員。
具體的操作方式上,在推進開源協同後,之前的代碼在小組內、部門內可見,現在代碼全公司可見。之前同一個項目可能有四個團隊在做,但現在四個團隊可以協同開發,技術委員會負責設立協作溝通的方式和平臺,四個團隊把技術共同分享、探討,定期進行會議,討論需求、計劃、方案。
「原來四個團隊各做各的,現在四個團隊還在做這個事情,只是這時候,四個團隊要出一個帶頭人,這個帶頭人之前管一個團隊,現在可能把另外三個團隊也當做他的團隊管。」鄭亞峰說。
以騰訊公司級大數據平臺體系「天穹」項目為例,在天穹項目下,騰訊將內部的大數據技術開源共建,首批開源的組件項目包括Hadoop、Spark、Flink等應用廣泛、技術成熟的公共基礎類項目。
騰訊大數據負責人劉煜宏介紹,之前有些業務BG各自建設了一套業務級的大數據平臺,「我記得以前騰訊被吐槽,說我們的平臺不互通,互相隔離。這次開源協同後,我們搞了一個天穹項目,把公司所有大數據平臺都整合起來,技術資源也聚攏起來了,一起建設公司的大數據基礎平臺。」
運營效率的提升還體現在,此前騰訊內部有4個團隊在做視頻項目,一項技術是可以在同等清晰度情況下把所需帶寬大幅減少,其中一個團隊在這一技術上較為領先,其他團隊一開始沒有直接採用這一技術,而是希望「要自己做」。「但開源協同之後,技術快速在全公司所有視頻領域上線,這是開源協同的收益。」鄭亞峰介紹。
「剛剛跨出一小步」「天穹」是騰訊內部目前50個開源協同的項目之一,未來這一數量還會增加。目前騰訊內部還在做開源協同的基礎工具,包括技術圖譜、專門討論技術的社區碼客、代碼管理工具等。「讓技術人員能夠在固定的地方找得到各種技術,可以直接拿來用。」鄭亞峰說。
不過,鄭亞峰評價騰訊的開源協同是:「剛剛跨出一小步」。
「因為開源動作操作起來簡單,但真正要把過往騰訊20年的代碼開放出來,團隊要花很大的精力盤點,以前代碼裡寫得不是太美觀或者注釋寫得不太規範的,這都需要技術人員重新盤整。」鄭亞峰說。
「在我們看來,這是一個很漫長的過程,大概需要花騰訊3到5年的時間去建設開放氛圍,但這些都是值得的。」
推進內部開源的過程也不是一直順利。「執行過程中總會觸及到一些實際的情況,誰來負責,誰做什麼,怎麼分工等,這在一個團隊裡可能不是問題,當幾個團隊在一起工作時,就顯得突兀起來了。」鄭亞峰說,「騰訊的做法是面對這些問題時,認真溝通和對待,而不是通過一些強硬的手段把大家捏合在一起。做好頂層設計,做好去中心化的協同分工。所以需要從上往下有這個認知,以及逐個團隊去溝通和貫徹。中間也許需要部分團隊做些退讓,但最終的目的都是一致的,讓騰訊的技術更加美好和強大。」
鄭亞峰介紹,為了鼓勵內部的開源協同,騰訊設置了公司級開源協同獎、BG級開源協同獎,HR也在制定相應的策略,以保障技術人員在開源協同的投入後,獲得對應的回報,比在職位的晉升上提供輔助。
和技術「大中臺」有什麼區別?騰訊選擇了工作方式上的「開源協同」,而並非通過團隊調整建立龐大的技術「中臺」,這區別於另一大網際網路公司阿里巴巴的做法。
阿里在2015年開始推行「大中臺、小前臺」組織機制,中臺事業群整合阿里產品技術和數據能力,原來的搜索事業部、共享業務平臺、數據技術及產品部進入中臺,以支撐前臺業務。技術中臺在這兩年,成為網際網路界津津樂道的關鍵詞。
騰訊副總裁王巨宏介紹,騰訊沒有刻意提「中臺」的概念,「因為我們在內部有非常多的中臺,每一樣中臺服務的對象、內容不同,差別會非常大。提中臺反倒引起更多矛盾和誤解,所以對我們來講,我們反倒特意不提,並不是騰訊沒有。」
但相比強調「中臺」概念,或是用組織架構調整實現技術「大中臺」,「開源協同」成為騰訊認為的最適合當下的手段。
鄭亞峰告訴記者,騰訊早前就有中臺的做法,「那時我們的形式是託管服務的方式,但隨著業務的發展,很多團隊的需求都湧入到託管平臺後,基礎中臺的團隊根本響應不過來,所以有些需求業務團隊只好自己實施。」
而現在的內部開源協同,就是為了改變過去託管服務的困境,「多個團隊參與進來,在代碼開放的前提下,每個團隊都可以實現自己的需求。所以協同是騰訊另一種實現中臺的方式。」
鼓勵對外開源推進內部開源協同的同時,2018年9月30日的組織架構調整後,開發者生態的重要性凸顯,騰訊對外開源的步伐也在加快,鼓勵項目首先在騰訊內部流動,並對有價值的項目引導和幫助對外開源。
騰訊大數據負責人劉煜宏介紹,「技術人員都很喜歡開源。開源對技術人員來說是影響力,很多人都想在Apache社區、Linux社區裡有自己的名聲,做到PMC(Product Management Committee,項目管理委員會),可能比騰訊的T4專家名氣還大。」
2019年6月,騰訊開源聯盟主席、騰訊開源管理辦公室委員堵俊平公開了騰訊整體的開源戰略路線圖,騰訊開源將重點關注IaaS、容器與雲原生、資料庫、大數據與AI、中間件、IoT/邊緣計算、小程序生態等。
2019年8月22日,騰訊首個AI開源項目Angel正式發布3.0版本。Angel 3.0嘗試打造一個全棧的機器學習平臺,功能特性涵蓋了機器學習的各個階段:特徵工程,模型訓練,超參數調節和模型服務。9月18日,騰訊宣布將開源自主研發的輕量級物聯網實時作業系統TencentOS tiny。
截至2019年9月,騰訊在Github上發布了84個開源項目,包含微信、騰訊雲、騰訊遊戲、騰訊AI、騰訊安全等相關領域。
對外開源所積累下來的社區化運營、安全檢查流程等開源規範的經驗,也反之運用到了騰訊內部開源協同的過程中。
「開源代表一種未來技術研發的方式,這種技術研發方式是站在前人基礎上往前不斷地迭代,而不是反覆地造輪子。」騰訊開源運營負責人王春雨說。
騰訊開源管理辦公室執行總監許勇告訴記者,「開源,是類似騰訊這樣企業的標配。如果不擁抱開源,那就可能被淘汰。我們也會借鑑和學習其他公司的『工程師文化』,從而鼓勵我們內部的工程師更開放,能夠寫出更優美、質量更高的代碼。這些代碼不但可以在公司內復用,也可以貢獻到開源社區,讓更多人使用。」
(本文來自澎湃新聞,更多原創資訊請下載「澎湃新聞」APP)