PingCAP 開源社區運營最強 5 招:招招精彩

近日,TGO鯤鵬會北京分會活動現場,來自PingCAP技術 VP、TiDB技術負責人申礫帶來了《創新與突破:TiDB 社區運營》的主題演講,分享了PingCAP在TiDB 社區運營的經驗之談。以下是分享內容:

TiDB是什麼?

上圖中黃色TiKV是分佈式的Key-Value存儲引擎,左邊TiDB是Application via MySQL引擎,不管是業務還是管理工具,它可以把以前的東西無縫牽引過來。最右側是TiKV Spark項目,能讓Spark理解下面存的數據如何編碼,包括關係型數據的表結構、統計信息,可以讓Spark實時讀取到TiKV原始數據。

除此之外,我們還有一些周邊工具,比如Binlog組件,它可以把TiDB中的數據實時變更,用戶可以直接用這個組件做二次定製開發。

上面的DM工具是一個數據遷移平臺,可以將MySQL數據通過Binlog同步到TiDB中,它還可以將已經分表好的MySQL數據同步到一個TiDB中,之後再進行數據格式裁減和內容轉換。中間的TiFlash組件是我們最新做的分析產品,可以通過RUF(音)將數據從TiKV無縫同步到這個組件當中,在上面的計算層可以選擇將計算請求通過行存或者搜索引擎查數據,最底層還有TiDB Operator和kubernetes相結合。

未來,雲將成爲非常主流的方式。目前,我們正在考慮如何將TiDB這個複雜的分佈式系統,包括周邊的監控、運維等工具都可以通過kubernetes進行管理和調度,以便於降低用戶的使用成本,因此我們希望TiDB是和kubernetes深度整合的產品。

TiDB 開源社區現狀

這兩張圖是從GitHub獲得的數據,左邊是stars的數量,我們和幾個競品對比,我們的產品最晚出來,但是增長趨勢更加陡峭,並且超過他們的關注度。

我們整個貢獻者有三百多個,除了我們公司的員工之外,還有很多來自外部的貢獻者,同時,他們來自於世界不同的國家。

上圖是DB-engines的排名,目前 TiDB 的整體還不算高(一部分原因是這個排名只關注英文網頁),不過相比競品增長速度還是非常快。

上圖是CNCF發佈的Big Date Landscape,如果大家想對大數據領域做一些調研、技術選型等,可以參考這張圖。

去年,TiKV項目已經捐獻給CNCF,現在隸屬於CNCF。在CNCF指導下,我們做了許多關於整個項目治理包括開源社區怎麼推進、管理,如何吸引外部貢獻者等等方面做了很多規範性的工作,我們應該是中國第二個進入CNCF的項目。

除了國內,我們也會參加很多國際上的會議,比如去年時,我們參加了 VLDB 學術會議,在會議現場我們與大家同步了 PingCAP 的最新進展。同時,我們和高校也有合作,聯合做一些項目研究。

海外的媒體對我們也進行了一些報道,去年被InfoWorld評爲數據存儲和分析領域最佳項目。

開源社區治理

https://github.com/pingcap/community

這個網站記錄了開源社區的相關資料,比如如何去提 PR,如何去寫文檔,如何去起草案等等。

上圖是我們所使用的開源架構,包括PMC、核心貢獻者的組織,用戶可以參與到社區,來提一些想法、建議,甚至可以提代碼、改文檔。

我們會在一些頁面上把contributor的名字放上去,當contributor貢獻的PR數比較多時,通過他所提供內容的數量、質量以及實用性判斷contributor是否達到committer的門檻。而committer經過很長時間的貢獻後,能夠對幾個模塊有深入的掌握,那麼將會成爲Maintainer,Maintainer可以對整個項目有更進一步的話語權。

我們將所有的規範都放在github上,幫助大家瞭解如何參與到社區,同時有利於社區良性發展。

圖片

