新架構、新角色:TiDB Community Upgrade!

做者:Jian Zhanggit

通過幾年的發展,TiDB 社區已經逐漸成熟,可是隨着社區的發展壯大,咱們逐漸感覺到了如今社區架構上的一些不足。通過一系列的思考和總結,咱們決定升級和調整目前社區組織架構,引入更多的社區角色和社區組織,以便更好的激發社區活力,維護積極健康的社區環境。github

老社區架構

下圖是以前官網上的社區架構圖:數據庫

圖 1 老社區架構

圖 1 老社區架構

老社區架構主要面向 TiDB 開發者社區(Developer Group),主要角色有 Maintainer、Committer、Contributor 等,其中:架構

  • Committer:由 Maintainer 或 PMC 推薦,是對 TiDB 有突出貢獻的 Contributor。須要獨立完成至少一個 feature 或修復重大 bug。分佈式

  • Maintainer:項目的規劃和設計者,擁有合併主幹分支的權限,從 Committer 中產生。他們必須對子項目的健康表現出良好的判斷力和責任感。維護者必須直接或經過委派這些職責來設置技術方向併爲子項目作出或批准設計決策。學習

能夠看到老社區架構屏蔽了日益壯大的、對產品打磨升級相當重要的 TiDB 用戶羣體,而且老架構中對於開發者社區角色的職責、角色之間關係的表述都比較簡單,因此咱們在新社區架構中作了一些加法,將 TiDB 用戶社區歸入進來的同時,對 TiDB 開發者社區的每一個角色定義、權責又作了明確的界定,同時也增長了一些新角色、新組織,下面讓咱們來詳細地看一看。優化

新社區架構

變化 1:將 TiDB 用戶社區歸入總體社區架構

隨着 TiDB 產品的成熟,TiDB 用戶羣體愈發壯大,用戶在使用過程當中遇到的問題反饋及實踐經驗,對於 TiDB 產品的完善及應用推廣有着不可忽視的重要做用。所以咱們這次正式將 TiDB 用戶社區(TiDB User Group,簡稱 TUG)歸入新的社區架構中來,但願用戶與開發者有更好的交流互動,一塊兒推進 TiDB 社區的健康發展。設計

圖 2 新社區架構之 User Group

圖 2 新社區架構之 User Group

TiDB User Group(TUG)是由 TiDB 用戶發起的獨立、非盈利的第三方組織,用戶實行自我管理,旨在增強 TiDB 用戶之間的交流和學習。TUG 的形式包括但不限於線上問答和技術文章分享、線下技術沙龍、走進名企、官方互動活動等等。TUG 成員能夠經過線上、線下的活動,學習前沿技術知識,發表技術看法,共同建設 TiDB 項目。更多信息能夠登錄 TUG 問答論壇 asktug.com 查看。3d

變化 2:Active Contributor 和 Reviewer

圖 3 新社區架構之 Active Contributor、Reviewer

圖 3 新社區架構之 Active Contributor、Reviewer

上圖反映了此次社區架構升級的第 2 個變化:在開發者社區中,新增了 Reviewer 和 Active Contributor 的角色。rest

Active Contributor 是一年貢獻超過 8 個 PR 的 Contributor。Reviewer 從 Active Contributor 中誕生,具備 Review PR 的義務,而且對 TiDB 或者 TiKV 某個子模塊的 PR 的點贊(LGTM)有效。關於這些角色,咱們將在後文介紹 Special Interest Group 時更詳細地介紹。

變化 3:Special Interest Group

讓咱們把開發者社區架構圖放大再看看:

圖 4 新社區架構之 Special Interest Group

圖 4 新社區架構之 Special Interest Group

上圖展現了以垂直的視角來細看開發者社區的總體架構,反映了此次社區架構升級的第 3 個變化:引入了 「專項興趣小組」(Special Interest Group,簡稱 SIG)。

專項興趣小組主要負責 TiDB/TiKV 某個模塊的開發和維護工做,對該模塊代碼的質量負責。咱們將邀請知足條件的 Active Contributor 加入專項興趣小組,開發者們將在專項興趣小組中得到來自 Tech Lead 們的持續指導,一邊鍛鍊技術能力,一邊優化和完善該模塊。社區開發者們可經過專項興趣小組逐漸從初始的 Active Contributor 成長爲受到社區承認的 Reviewer、Committer 和 Maintainer。通常而言每一個專項興趣小組都會週期性的組織會議,討論最近進展和遇到的問題,全部的會議討論都公開在社區上,方便感興趣的同窗一塊兒參與和討論。

