開源社區健康指的是圍繞一個開源項目形成的社區中關于項目的技術迭代、社區的組織架構、成員構成、開源治理、上下游協作、社區生態、商業化等多方面的多樣性與管理、運作能力狀態。這些因素在指導開源項目與相應社區不斷發展的過程中至關重要。
今天為大家介紹的開源社區健康案例是NebulaGraph 社區,其是2022 年度 OSC 中國開源項目評選——「2022 中國開源社區健康案例」獲獎社區之一。
part.01 項目情況NebulaGraph 是一款開源的、分布式的、易擴展的原生圖數據庫,底層數據模型是屬性圖,項目基于 C++ 編寫,能夠承載包含數千億個點和數萬億條邊的超大規模數據集,并且提供毫秒級查詢。它提供高吞吐量、低延時的讀寫能力,內置 ACL 機制和用戶鑒權,為用戶提供安全的數據庫訪問方式。在查詢語言方面,開發團隊完全自研開發查詢語言——nGQL,并兼容開源的圖查詢語言 openCypher。
項目從 2019 年 5 月開源至今,先后經歷了 v1.0-alpha、v1.0-beta 到如今的 v3.3.0 等 30 個大小版本,期間有 200 + 開源愛好者參與了 NebulaGraph 的項目開發,他們分布在 NebulaGraph 相關的 40+ 開源倉中,其中 contributor 較為集中的倉庫有內核的 nebula、文檔的 nebula-docs。 在這個過程中,NebulaGraph 項目收集了 20,019 個 pr,15,211 個 commit。下圖為 pr 的分布圖:
除了與 NebulaGraph 同行的代碼貢獻者之外,社區還有 10 位 NebulaGraph 大使在各個技術會場布道圖技術,61 位寫手在官方博客或者其他技術平臺分享他們的 NebulaGraph 最佳實踐,243 名啟蒙者在社區論壇回復他人的問題并被對方接受以及 114 名社區用戶捕捉到了 30 個版本中的 bug。 在 NebulaGraph 開源的過程中,也深入了金融、保險、通信、能源、電力、制造、公安、數字政府、新零售等等多個行業領域,被國內外多家諸如:美團、騰訊、快手、華為、中國移動等等企業青睞,運行在 1,000+ 企業的業務環境中。這些采用 NebulaGraph 作為作為他們圖技術底座的企業對 NebulaGraph 有著一致的反饋:
社區活躍,問題響應快;
性能極佳,能解決業務痛點;
穩定持久,保障業務高可用;
國產開源,產品快速迭代;
未來可期,能應對未來的業務增長;
Part.02 治理模式
NebulaGraph 是開源的分布式圖數據庫,在開源的過程中社區規模的增長之余,也帶來了社區的治理的不斷完善,形成了一套相對成體系的社區用戶成長體系。而這一切都有賴于社區用戶和 NebulaGraph 的努力
與大多數社區項目不同的是,NebulaGraph 的社區構成分成了兩部分:開發者(Dev Group)和用戶(User Group)。
Dev Group
Dev Group 是由活躍在 NebulaGraph 及其周邊工具倉庫的開發者組成,他們主要負責讓 NebulaGraph 產品更加穩定、功能更加豐富、性能更佳。根據他們對整個 NebulaGraph 倉庫的貢獻,分為 4 種角色:PMC、Committer、Active Contributor 和 Contributor。
PMC,全稱 Project Management Committee,負責制定 NebulaGraph 產品功能規劃和主導 NebulaGraph 項目開發。
Contributor,由給 NebulaGraph 及其周邊倉庫做出貢獻的開發者組成。
Active Contributor,由給 NebulaGraph 及其周邊倉庫做出大貢獻的開發者組成。
Committer,由給 NebulaGraph 及其周邊倉庫做出巨大貢獻的開發者組成,具有對應倉庫的 pr 的 approve 權限。
User Group
User Group 由活躍在 NebulaGraph 論壇及其微信群、Slack 的用戶組成,他們引導其他用戶更好地了解、實踐 NebulaGraph,同 NebulaGraph 官方共建 NebulaGraph 社區。根據他們引導用戶的方法不同,我們將他們分為了 4 種角色:Participant、Writer、Ambassador 和 Partner。
Participant,他們嘗試幫忙解決他人問題,因此他們在論壇的身份標識是 好心人。根據他們后續的建設 NebulaGraph 社區的方式,分為:捉蟲小能手 Hunter、創造者 Creator 和啟蒙者 Explainer 等 3 種角色。
捉蟲小能手,是一群幫忙定位 bug 的社區用戶。
創造者,是一群幫忙改進 NebulaGraph 社區用戶,他們在社區中提出他們的反饋和建議。
啟蒙者是一群在論壇、微信群、Slack 等渠道回復其他社區用戶問題的用戶,根據他們回復被采納的情況,分為:啟蒙者、輔導員、引路人。
Writer,他們用文字的形式記錄他們的使用過程,幫助其他用戶更好地使用 NebulaGraph。根據他們產出文章的數量,分為:特約寫手 Writer、資深作家 Author、布道師 Preacher。
特約寫手,撰寫 1 篇相關測評或者實踐分享。如果內容為測評類,用戶額外會獲得 NebulaGraph 測評員稱謂。
資深作家,為社區撰寫 2 篇相關測評或者實踐分享。
布道師:為社區撰寫 3 篇相關測評或者實踐分享。
Ambassador,NebulaGraph 大使用音、視頻形式向他人分享圖技術,幫助其他開發者更好地認識、了解 NebulaGraph。
Partner,他們積極地組織線上、線下活動同其他開發者交流圖技術,幫助其他開發者更好地認識、了解 NebulaGraph。
Part.03 運營體驗
開源社區的運營,歸根到底是人的關系維護,而 NebulaGraph 所屬領域為圖數據庫是最擅長解決關系的數據庫。NebulaGraph 在項目運營過程中,一直非常關注開發者和社區用戶對社區的認同感。 運營人員重視解決開發者、用戶的問題解決與否之余,時刻關注者社區用戶的成長,開啟了幫助開發者成長、深入項目開發的「源碼解讀」系列了解項目的架構、代碼設計思路以及編碼風格。此外,還提供了供社區用戶交流技術的論壇、微信群、Slack 等平臺,讓用戶在彼此的實踐中了解更多的 NebulaGraph 的使用方法。 一言蔽之,用心去做開源社區的運營讓用戶感受到真誠以及溫暖,并一起共建 NebulaGraph 開源社區。
Part.04 生態共建
NebulaGraph 社區不只是專注于自身的產品發展,還致力于同其他的開源項目一起。
有對接 Spark 大數據生態的圖計算開源項目 nebula-algorithm、數據處理工具 nebula-spark-connector 和 nebula-exchange,還有對接 Flink 生態的 nebula-flink-connector,以及對接圖計算 Plato 框架的 nebula-plato。 此外,在自研的路上,NebulaGraph 社區也積極參與其他開源社區的項目開發,給數據治理框架 Amundsen 提交了相關的存儲支持 pr#1817。 有來有往的是,NebulaGraph 社區用戶也反饋、捐獻了社區他們的項目實踐:
大數據生態
DataX:數據集成
nebula-real-time-exchange:數據實時同步工具
客戶端補充
nebula-node:Node.js 客戶端
nebula-php:PHP 客戶端
nebula-net:.NET 客戶端
Java 相關工具
ngbatis:針對 NebulaGraph + Springboot 的數據庫 ORM 框架
nebula-jdbc:JDBC 連接器
graph-ocean:nebula-java 的 ORM
graph-gateway:使用 Java 語言開發對接 NebulaGraph 圖數據庫的后端基礎服務工程
nebula-swagger-demo:NebulaGraph Swagger Springboot Demo Project
nebula2-demo:Nebula2.0 Java Client 使用 Demo
Python 相關工具
nebula-carina:Python ORM
Golang 相關工具
norm:Golang ORM
審核編輯 :李倩
-
數據庫
+關注
關注
7文章
3842瀏覽量
64574 -
C++
+關注
關注
22文章
2114瀏覽量
73773 -
ACL
+關注
關注
0文章
61瀏覽量
11997
原文標題:中國開源社區健康案例——NebulaGraph社區
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論