我是如何成爲Apache Kudu committer & PMC的?

小米從2012年開始正式涉足開源,不光積極參與開源社區,修復bug、提交代碼,同時逐漸將自研的系統或框架進行開源,前後開源了企業級、高可用、可擴展的監控系統Open-Falcon、分佈式 Key-Value存儲系統Pegasus、移動端深度學習框架MACE以及智能SQL優化與改寫工具SOAR。
編程

小米內部倡導開源、擁抱開源,而開源也是小米工程文化的一個重要組成部分。小米在發展過程當中,也爲開源生態作了不少貢獻。以HBase爲例,小米過去共培養了9位committer和2位PMC member,單2018年,小米就爲HBase貢獻了306個patch,佔HBase全部patch貢獻量的23%。Kudu方面,小米前後培養了2名committer。微信

今天咱們就跟最近成爲Apache Kudu committer and PMC的賴迎春近距離對話。架構


小編:咱們對Kudu瞭解很少,方便給咱們普及一下關於Kudu社區及其committer/PMC評選標準嗎?

賴迎春:Kudu項目最早是由Cloudera公司發起的一個開源項目,2016年7月成爲Apache軟件基金會頂級項目。框架


Kudu的定位是提供一個既有媲美HDFS順序掃描的性能,也同時具備HBase隨機讀寫特性的存儲系統,在與Spark SQL或impala結合後,可以提供高性能的OLAP服務。另外一方面,相比HBase、HDFS等Apache項目,目前Kudu項目還算是比較年輕,使用場景也相對小一些。Kudu項目的用戶來自全球各地,活躍的項目貢獻者主要集中在Cloudera公司內部,國內的小米、螞蟻金服、網易等公司也有一些活躍貢獻者。分佈式

同其餘Apache項目同樣,Kudu項目PMC會不按期評估項目contributor所提交patch的數量和質量、社區建設的參與度,達到必定標準後[pz2] 會在PMC內部發起投票,投票要求至少有數個+1,而且不能有-1,經過後就能夠向contributor發起加入committer的邀請了。加入PMC的流程相似,不過有更嚴格的要求。工具

小編:你是如何成爲Kudu committer and PMC member的,小米在開源項目高產 committer/PMC,是有什麼培養體系嗎?

賴迎春:在Kudu項目進入Apache孵化器以前的2014年,小米就參與到Kudu項目的核心開發了,是Kudu的最先期的支持者之一。小米的常冰琳就是Kudu項目的早期貢獻者之一,也是項目元老級committer and PMC member,最近他還翻譯了一本介紹Kudu的英文書籍。oop

小米的開源文化是很濃厚的,僅咱們存儲平臺的HBase項目組就前後培養了9位committer和2位PMC member。我所在的KV系統組的Pegasus項目也在2017年末開源,目前在GitHub上已有1000多個star,咱們也計劃爭取明年可以進入Apache孵化器。而在我去年第三季度剛開始接手Kudu時,團隊leader覃左言就給我設定了中長期目標---成爲Kudu項目committer。在這樣的團隊氛圍下,擁抱開源、回饋社區就是天然而然的了。性能

其實當我收到Kudu PMC邀請加入committer的郵件時,是感到很意外的,我本來的計劃是至少須要1年的持續貢獻。我向社區提的第一個patch是在去年的12月,開始提的bugfix和feature都還比較簡單,也是經過由易到難的過程,逐步摸清流程,也逐步體驗到這種Apache項目的參與感。後面隨着提的patch數量的增多,質量和份量也跟着提高,也可以在開源社區參與一些問題分析和討論,幫助一些Kudu新用戶解決問題。咱們所提的patch都是針對小米公司生產環境中遇到的問題提出的一些改進和解決方案。能將這些心得和經驗分享給更多人,同時避免本身踩過的坑別人再踩一遍,這自己就是一種成就感。學習

小編:剛纔您提到Kudu比較年輕,現階段Kudu社區發展的情況怎樣?