具體可參考目前咱們正在運營的表達式專項興趣小組:Expression Special Interest Group

另外這張圖也反映了社區角色和專項興趣小組的關係,咱們來仔細看看 SIG 中的社區角色:

  1. Active Contributor

    • 即一年貢獻超過 8 個 PR 的 Contributor。
    • 若是要加入某個 SIG,某個 Contributor 須要在 1 年內爲該 SIG 所負責的模塊貢獻超過 8 個以上的 PR,這樣便可得到邀請,加入該 SIG 進行鍼對性的學習和貢獻。
  2. Reviewer

    • 隸屬於某個 SIG,具備 Review PR 的義務。
    • Reviewer 從 Active Contributor 中誕生,當 Active Contributor 對該模塊擁有比較深度的貢獻,而且獲得 2 個或 2 個以上 Committer 的提名時,將被邀請成爲該模塊的 Reviewer。
    • Reviewer 對該模塊代碼的點贊(LGTM)有效(注:TiDB 要求每一個 PR 至少擁有 2 個 LGTM 後纔可以合併到開發分支)。
  3. Tech Lead

    • 即 SIG 的組織者,負責 SIG 的平常運營,包括組織會議,解答疑問等。
    • Tech Lead 須要爲 SIG 的管理和成長負責,責任重大。目前暫時由 PingCAP 內部同事擔任,未來可由社區開發者一塊兒擔任,和 PingCAP 同事一塊兒爲 SIG 的進步而努力。

再來看看另外兩個角色:

  1. Committer

    • 資深的社區開發者,從 Reviewer 中誕生。
    • 當 Reviewer 對該模塊擁有很是深度的貢獻,或者在保持當前模塊 Reviewer 角色的同時,也在別的模塊深度貢獻成爲了 Reviewer,這時他就在深度或者廣度上具有了成爲 Committer 的條件,只要再獲得 2 個或 2 個以上 Maintainer 的提名時,便可成爲 Committer。
  2. Maintainer

    • 重度參與 TiDB 社區的開發者,從 Committer 中誕生,對代碼 repo 擁有寫權限。

以上社區角色的詳細的定義和權責內容能夠在 這裏 查看。

變化 4:Working Group

圖 5 新社區架構之 Working Group

圖 5 新社區架構之 Working Group

第 4 個變化是開發者社區架構中引入了 「工做小組」(Working Group,簡稱 WG)。工做小組是由爲了完成某個特定目標而彙集在一塊兒的社區開發者與 PingCAP 同事一塊兒成立。爲了完成目標,有些工做小組可能跨越多個 SIG,有些小組可能只會專一在某個具體的 SIG 中作某個具體的事情。

工做小組具備生命週期,一旦目標完成,工做小組便可解散。工做小組運營和管理的惟一目標是確保該小組成立時設置的目標在適當的時間內完成。通常而言,工做小組也會有周期性的會議,用於總結目前項目進展,肯定下一步實施方案等。

可參考目前咱們正在運營的表達式工做小組:Vectorized Expression Working Group

總結和將來的工做

總的來講,此次社區架構升級主要有以下改進:

  1. 引入了 TiDB 用戶社區(TiDB User Group)。

  2. 引入了 Active Contributor、Reviewer 的社區角色。

  3. 引入了 Special Interest Group(SIG)。

  4. 引入了 Working Group(WG)。

在社區運營方面,咱們將來還將繼續:

  1. 完善社區成員晉級的指導機制,讓社區同窗從 Contributor 成長到 Committer 或 Maintainer 有路可循。

  2. 讓社區上的事情更加成體系,作事不亂。

  3. 讓社區同窗更有歸屬感,增強和其餘社區成員的溝通。

在將來,咱們將陸續開放更多的專項興趣小組和工做小組。在專項興趣小組中,還將持續發放更多數據庫相關的資料,幫助成員在專項興趣小組中逐漸深度參與 TiDB 的開發工做。但願你們都可以多多參與進來,一塊兒將 TiDB 打形成開源分佈式關係型數據庫的事實標準!

相關文章
相關標籤/搜索