我与Apache SeaTunnel的不二情缘

2023-03-09 16:00:58 浏览数 (2)

关于我

我是tyrantlucifer,目前是Apache SeaTunnel社区的PPMC & Committer,在一家不知名公司任职大数据开发工程师,工作方向主要聚焦于数据集成领域的探索和实践,平时也会用诸如Spark、Flink这样的分布式计算引擎做一些业务数据处理的工作,我是一名纯粹的开源爱好者,喜好用爱发电,热爱写代码,今天很高兴能够再次受到社区邀请,在这里讲述我与Apache SeaTunnel的故事。

初识WaterDrop

熟悉SeaTunnel的老朋友们应该会知道,其实SeaTunnel没进孵化器之前就是市面上开源许久的WaterDrop,在SeaTunnel进孵化器的前期,我有幸因为工作缘故,接触到了WaterDrop,由此开启了我与SeaTunnel的不解情缘。

当时我在公司内部负责维护公司自己的数据集成引擎,但由于技术选型和当前业务的不匹配,导致数据传输效率过慢,引擎已经满足不了离线需求的日益增长,为了解决这个痛点,我去调研了WaterDrop,并被它的设计思路和架构深深吸引,并将它成功集成到了公司的数据集成引擎之上。

参与SeaTunnel贡献

在我接触完WaterDrop的一两个月后,WaterDrop成功进入到Apache孵化器并改名为SeaTunnel,当时的我第一时间就萌生了想为SeaTunnel贡献的想法,但实际上由于使用层次的不深入,我没办法找到很好的切入点去参与贡献,还依稀记得给项目提的第一个pull request是关于代码风格转换的:Optimize the code style by TyrantLucifer · Pull Request #966 · apache/incubator-seatunnel,实际上对于功能来说没有任何的帮助和改善,最后的结果也是无情的被社区拒绝,我的第一次尝试贡献以失败告终,但说实话这次失败并没有让我失去贡献的欲望,反而是愈加强烈,从那时起,我心中的便埋下了一颗种子,我认为它有朝一日终将能开花结果,我开始尝试去每天关注项目的issue和动态,关注有没有一些新手任务,宛如一条毒蛇一般伺机而动,往往机会总是留给有准备的人的,我也抓住了,某天社区决定重构api层,将之前的scala代码全部转换为java代码,对于早期的api架构我很熟悉,我认为这些任务很适合我上手,所以领取了我真正意义上第一个被merge的需求:[Feature][api] Translate seatunnel-api-spark module's scala code to java · Issue #1142 · apache/incubator-seatunnel,在做这个需求的时候,我自身认为很简单,可是在贡献过程中却遇到了很多的难题:

  1. 代码风格不规范
  2. CI跑不过
  3. Spark Streaming Scala 与 Java API不兼容

在经历了长达半个多月的多轮review以及社区大佬们的建议之下,我终于完成了自己Apache项目的第一次贡献,我相信很多小伙伴都会对自己的第一次贡献有很深刻的记忆,但也是这次艰难的贡献,成功向我开启了向SeaTunnel深度贡献的大门。

在今年的4 5月份,社区准备重构API层以做到与计算引擎解耦的目的,这是项比较大的工程,看到SeaTunnel有如此大的架构改动,我开始参与到这项比较大的任务里,去输出自己在数据集成领域积攒下来的经验,并落地到SeaTunnel中,在经过半年的不懈努力,SeaTunnel V2初具雏形,同时主仓库的大部分角落也留下了我的姓名和提交,在今年的11月底,我有幸被社区邀请成为PPMC Member,至此,我的种子终于开花结果,变成了一颗参天大树。

社区带给我的影响

在逐渐参与到深层次的Apache SeaTunnel的贡献过程中,我的角色从User,到一个Contributor,转变到一个Owner,角色的转换代表着身上所承担的责任和义务的转换,我学习到了Apache项目的管理规范,学习到了Apache的开源精神,随着社区贡献者的不断涌入,在技术设计和实现的思路上必定会出现不断的碰撞和摩擦,在这个探讨的过程中我成长了很多,我学习到了很多优秀的设计思路,学习到了很多代码规范,极大的拓宽了我整个人的技术思维,参与社区建设和贡献让我痛并快乐着,痛是因为我的业余时间都奉献给了社区,快乐是因为我个人也在吸收着社区反哺给我的营养而加速成长。

开源的乐趣

我是一个开源积极分子,从学生时代就已经是Github的常客,喜欢看各种大佬开源出来的项目,但大多数时间更像是一个User,并不是一个Contributor,工作后我有了一定的产品思维,将自己自用的小工具开源了出来,获得了700 的star,这是我在开源上尝到了第一个甜头,开源给予了我极大的虚荣心和满足感,作为一个程序员的价值体现就是他写的代码可以被别人认可且使用,我也渴望能够成为一个“厉害”的程序员,我渴求得到别人的认可,开源恰好给了我这个机会,试想,当你写的代码跑在成千上万台机器上为人类创造价值,这种油然而生的自豪感会贯穿到整个心扉,我认为这是对我个人价值和技术水平的最高肯定和赞誉。

开源让一群志同道合的人聚到了一起,在开源社区中可以认识到很多的朋友,参与Apache SeaTunnel社区建设和贡献我认识到了很多优秀的同龄人,诸如CalvinKirs,ashulin,ic4y,wuchunfu,hailin0,Hisoka-X等,他们跟我年龄相仿技术水平和成就却是我的好几倍,我希望有朝一日能够追赶上他们的步伐,成为一个“厉害”的程序员。

致下一个贡献者的你

在这里借用William-GuoWei老师的一句话来送给大家:

代码语言:javascript复制
“中国没有开源”这个观点我是不愿意相信的。我相信这一代年轻人,不仅仅是程序猿,而是越来越多的人,愿意参加到各行各业的非盈利团体当中去,贡献自己的想法、代码、知识,让这个世界变得更加美好。

新一代年轻人成长在一个良好的技术分享时代,信息的获取和触达相比于老一辈来讲有了质的飞跃,技术是不断分享不断碰撞不断创新才会有质的变化和跨时代的进步,中国有句古话:众人拾材火焰高,希望越来越多怀揣梦想的年轻人能够参与到开源贡献中来,从而达到量变引起质变。

在如今这个时代,已经有很多前辈为我们铺路布道,参与开源贡献已经没有任何门槛,缺少的只是贡献者的勇气和信念,It's now or never,这是我非常喜欢的一句话,机不可失,时不待我,如果不是现在,那是什么时候呢?

尾篇

如果在Apache SeaTunnel使用过程中遇到问题或者咨询贡献相关事宜,有以下几种方式联系到我:

Github:https://github.com/tyrantlucifer

E-mail:tyrantlucifer@apache.org

WeChat:tyrantlucifer

0 人点赞