參與 Apache 頂級開源項目給團隊帶來了哪些變化?

參與 Apache 頂級開源項目給團隊帶來了哪些變化?

Apache RocketMQ Meetup · Super Coder 挑戰賽

200多人同場競技,經過一輪輪的答題淘汰,最終決出那位闖關成功的勝者。這是Apache RocketMQ Meetup 現場的暖場遊戲,也是阿里巴巴內部工程師們熱衷的集體活動 - SuperCoder挑戰賽

這種帶有顯著技術特徵的遊戲不僅是工程師文化的延伸,也是Apache RocketMQ Meetup 不同於其它開發者活動的地方。Apache RocketMQ創始人馮嘉在這次Meetup上分享了Apache RocketMQ社區成立兩年多時間裡的一些感悟,以下整理自現場分享。

精彩觀點導讀

# 創新一方面是來自客戶真實需求,另外一方面則來自學術圈。

# 開源對工程師成長帶來的顯著提升,包括領域深度認識、技術格局、溝通協作等方面,這些都會為大家日常工作帶來積極的變化。

# 如果你的知識儲備不錯,可以通過橫向推演或者親自研究這些項目,這樣大家的交流會很對點。

RocketMQ自進入Apache基金會以來,無論是技術研發,還是社區生態都取得了飛速發展,這次是Apache RocketMQ中國行的第六站,非常高興能有這麼多同學抽出寶貴的週末時間來參加我們這次的Meetup。今天,我和大家分享三個關鍵詞 –

創新、變化與社區。在我看來,這幾個關鍵詞一定意義上體現了Apache RocketMQ社區的極客文化,也是我們一直追求的有別於國際上其它開源項目的不同之處。

創新

第一個關鍵詞是創新。

Apache RocketMQ是在阿里巴巴雙十一的場景下沉澱出來的,是一款經過大規模生產檢驗的分佈式消息引擎,相比於國際上同類的開源項目,我認為它的最大特性就是穩定和可靠,因此非常適合金融行業的場景。開源後,我們基於穩定可靠,做了非常多的技術升級與創新,並把應用場景從金融行業擴展到面向整個基礎設施,包括雲端、互聯網、流計算、數據處理和AI,這是RocketMQ社區未來技術演進和創新的方向。

另一項創新體現在社區運營層面,自從RocketMQ捐獻給Apache基金會後,我們便開始採用 Apache Way來運營社區,隨著社區理念的加深,RocketMQ也積累了自己的運營經驗,並以RocketMQ Way的形式反哺給社區。創新是開源項目能夠持續發展的原動力。產品同質化越來越嚴重的情況下,如何讓用戶選擇你,並且是堅定不移的支持你,這是我們一直在思考的問題。我認為創新是其中最為關鍵的因素。

因此,你會看到RocketMQ的新技術,新特性以及新的生態產品都會有別於傳統做法,這些都是我們的工程師與用戶進行不斷交流討論得來的最真實的需求與痛點。

同時,這也是我們舉辦Meetup重要的使命之一,非常希望也歡迎大家和我們分享自己在使用RocketMQ時的心得,包括給我們提建議、需求等。為此,我們這次還特意組織了一個環節,叫做“Meet with Apache RocketMQ Committers”,就是希望社區的專家能夠近距離傾聽我們客戶的心聲,接受來自用戶的輸入。

創新一方面是來自客戶真實需求,另外一方面則來自學術圈。這是Apache RocketMQ社區一個重要的努力方向,也是我們團隊重要的工作方向之一。比方說,最近我們在跟伯克利的一些頂尖實驗室進行技術交流與合作,今年即將發佈的Apache RocketMQ 5.0會是一個重量級的架構演化,屆時我們會提供一些新穎的特性出來,歡迎大家來玩,幫助我們不斷提升產品品質。

社區變化

第二個關鍵詞是社區變化。

在創新理念的影響下,我們看到了社區的變化,變得更開放和更包容,社區的工程師也更具工匠精神。RocketMQ自進入Apache 孵化以來,社區對內核代碼等做了大量的優化,局部做了不少重構。社區最近發起的RIP(RocketMQ Improvement Proposal)改進計劃(點擊文末閱讀原文進行了解),便體現了社區協作上的變化。

以前,開發者都是通過issue來提交疑似bug,同時也會將feature request提交到issue列表裡,然後我們通過issue列表來跟蹤和管理feature request。但這種方式對於feature request的管理並不高效,所以我們開始把feature request的提交、跟進和管理拆分出來,以RIP項目的形式來運營,開發者使用社區的template來提交feature request,經過[DISCUSS]和 [VOTE] 的流程後,進入社區開發流程,即將發佈的4.4.0版本里面的ACL和軌跡消息的產品特性就是源自社區的RIP。

當然還有我們最近非常火熱的多語言SDK(C++, Python, Go, NodeJs等)和Spring集成,講到Spring集成這塊,我們接下來會有專門的文章為大家介紹,尤其是與來自Spring國際社區的工程師一起review改進代碼質量的經歷,這是一次非常深入的社區協作,對我們工程師的成長來說非常有價值。

另外一個變化來自我們社區的組織形態。

前兩年我去美國參加Java One,和國外的同行也多次交流過社區的運營。大家知道,在Java領域有非常多的標準,這些標準絕大多數是被稱之為JCP這樣的專家組織提出來的,但有一部分是由JUG這樣的民間開發者組織發起的,為此還有一個和它匹配的專有名詞。在美國被稱之為DevRel,翻譯過來就是開發者關係。這樣的組織對社區的發展至關重要,像一個JUG的組織者就來自巴西,每次Java One基本上都會來分享她們的經驗,怎麼維護這個組織,為JCP貢獻了哪些技術標準等等。