上圖是教你如何從一名contributor成爲committer以及你需要了解在成爲committer後,所需要擁有的權利和義務。

另外,圖中下半部分是我們新進的兩個committer,上面是在知乎上線後萬億級別的數據,下面是三星研究院的committer,這些都是通過我們的官方渠道出來的。


contributor寫代碼時,我們會有相應的要求,因爲我們希望contributor的代碼風格是非常統一、高質量的,所以我們有相應的工具自動修改代碼風格、註釋和註釋格式等,同時還設立了專業的團隊指導,有利於提高 PR 的質量。

包括提commit時,我們也會嚴格監管commit message的格式、理由、內容等方面。


如果是一個比較大的提案,那麼我們會要求你先提一個proposal,描述一下你要幹什麼、爲什麼要幹這個事情、它能帶來什麼收益、方案是什麼以及分析備選方案的優缺點等,我們會讓你提個PR進行討論,最後以討論後的proposal爲基礎,開始後面的開發。

無論是pull request還是issue,它們都有相應的模板要求,比如pull request需要寫清楚你幹了什麼事情,PR解決什麼問題,它是怎麼工作的,包括如何測試,test是必選的還是可選的。因爲我們希望能讓整個社區看到你的PR後,就知道你幹了什麼,爲什麼要幹,再以這些爲基礎來瀏覽你的PR。

而不是隻呈現一堆代碼,這樣會導致他人很難理解你想要做什麼。

我們內部主要做的事情也都會通過Github Project的形式發佈出來,要做哪些比較大的事項,這些事項裏面有哪些issue,這些issue的規劃是什麼等等,大家可以通過project瞭解我們在做什麼,它的進展是如何。我們希望通過Github的方式將我們的開發儘可能的對外透明,讓大家知道我們在做什麼,這樣也有利於社區參與進來。

圖片

另外,我們的roadmap也是對外公佈的。我們希望社區知道我們的未來計劃,可以根據自己的需求和興趣,跟我們設計的場景規劃能夠更好地match,更好地去做貢獻。

社區生態建設

開源其實是一種生態,我們只有把生態建設起來,纔會促進你項目的成熟。不管是用戶還是貢獻者都是非常寶貴的一部分,我們在生態建設這一塊做了很多的工作。很多人接觸到TiDB不是以貢獻者的身份接觸到的,而以用戶身份接觸到的。他先以一個用戶的身份加入進來,當他用得比較深入或者他所在公司大規模使用的時,他纔有足夠多的動力來分解代碼。

我們今年還做了一件事情,希望有系統性的東西幫助用戶更進一步掌握TiDB怎麼使用,因此我們推出了PingCAP University計劃,通過線上和線下的環節,幫助用戶知道TiDB的使用方法、瞭解 TiDB 的關鍵原理以及調優方式,讓TiDB用戶更好的掌握使用方法。

除此之外,我們在國外還推出了TiDB Academy課程,將中文內容做成對應的英文內容,從而指導國外用戶怎麼用。

圖片

除了用戶社區之外,開發者社區也是非常重要一部分,同時也是更難開拓的社區。我們爲了擴大開發者社區做了很多事情,如在在成都、深圳、上海、杭州、硅谷開meetup,meetup主要聚焦於基礎架構或者是終端的一些技術,讓大家有一個線下交流的平臺。

同時,我們做了一個TiDB talen Plan項目,這個項目當前還沒看到在國內有類似的東西,這個項目主要面向在校學生。我們希望以TiDB爲內核擴展到數據庫或者是分佈式數據庫領域,幫助在校學生能夠更熟悉這些東西。

開源社區運營心得

運營開源社區需要非常多的精力和投入,我們在運營社區的時候有一些心得跟大家分享一下。

1、遠大的願望——視野決定了格局

首先,我們需要了解想要的產品和社區是什麼樣子的,是想做一個可用性強的,還是掙錢的,還是能在技術歷史上留下名字的社區。因爲我們希望能通過開源的方式將TiDB做成一個偉大的產品,不僅侷限在國內,在國外也在獲取海外客戶,所以我們的趨勢是在國內做放眼於全球,做成真正偉大的產品公司。

