雲原生時代消息隊列和流融合系統,提供統一的消費模型,支持消息隊列和流兩種場景,既能為隊列場景提供企業級讀寫服務質量和強一致性保障,又能為流場景提供高吞吐、低延遲;採用存儲計算分離架構,支持大集羣、多租户、百萬級 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 項目的不斷髮展與前進。
- Apache Pulsar 官方貢獻指南
相關閲讀
- 95 後新生代 Committer 賀張儉:談談年輕人的開源觀
- Committer 郭吉偉專訪:做開源不是搞慈善,用開源也不是薅羊毛
- 實力與顏值並存 —— Apache Pulsar PMC 成員劉昱專訪
關注 公眾號「Apache Pulsar」 獲取更多技術乾貨
加入 Apache Pulsar 中文交流羣👇🏻
點擊填寫“新 Apache Pulsar 官網”問卷吧~