Java語言是我個人非常喜歡的語言之一,我也特別希望亞洲範圍內有這樣一個JUG組織,推進Java的發展與新標準的落地。另外,我們也都看到,早期很多開源項目的發展,都是依賴於某一家或某幾家企業。如Facebook和Twitter,我認為是當時最具開源極客文化的兩家公司。

拉回國內,今天我們大家有機會聚在一起,是因為Apache軟件基金會,因為背後有來自阿里巴巴、中國移動、滴滴出行、平安銀行等上百家企業的真實案例與貢獻支持。當然,我們也非常高興地看到社區在自發的組織一些線下活動,以更高的頻率下沉到更多的城市,讓國內更多城市的開發者也可以參與線下互動。

這也是RocketMQ社區的一個巨大變化:現在有了更多的來自社區的自發組織,就像JUG這樣的組織一樣,後面我們也會邀請相關的同學來給大家分享社區裡的一些趣聞。

最後一個變化,也是我重點想提的,人的變化。

開源是一個全球性的經濟活動,在開源領域,我們有機會接觸到那些受人尊敬但距離看似遙遠的技術大牛。但開源為我們提供了一個途徑,如果大家能夠參與到社區,無論是使用開源項目,還是以contributor的身份參與社區貢獻(架構演進、功能完善、體驗優化和文檔建設),都有機會和技術大牛一起協作,進行更多的交流。從中你會發現,不僅僅自己的技術實力發生了變化,視野格局也會有很大的提升。

以我自己為例,在畢業那會兒,JavaEE和Spring 基本上是Java領域的一個技術標配,那個時候給我留下深刻印象的兩個技術牛人,一個是Spring的締造者Rod Johnson,一個是Hibernate的作者Gavin King,不管是代碼,還是從他們在社區的activity來看,都有很強的極客範,對我本人的技術發展也提供了很多學習借鑑的地方。

如今,在Messaging和Streaming領域,RocketMQ社區的同學在打交道的外國同行幾乎都是分佈式領域深耕數十年、受人尊敬的“大鬍子”,大家也都能很平和地在交流著圈內技術,探討領域的發展方向。

目前,我們也和包括微軟、Google、IBM以及K8S生態圈中的許多頂級開源項目都有很好的合作,這些合作經歷對工程師的成長幫助非常大。以前經常有開發者問參與開源項目有什麼好處,我會講有一二三四五六,但其實第七點同樣非常關鍵,就是成長。從團隊周邊的小夥伴身上,我能清晰的感受到,開源對工程師成長帶來的顯著提升,包括領域深度認識、技術格局、溝通協作等方面,這些都會為大家日常工作帶來積極的變化。

另外,在這裡,我特別希望向大家傳達的是做開源的態度 - 不亢不卑,這個也是我在團隊裡面經常強調的。當我們和來自微軟、伯克利等同學在做技術交流的時候,你會發現大家其實思考的問題基本上是一致的,只是解決這些痛點的方式、維度有所不同。如果你的知識儲備不錯,可以通過橫向推演或者親自研究這些項目,這樣大家的交流會很對點。

但交流過程中確實會出現一些文化上的差異,例如老外會覺得你的技術只是在中國才流行,但隨著技術上的深入交流,以技術的方式去探討,也會逐步獲得對方的認可,這個溝通過程將會帶給工程師很大的鼓舞。我也特別鼓勵大家能更多地以平和的心態去和國外的同學作深度交流,也希望大家能夠像這些同行一樣,非常nice地尊重每一位同學,而不是那種冷冰冰地對待來自社區的友善提問與合作請求。

社區

最後,我們迴歸社區

Apache RocketMQ社區成立的兩年多里,除了給團隊、社區和開發者個人帶來變化外,RocketMQ項目本身也經歷著從本地化向多元化發展。

今天來看,容器、微服務、人工智能等目前國內比較火的技術方向,像技術峰會或者Meetup在國外舉辦的居多,因為這些技術的發源地或者說概念的提出是在國外。這幾年,我們也慢慢看到一些國內同學提出來的頂級項目或者說標準,開源以後,在中國也擁有非常多的國外用戶。就拿RocketMQ來說,例如在之前的北京Meetup上有來自於印度和中東地區的工程師詢問。但因為受限於Meetup本地化行程,沒有機會提供英語的分享環境。

所以接下來,我們會嘗試邀請社區裡面在中國工作的外籍工程師,並提供一個英語分享環境,讓他們也來感受一下Apache RocketMQ社區線下活動的氛圍,同時能夠幫助我們注入更多的國際化因素。今年,我們也在考慮計劃Apache RocketMQ 北美行,歡迎屆時大家推薦自己在國外的朋友來參加。

參與 Apache 頂級開源項目給團隊帶來了哪些變化?

Apache RocketMQ 社區成員合照

本文作者:馮嘉,社區暱稱vongosling ,Apache RocketMQ 創始人,Linux OpenMessaging 創始人,Google編程夏令營導師,Apache孵化器導師,阿里巴巴 Messaging 開源技術負責人。

有關 RocketMQ 的更多信息:

  • 消息規模超千億,同程藝龍的消息系統建設實踐
  • 我用這種方法在Spring中實現消息的發送和消費


分享到:


相關文章: