超兩萬技術人員如何減少重複造輪子?騰訊推進內部開源協同

2021-01-11 澎湃新聞

數萬人的網際網路公司如何高效運轉,提升技術開發和運用效率?

截至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)

相關焦點

  • 騰訊悄悄做了一年的開源協同,現在怎麼樣了?
    雷鋒網了解到,在技術委員會成立之前,騰訊的開源文化是自下而上的,公司層面對此沒有硬性規定,技術人員通常會自發推進關於前端的,或是工具類的一些開源項目;但這種方式很難推動和業務捆綁緊密、更底層的重量級項目開源——而騰訊技術委員會成立後,自上而下的開源協同機制建立,恰好能解決這一問題。
  • 騰訊首度披露開源協同成果,內部代碼開源率提升至 70%
    2019 年 1 月 4 日,騰訊技術委員會正式成立,由騰訊高級執行副總裁、技術工程事業群總裁盧山和騰訊高級執行副總裁、雲與智慧產業事業群總裁湯道生兩名騰訊總辦成員親自牽頭,下設「開源協同」 和 「自研上雲」 兩個項目組和對外開源管理辦公室,以此來促進內部代碼的開放共享和協同共建,在內部開源基礎上加碼對外開源,並推動業務在雲上全面整合。
  • 理解網際網路開發中的「不要重複造輪子」
    「不要重複造輪子」原話是不要重新發明輪子,被許多人偷梁換柱篡改成了不要重複造輪子。謠言就是這麼起來的。「發明」和「造」,差之毫厘謬以千裡。從事軟體開發多年,倒是經常輪子兩個字打交道,經常也會教育剛入行的程式設計師不要嘗試著開始就造輪子,先把輪子怎麼使用的套路搞明白,後邊基本功上來了隨便怎麼造都是可以的,雖然這個詞經常掛載嘴邊上,但真正能夠造輪子的人還是少得可憐,能夠把外國的輪子使用的非常熟練並且在這個基礎上能夠做到精準的定製就非常不錯了,說到輪子具體來講可能是從開源社區拿到代碼,也可以是別人封裝好的一個庫文件,畢竟現在能夠很多地方拿到很多可靠的類庫
  • 微軟CEO薩提亞·納德拉:不要重複造輪子,提升技術強密度
    薩提亞·納德拉:不要重複造輪子,提升技術強密度  左:薩提亞·納德拉,右:柯睿傑會議伊始,薩提亞·納德拉肯定並感謝中國IT開發者為抗擊疫情所做的工作。並談到在疫情期間,微軟將自己作為「第一責任人」,迅速提出遠程醫療、遠程教學等抗疫解決方案,與全球攜手,共克時艱。
  • 騰訊雲十年新風向:雲原生與開源的未來
    消除內部的技術孤島2018年930變革中,騰訊除了新成立CSIG、PCG兩大事業群之外,還有一個重要舉措是成立技術委員會,實際上承擔了騰訊內部當時一段時間裡「開源協同」和「自研上雲」兩大戰略的實施。在此之前,騰訊內部開源文化匱乏,各部門之間缺乏技術合作,代碼也互不開放。
  • 騰訊雲十年新風向:雲原生與開源的未來
    消除內部的技術孤島2018年930變革中,騰訊除了新成立CSIG、PCG兩大事業群之外,還有一個重要舉措是成立技術委員會,實際上承擔了騰訊內部當時一段時間裡「開源協同」和「自研上雲」兩大戰略的實施。在此之前,騰訊內部開源文化匱乏,各部門之間缺乏技術合作,代碼也互不開放。
  • 騰訊技術委員會正式成立 地位高於六大事業群
    作者 | 張超 編輯 | 宋家婷完成組織架構調整三個月後,騰訊於近日正式成立了技術委員會。據悉,騰訊高級執行副總裁、技術工程事業群總裁盧山和騰訊高級執行副總裁、雲與智慧產業事業群總裁湯道生兩名騰訊總辦成員牽頭,幾大事業群的技術負責人將悉數進入技術委員會決策圈。
  • 【騰訊開源】專訪Koala團隊:預處理器語言圖形編譯工具
    Koala代碼託管地址: https://code.csdn.net/Tencent/koala  騰訊開源項目組織: https://code.csdn.net/Tencent
  • 「騰訊開源十年圖譜」發布,覆蓋雲原生等五大技術領域
    據單致豪介紹,「騰訊開源十年圖譜」是對騰訊過去十年開源探索的整體盤點,集中展示了十年來騰訊是如何通過內外部開放原始碼等方式積極參與「全球科技共同體」的共建,將自身技術能力以及技術成果與全世界開發者共享。目前,騰訊已經成為全球開源貢獻最大的科技公司之一。
  • 侵犯商業秘密門檻降低:程式設計師要開始重複造輪子了嗎?
    這種重複造輪子的情形,相信程式設計師小哥哥們再熟悉不過,如果能有現成的底層代碼來套用,何樂而不為? 大家比較熟悉的,像今日頭條的智能推薦算法vs百度搜尋引擎算法、美團vs餓了麼&阿里、拼多多vs淘寶&京東之流,以及近來炒得火熱的國產造車新勢力,究竟是在重複造輪子還是背後有互相挪用借鑑的成分,想必也只有他們自己心知肚明了。
  • 侵犯商業秘密門檻降低:程式設計師要開始重複造輪子了嗎?
    這種重複造輪子的情形,相信程式設計師小哥哥們再熟悉不過,如果能有現成的底層代碼來套用,何樂而不為?大家比較熟悉的,像今日頭條的智能推薦算法vs百度搜尋引擎算法、美團vs餓了麼&阿里、拼多多vs淘寶&京東之流,以及近來炒得火熱的國產造車新勢力,究竟是在重複造輪子還是背後有互相挪用借鑑的成分,想必也只有他們自己心知肚明了。
  • 不要重複造輪子?提高生產效率!3個常用的開源工具庫分享
    我們實際項目開發中是比較忌諱造輪子的,但是,自己在學習過程中造輪子絕對是對自己百利而無一害的!造輪子是一種特別能夠提高自己系統編程能力的手段。今天就分享幾個我常用的開源工具庫,希望對小夥伴們有幫助!JNA(Java Native Access)[4]是一個開源的 Java 框架,是 Sun 公司推出的一種調用本地方法的技術,是建立在經典的 JNI 基礎之上的一個框架。之所以說它是 JNI 的替代者,是因為 JNA 大大簡化了調用本地方法的過程,使用很方便,基本上不需要脫離 Java 環境就可以完成。
  • 還在重複造輪子?提高生產效率!3個常用的開源工具庫分享
    important}我們實際項目開發中是比較忌諱造輪子的,但是,自己在學習過程中造輪子絕對是對自己百利而無一害的!造輪子是一種特別能夠提高自己系統編程能力的手段。Java 框架,是 Sun 公司推出的一種調用本地方法的技術,是建立在經典的 JNI 基礎之上的一個框架。
  • 騰訊開源在路上 —— 道阻且長 騰訊仍在追趕
    6 月 22 日,在騰訊「雲+未來」峰會分會場的開發者專場上,騰訊研發管理部總監許勇以「騰訊開源在路上」為主題,和大家分享了騰訊內部如何打造工程師文化,以及騰訊外部開源的發展情況。
  • 程式設計師為什麼熱衷於造輪子,升職加薪嗎?
    所以,架構師造輪子從做程式設計師時候就開始了,只不過到了架構師階段可以造出更好的輪子。鑑於實際業務開發的緊急程度,不會允許你造輪子。但造輪子,幾乎是每個程式設計師突破技術瓶頸的最佳方式。千萬不要因為一句,不要重複造輪子的藉口,給自己一個不學習的理由!
  • 造輪子系列之grpc(一)
    作為一個程序猿,對造輪子這事情可以說是情有獨鍾,幾乎程序猿內心都存在一個夢想是去將開源的技術都實現一遍,所有從本篇開始,我會開一個造輪子系列。前言首先,看看這個,想必大家對下面這種簡歷看得比較多了吧?而這個方法,就是自己去造輪子,造的目的不是為了在項目中使用自己造的輪子,而是為了去了解輪子的構造,然後自己動手去體會造輪子的過程。後端的輪子們說起後端的輪子們,大家都可以說出一大串來,我們大致來數一數啊。
  • 造輪子系列之Protobuf
    作為一個程序猿,對造輪子這事情可以說是情有獨鍾,幾乎程序猿內心都存在一個夢想是去將開源的技術都實現一遍,所有從本篇開始,我會開一個造輪子系列。前言 首先,看看這個,想必大家對下面這種簡歷看得比較多了吧?
  • 答應我,用了這個jupyter插件,別再重複造輪子了
    答應我,用了這個jupyter插件,別再重複造輪子了 今天我們要介紹的這款jupyter lab插件,就可以幫助我們「記錄」、「歸類」、「存檔」以及「檢索」我們常用的代碼片段,大大提升工作效率,從而避免重複造輪子。
  • 面向全行業開源共享程序庫 或成預報檢驗的「破壁者」
    提高效率,第一要義就是「不要重複造輪子」。而面向全行業開源共享的全流程檢驗程序庫或許將成為那個「破壁者」。說到天氣預報,最先會想到什麼?「早上聽了預報,帶了一天傘卻沒下一滴雨」的調侃?還是 「藍天白雲晴空萬裡突然暴風雨」 的無奈?其實,認為天氣預報該百分百準確,是對現代科學的「蜜汁自信」。
  • 「深夜發文,不談技術」就說說程式設計師「造輪子」這一件事
    這篇文章與技術無關,就是想聊聊關於「造輪子」這件事,各位也可以當作我是來當噴子的,純吐槽,不服不辯不解釋。出門左轉謝謝。: 「說了多少次不要造輪子,xxxxxx了解下」 「9102年,咱可以不造輪子了嗎?」