云原生时代消息队列和流融合系统,提供统一的消费模型,支持消息队列和流两种场景,既能为队列场景提供企业级读写服务质量和强一致性保障,又能为流场景提供高吞吐、低延迟;采用存储计算分离架构,支持大集群、多租户、百万级 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 中文交流群