雲原生時代訊息佇列和流融合系統,提供統一的消費模型,支援訊息佇列和流兩種場景,既能為佇列場景提供企業級讀寫服務質量和強一致性保障,又能為流場景提供高吞吐、低延遲;採用儲存計算分離架構,支援大叢集、多租戶、百萬級 Topic、跨地域資料複製、持久化儲存、分層儲存、高可擴充套件性等企業級和金融級功能。
GitHub 地址:http://github.com/apache/pulsar/
場景關鍵詞:
非同步解耦 削峰填谷 跨城同步 訊息匯流排
流儲存 批流融合 實時數倉 實時 ETL 金融風控
摘要:2022 年初,Apache Pulsar 社群迎來了一位新晉 Committer——李理(GitHub 地址: @urfreespace)。來自 StreamNative 的李理是一名全棧工程師,他的社群主要貢獻方向為 Pulsar 官方網站與文件系統建設。非 Pulsar 專案開發者如何參與開源?全棧工程師在開源專案裡可以承擔什麼角色?李理將以親身體驗給大家帶來參與開源專案、獲得開源社群認證的“新”思路。\
本文策劃:雞排,海綺
- “為什麼建議大家做開源——除可以提升自我外,開源專案本身就是一個品牌,為你的能力背書。”
- “文件寫的好,用起來才好,體驗感才好,大家才願意用,才有助於一個專案的推廣與普及。”
- “好的開源產品在網站和文件方面一定要完善和健壯,有人去維護的文件和網站的使用者體驗才是友好的。”
———— 李理
用一個字概括李理的風格,“雜”似乎最為合適。此處的“雜”是褒義的,是李理職業生涯和日常生活的縮影:在職業生涯中,李理曾從事研發工作,各個領域都有涉獵,如 Java/Pyhton/Go 服務端、Web 前端、iOS 客戶端、ELK 運維和研發等工作,現在是一名全棧工程師;在生活中,李理愛好廣泛:爬山、做木工、做各種手工小玩意兒、讀書等等,閱讀也涉獵廣泛。
(下面讓我們從李理的第一視角走進他的開源世界)
From Kafka to Pulsar,從使用者到開發者
加入 Pulsar 社群前,我做了一年多的 ELK 相關技術棧運維和研發工作;在使用 Kafka 的過程中遇到一些運維上的痛點,於是開始調研 Pulsar,我也是從那時開始逐步深入瞭解 Pulsar。
此外,進入社群前,我一直以使用者角色接觸和調研 Pulsar 專案,並沒有參與任何 Pulsar 主專案的貢獻。現在作為全棧工程師,我不斷接觸 Pulsar 多個方面。從使用者向開發者角色轉變,一點點向 Apache Pulsar 奔赴。
兩個 PIP 的誕生:打造更好的專案體驗
我在 Pulsar 的主要貢獻圍繞 PIP - 87 和 PIP - 112 展開:
- 升級 Pulsar 網站,改版基礎框架;
- 優化 Release Note 自動化指令碼;
- 升級 Pulsar 文件,實現自動化處理。
最近訪問 Pulsar 官網的小夥伴會發現,目前 Pulsar 新網站 Beta 版本已經進入 Review 階段,大家可在當前 Pulsar 網站找到相關連結點選進入檢視。新版網站是我的貢獻成果之一。
再見,舊網站
過去的網站框架版本過舊,功能特性不全,定製化能力不強(如文件左側選單無法展開),使用者使用感不友好。因此我和 Pulsar PMC 成員劉昱接收社群對網站使用體驗的多方反饋、框架的優化意見,並在統一整理後,與社群多次討論編寫出 PIP 文件解決網站痛點,升級優化網站框架。目前,已升級的網站功能特性完善,選單可以展開,具備響應式佈局;移動端適配友好,使用者使用手機訪問也能獲得舒適的體驗。
此外,新網站滿足多 Tab 切換需求,大家可以使用開發語言定製化文件,實現高階互動效果;同時,一些樣式 UI 層已實現高階定製,不再僅僅侷限於原本級別低的語法,有效提高了文件靈活性。
值得關注的是,我們正在對新網站進行調研,以問卷調查的形式收集大家對新網站的建議,歡迎大家參與填寫。
文件自動化
原先網站 Java 層程式碼類文件(Pulsar 主專案)的手動生成工作繁瑣,大大增加了社群小夥伴的工作量。通過自動化指令碼,在構建過程中實現文件自動生成,隨後文件直接嵌入到網站中,如此可以大程度減少繁瑣的工作,優化人力時間配置,提高執行效率。
早期 Release Management 版本釋出時,Release Note 的生成需要手動整理寫入文件中,這樣的操作流程不僅浪費人力時間,還存在手工輸入資訊帶來錯誤遺漏的風險。因此,PIP-112 專案針對該問題,新增了自動化指令碼配置,自動拉取和排版 Release Note 記錄,完成歸檔。
此外,隨著版本釋出的迭代,文件越來越長,瀏覽起來困難,找到指定內容需要耗費大量時間。因而,針對版本多元件內容雜糅這樣的問題,我搭建了歸檔分級的框架:區分出不同元件,如 Broker、Bookie、Client 等,然後在各個元件下分出大小版本。如此方便使用者們根據自己對特定元件的需求快速瀏覽文件,實現高效索引。
目前,該歸檔分級尚未暴露,大家可以在 Pulsar 新網站獲取跳轉連結。
使用者體驗好才是真的好
瞭解一個新專案和社群有兩種基本方式:一是網站和文件,二是原始碼。往往原始碼閱讀難度較大,而文件更容易幫助理解。文件既是入門指南,也是集結社群貢獻的重要內容。文件不完善、網站不友好會嚴重影響使用者與開發者的體驗。文件寫的好,用起來便捷,體驗感舒適,大家才願意深入瞭解,才有助於一個專案的推廣與普及。
完善健壯的文件是開發優秀開源專案的關鍵,加之以相關負責人員的定期維護,盡心保證使用者體驗感友好。現在很多開源專案在文件和網站方面的貢獻者數量匱乏。因此,對該方面工作投入必要的人力時間技術是很有必要的。
為什麼要參與開源
我非常建議大家積極參與開源。為什麼要參與開源呢?從我自身經歷來講,自加入 Pulsar 開源社群,我結識了很多優秀的小夥伴,社群的技術氛圍濃烈,對效能、程式碼質量等各方面要求高,這驅使我以更高標準要求自己、提高自己,讓我感受到技術能力的發展空間是無限的。此外,參與開源專案對個人職業生涯有很大幫助:高含金量的專案本身就是一個品牌,專案經歷可以為自身技能“背書”。
那麼又如何去參與開源專案和社群呢?新人小夥伴初入 Pulsar 社群,可以從簡單的任務入手,而文件就是一個不錯的切入點。大家可以在 Pulsar 專案 Issue 列表中根據文件標籤、重點標記以及自己的能力進行評估和篩選,挑選適合的主題嘗試貢獻,由淺入深。
成為 Committer 後任重而道遠
成為 Committer 後,我的責任感增強了,時常認為自己做的還不夠,希望自己能為 Pulsar 主專案多做貢獻,因此我正在進行主專案貢獻方向的學習,期待之後能為 Pulsar 社群帶來多樣化貢獻。
與此同時,我期待能引導並培養更多的人加入文件和網站維護團隊,以解決當前這兩方面參與人數不多、重視度不足的問題,發揮文件和網站的最大價值,共同助推後期專案的發展和使用者體驗的提升。
致謝
感謝社群大佬們的熱心幫助,每次我提 PR,大家都積極回應,幫助規範程式碼、指出不足之處。我們共同學習進取、碰撞出靈感的火花。我認為參與開源的意義正在於此:一群達成共識的人聚在一起做喜歡的事。
讓 Apache Pulsar 為你“背書”
作為全球性開源專案,截至目前,Apache Pulsar 已擁有514 名貢獻者、10.6K+ Star 、2.8K+ Fork。Apache Pulsar 已經獲得了諸多使用者認可,場景案例也越來越豐富,覆蓋領域廣泛,如 AI 人工智慧、IoT 物聯網、直播/短視訊與社交、即時零售與物流、電子商務、人力資源、電信運營商、證券交易與金融科技、商業智慧、工業網際網路、基礎雲服務……主要使用者有知乎、塗鴉智慧、達達集團、平安證券、華為雲、騰訊計費平臺 Midas、金山雲、拉卡拉等。
正如李理所言,一個高含金量的專案可以為你的職業“背書”。參與 Pulsar 社群,不但可以獲得公司及社群內外的認可,結交來自各個領域、志同道合的小夥伴;還可以提高個人影響力,促進個人發展。李理的親身經歷也為大家證明:參與開源的方式是多樣的,社群、文件、網站等各方面都有足夠的空間讓大家成長為資深脈衝“星”。
我們為大家提供了參與指南,歡迎越來越多的小夥伴助力 Apache Pulsar 專案的不斷髮展與前進。
相關閱讀
- 95 後新生代 Committer 賀張儉:談談年輕人的開源觀
- Committer 郭吉偉專訪:做開源不是搞慈善,用開源也不是薅羊毛
- 實力與顏值並存 —— Apache Pulsar PMC 成員劉昱專訪
關注 公眾號「Apache Pulsar」 獲取更多技術乾貨
加入 Apache Pulsar 中文交流群??