賴迎春:成爲Apache頂級項目後,Kudu社區熱度愈加提高,也不斷有新特性和性能提高的patch合入,目前每1~2個季度都會有一個次級版本發佈。Kudu社區也很活躍,Slack、郵件列表上有來自全球各地的開發者和使用者在上面討論交流。
大數據

Kudu全球當前一共有22名committer,這些人同時也都是PMC member。

小編:小米是基於什麼緣由選用Kudu項目的?有具體的實踐案例嗎?

賴迎春:Kudu是一個分佈式存儲系統,採用列式存儲格式,使用針對順序掃描優化的LSM存儲架構,使用RAFT來保證高可用。結合計算引擎後,能對外提供類SQL的查詢,可以提供快速插入/更新和高效的掃描,很是適合做爲須要實時查詢的數據倉庫。

此外,Kudu支持實時更新和刪除行,以支持延遲到達的數據的寫入和更新。同時也提供官方的Hadoop套件支持,能很好地融入Hadoop生態圈。

小米對Kudu的使用主要用於OLAP場景,Kudu是小米OLAP服務底層存儲系統之一,Kudu在小米的發展也得益於咱們雲平臺部門存儲平臺和計算平臺的緊密合做。

咱們小米公司做爲Kudu項目的早期貢獻者,從2015年開始就在生產環境中使用Kudu,通過幾年的磨鍊,這些寶貴的經驗和心得也都傳承下來。目前的業務量、數據量、查詢量也都穩步增加,是小米最重要的存儲系統之一。其中比較大的業務有大數據部的增加分析項目,信息部的數據市集項目等,他們有數千張表,天天有百億行數據的寫入,Kudu給他們提供了穩定可靠的存儲和分析服務。

小編:成爲Kudu committer and PMC member對你我的有哪些成長?後期有哪些挑戰麼?

賴迎春:參與Kudu項目的過程當中,除了代碼、系統架構之外,還學習到開源項目開發、管理、規範化建設的不少知識和經驗,後續也能將這些經驗平移到其餘開源項目的建設上去,好比咱們本身開源的KV存儲系統Pegasus。


成爲committer and PMC member是Kudu PMC對我以前工做的確定,是一種激勵,也是一種對我將來工做的期許。我本身的感受是有了更強的責任感,是一個開源項目新角色的開始,從此的工做和對社區的貢獻也不能由於取得了這一點小成就而有所懈怠。

小編:你給想要成爲Kudu committer and PMC member的工程師或者開源項目愛好者有哪些建議嗎?

賴迎春:開源項目的思路是相通的,不光適用於Kudu,也適合其餘開源項目,個人理解是有三方面:

一、多閱讀官方文檔和paper,沒有涉及和深刻的部分能夠閱讀代碼。

二、多跟社區交流溝通,能夠向社區郵件列表發信,或者在官方Slack上提問交流,國內也有比較活躍的微信羣。

三、分享精神。有項目經驗的能夠多提交Patch,數量上來的同時也要保證質量和份量,也能夠貢獻相關的技術文章,堅持下去,社區會看到你的工做和貢獻的。

總之,但願有更多的使用者和開發者,可以將本身遇到的問題和使用經驗分享貢獻出來,一塊兒把Kudu建設得更美好。

寫在最後

小米爲何要積極擁抱開源、貢獻開源?小米集團技術委員會主席崔寶秋博士曾經表示:

除了要站在巨人肩膀上,還要爲巨人指方向。好多開源項目能夠拿來即用,不必單獨再開發。

此外,擁抱開源有助於提升工程師編程能力。提高一個工程師代碼水平和編程能力很好的方法就是讀大量代碼,大量的開源代碼能夠迅速提高工程師技術水平,也能夠提高工程師文化,讓你們喜歡技術、喜歡開放。在這個過程當中,業務上的代碼質量和工程文化也會獲得提高。最重要的是,當整個工程文化爲公司發展、工程師我的成長帶來便利時,更多的人才會加入咱們。

最後,小米還在招各類工程師,想要加入咱們,點擊瞭解☞☞來小米,一塊兒搞大事!


本文首發於公衆號「小米雲技術」,點擊閱讀原文

相關文章
相關標籤/搜索