2、開放的心態——不只是源碼開放

其次,做開源時,需要有開放的心態。我們一直不擔心因爲我們的代碼開放後,競爭對手可以打敗我們,因爲我們認爲如果在這方面不能持續的領先,那我們活該被打敗。

我們會把很多東西開放出來,不管是源碼也好還是技術方向也好,設計文檔也好都會開放出來,因爲我們希望能讓社區儘可能深入參與其中。除了在線上的活動之外,我們還會邀請一些人線下交流,比如活躍的社區,我們會拜訪他們,希望他們給我們提一些建議,或者我們把深度用戶邀請到我們公司,開”吐槽大會“的活動,不能說優點,只能說缺點,讓他們提一些在使用TiDB遇到的問題、踩過的坑。

我們是以一個非常開放的心態做這件事情,因此我們歡迎任何人和我們交流了解,甚至包括友商。

3、吸引頂級人才——人是社區的根本

人是產品的基礎,沒有足夠多厲害的人物,就無法做成這樣的事情,我們做這麼多事情的目的,也是爲了吸引人才。有了TiDB後,我們可以跟很多高校建立聯繫,可以跟專門做數據庫的實驗室有深入的合作,他們也會比較方便、深入地掌握TiDB,能夠很好的加入到社區裏面,讓社區頂級人才更好的參與到項目中來。

4、社區是最寬的護城河

做一個開源產品,社區是你和別人最大的不同。和其他數據庫相比,我們是非常年輕的數據庫,只做了四年多,投入的資本也沒有友商那麼多,但是我們爲什麼能夠在這麼短的時間裏面把產品做到這樣的程度,這和社區密不可分的。社區會幫我們貢獻很多的想法,貢獻很多的代碼和反饋,有了這些我們才能把產品越做越好。可以說,社區是能夠加速你產品成熟的東西,社區是最寬的護城河,因此我們會和社區一起把TiDB做的更好。

5、文檔的必要性——專職文檔團隊

很多程序員都不太希望寫文檔或者覺得自己的文檔寫的很清楚了,其實不是,文檔要從使用者的角度來看,而不是開發者的角度。我們公司有一個專門的團隊來負責文檔這個事情,不但要負責中文的文檔,還要負責英文的文檔,除了文檔的架構內容詳實之外,他們還要從使用者的角度來看文檔寫的好還是不好。

我們要求我們的文檔,即便完全不懂技術的人也能夠按照這個文檔把產品一步步用起來,這個纔是合格的文檔。


技術管理的乾貨還沒看過癮?沒關係,2019 年 6 月 14-15 日, 由極客邦科技旗下 TGO 鯤鵬會主辦的 GTLC 全球技術領導力峯會將正式在上海舉行,我們精心策劃了技術、思維、戰略、管理、視野及領導力等六大專場,並邀請行業內最有話語權的大咖加入講師天團陣營,他們將通過體系化、有洞見的分享來幫助技術您成爲一名全能型技術人。

TGO鯤鵬會,是極客邦科技旗下高端技術人聚集和交流的組織,旨在組建全球最具影響力的科技領導者社交網絡,線上線下相結合,爲會員提供專享服務。目前,TGO鯤鵬會已在北京、上海、杭州、廣州、深圳、成都、硅谷、臺灣、南京、廈門、武漢、蘇州十二個城市設立分會。現在全球擁有在冊會員 800+ 名,60% 爲 CTO、技術 VP、技術合夥人。

會員覆蓋了 BATJ 等互聯網巨頭公司技術領導者,同時,阿里巴巴王堅博士、同程藝龍技術委員會主任張海龍、蘇寧易購 IT 總部執行副總裁喬新亮已經受邀,成爲 TGO 鯤鵬會榮譽導師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章