在昨天進行的 2019Techo 開發者大會上,騰訊公司副總裁、騰訊雲總裁邱躍鵬表示,技術的發展離不開廣大開發者的推動,而騰訊云為幫助開發者們創造更多價值,未來將堅持以「開源、共享、創新」為理念,與開發者們共同探索、建設全新的技術生態。
騰訊雲希望通過這些理念,向開發者們表達友好、開放的態度,鼓勵開發者與開發者之間保持共享、合作的狀態,並以此來建立一個以創新為驅動的開發者生態體系。
開源之路始於危機
實際上,騰訊倡導開源由來已久,但其對開源態度的變化則是一個循序漸進的過程。早在 2010 年末的「3Q大戰」結束之後,騰訊內部就開始意識到開放對於產品與技術創新的重要性。
在此之前,騰訊內部的技術研發雖然已經有了一定的積累,但也面臨著愈發嚴重的技術孤島、重複建設、缺乏融合的問題,技術支撐體系的不統一,也使得技術團隊之間的產生了不少隔閡。而這些問題在外部所產生的最直觀的體現,就是沒人能感受到騰訊的真實技術實力。
所以從 2011 年開始,騰訊在技術研發上逐漸從獨立封閉轉向內部的共享、複用、開源、協同。騰訊開始鼓勵工程師多交流,多共享,實現對內開源,甚至是對外開源。最初,這種自下而上非強制性的,由工程師自願參與支援的開源模式,確實讓騰訊在技術研發與專案運營的成本上有了一定的改善。
在 2012 年至 2014 年期間,騰訊開始嘗試推出對外的開源專案,並著手完善對外開源的具體流程,加強推動開源的落地實施。2015 年,騰訊成立開源聯盟,負責管理、協助開源相關的工作。
到了 2016 年、2017年,騰訊開始顯著提高其對外開源的速度,並在 GitHub 上公開了很多自研的優質專案。騰訊隨著業務體量的不斷擴大,其戰略也在發生著轉變。騰訊的目標,已經變成了整個開發者技術服務生態,但騰訊不可能只靠自身的能力去覆蓋每一項開發者服務,而開源則是一個可以讓更多合作伙伴與開發者加入到生態建設行列中的好方法。
但很快,「自下而上」所造成瓶頸出現了。自下而上的模式通常比較適合僅涉及少數團隊、資源等體量較小的開源專案,想要推動涉及範圍大、體量很大的開源專案則比較困難。
為解決這一問題,騰訊終於在 2018 年第三次大規模組織架構調整之後,由騰訊高階執行副總裁、技術工程事業群總裁盧山,與騰訊高階執行副總裁、雲與智慧產業事業群總裁湯道生兩人牽頭,正式成立了騰訊技術委員會以及騰訊開源管理辦公室,分別從對內、對外兩個方向上固化開源管理機制,建立開源生態。這也成為了騰訊在開源上的一個非常重要的轉折點。
騰訊開始以自上而下的開源協同機制推動技術研發工作,很多與核心業務連繫緊密的關鍵開源專案得以順利推進,專案中技術創新的週期被大大縮短。
全面開放協作共贏
在今年 6 月進行的雲原生技術大會上,騰訊首次對外公佈了整體的開源戰略路線圖。騰訊開源路線將通過「三步走」計劃,持續深化已有的技術能力:
第一步是內部開源協同。在內部先梳理專案,通過部門小團隊或跨部門大團隊協同推進,集中優勢能力與資源快速實現技術突破。然後,建立篩選機制將程式碼開放出來。
第二步是外部程式碼開放。不斷優化程式碼結構,藉助來自社群的程式碼貢獻者資源的幫助,構建技術影響力。
第三步是社群開放治理。進行大規模技術推廣及應用,構建開發者生態體系,培養社群領袖與領導力,優化研發資源配置。
「三步走」計劃實際是同步推進,類似於開發中迭代的概念,騰訊已在第一步中投入了較多資源,而在第二、三步上也已有了不少產出。
騰訊技術委員會對外開源管理辦公室執行總監許勇在此前接受媒體採訪時表示,騰訊擁抱開源,是隨著騰訊自身戰略的轉變與發展應運而生的。騰訊依靠開放合作的形式,在內部開源與外部開源的共同支援下,希望與開發者、合作伙伴一起建立共享、共贏的生態環境。
今年 8 月,騰訊董事會主席、執行長馬化騰,在 2019 中國國際智慧產業博覽會上首次對外談到騰訊開源時提到,騰訊將通過內外部開放原始碼等方式,積極參與到全球科技共同體的建設中。
如今,隨著騰訊開源聯盟主席、騰訊開源管理辦公室委員堵俊平在 2019Techo 開發者大會上正式宣佈開源分散式 HTAP 資料庫 TBase 與企業級容器平臺 TKEStack 兩個重要專案,騰訊在開源之路上又再次邁入了新的階段。
據騰訊開源官網以及 GitHub 上的資料顯示,騰訊目前已在 GitHub 上開放了 89 個專案,擁有 1073 名貢獻者,累計獲得了 259812 個 Star 以及 53524 次 Fork,至少有 7 個專案得到了超過 1 萬個 Star。
優秀專案層出不窮
騰訊在推進開源事業的過程中,向社群貢獻了很多優秀的專案。而這些開源專案的出現,有效地推動了不同應用場景下的技術變革,同時也引導著開源社群更高效地針對某些技術難點進行深入探討,並解決實際的問題。以下將列舉部分比較受關注的騰訊開源專案。
1、WeUI(23.5k Stars)
WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊為微信 Web 開發量身設計,可以令使用者的使用感知更加統一。包含button、cell、dialog、 progress、 toast、article、actionsheet、icon等各式元素。
2、WePY(19.2k Stars)
WePY 是一款讓小程式支援元件化開發的框架,可通過預編譯的手段讓開發者能夠按照個人喜愛的開發風格來進行開發。WePY 借鑑了一些優化前端工具及框架的設計理念與思路,其框架的細節優化,以及Promise、Async Functions 的引入都是為了能讓小程式的開發變得更簡單、高效。
3、Tinker(14.4k Stars)
Tinker 是微信官方的安卓熱補丁解決方案,也是最早的騰訊開源專案。Tinker 支援動態下發程式碼、So庫及資源,讓應用無需重新安裝就可實現更新。
市面上的熱補丁方案有很多,但大都存在著無法解決的問題,這實際也是 Tinker 被開發出來的原因之一。
4、TubeMQ(1.3k Stars)
騰訊在今年 9 月舉行的 ApacheCon 上宣佈 TubeMQ 開源,並在2019Techo 開發者大會上進行了正式釋出。
TubeMQ 是騰訊在 2013 年自主研發的分散式訊息中介軟體系統,可支援海量資料的高效能儲存與傳輸,吞吐率高,延遲可低至 5 毫秒。經過近 7 年時間上萬億的資料沉澱,目前每天支撐的資料量超過了 30 萬億條。
5、Tencent Kona(63 Stars)
Tencent Kona JDK 於 2019Techo 開發者大會舉行前夕宣佈開源,並在大會上進行了正式釋出。
Kona JDK 是基於 OpenJDK8 進行了具有針對性地優化後而開發,並由騰訊提供技術維護、優化及安全保障的 JDK 產品。Kona JDK 引入了高版本 JDK 特性,能夠幫助使用者無感知地使用共享核心類資訊以提高啟動速度,在雲場景下 JVM 的啟動速度最高能夠提升 40% 左右。
為了增強線上診斷能力,Kona JDK 還引入了 JFR 以及活頁圖等功能,可幫助 Java 使用者獲得從系統到應用的 Profiling 資訊,增強執行時的診斷以及熱點分析與指導優化能力。目前,Kona JDK 已在騰訊上萬臺服務結點上進行了大規模部署,為雲上 Java 場景提供服務。
6、TBase(78 Stars)
TBase 在 2019Techo 開發者大會上進行了正式釋出,它是騰訊基於 PostgreSQL 開發的分散式 HTAP 資料庫,其在相容 SQL 標準,提供完整的分散式事務能力的同時,還保證了金融級資料容災能力,此外還在資料安全、分散式執行器優化以及讀寫分離等方面也做了很多工作。TBase 不僅在騰訊內部得到了大規模應用,同時也在HTAP、地理資訊系統,以及實時高併發等場景被很多外部客戶所採用,目前線上執行超過 200 個叢集例項,節點規模突破 1000,單日請求量超過 10 億次。
7、TKEStack
TKEStack 在 2019Techo 開發者大會上進行了正式釋出,它是騰訊推出的企業級容器平臺。騰訊從 2009 年開始開發容器編排平臺,到 2013 年已經在內部維護了上萬臺伺服器,支撐著很多業務的平穩執行。當 Docker 和 Kubernetes 開源併成為事實標準之後,騰訊將內部平臺切換到了這兩個專案上,並在公有云和私有云上為大量客戶提供著服務。這些開發經驗和改進工作最終被整合在了一起,形成了 TKEStack。
開源革命任重道遠
據 Gartner 的調查報告顯示,99% 的企業在其 IT 系統中使用了開源軟體。來自 GitHub 2019 年度報告上的資料顯示,中國已經成為 GitHub 上僅次於美國,貢獻量排名第二的國家。而騰訊,從開源專案的資料量上看,在國內企業中排在阿里巴巴與華為之後,位列第三。
騰訊目前已加入 Linux、Apache 等 9 大開源基金會,成為最高階別會員,並持續地向這些開源基金會捐贈優秀的開源專案。在貢獻專案的同時,騰訊也在參與建設已有的開源專案。
在騰訊的開源理念與眾多專案的背後,其實是對程式碼文化的執著追求。騰訊副總裁姚星曾經在騰訊內部對這種程式碼文化做過解釋,他認為開源是手段而協同是結果。騰訊一直在做的,就是想辦法在「去中心化」與「重複造輪子」之間找到平衡點。而開源協同就是有效的解決方案之一,騰訊努力將技術理念沉澱為一種文化,再通過文化解決實際問題。
不論是推出開源激勵計劃,鼓勵開發者積極參與開源專案的開發,還是舉辦 2019Techo 開發者大會,為開發者提供瞭解的最新趨勢與前沿概念的機會,騰訊不僅在以發起者、貢獻者的身份參與開源,還在鼓勵、促進更多的開發者加入到開源事業中,通過這種包容開放的態度,騰訊將得以更快地將開發者、社群、企業緊密維繫在一起,同時其開發者生態體系的建設也將持續得到完善。