个人介绍
大家好,我是来自西安电子科技大学计算机学院软件工程专业的陈瑞杰,本科就读中北大学,本科通过校赛加入ACM校队,参与ACM-ICPC、CCPC等算法比赛,获区域赛铜奖(CCPC铜首,差点银,比较可惜),以专业第三保研至西安电子科技大学,保研后在字节跳动实习了3个多月。
开源之路
本科的时候学习Java web的时候会用到Tomcat等这些带有Apache前缀的组件,当时好奇查了一下Apache基金会,是一个专门为支持开源项目而生的非盈利性组织,Apache基金会管理的项目各个都是全世界的大佬共同付出的结果,各个都是业界的标杆,关键是还免费提供给全世界人使用,当时自己也是一名计算机专业的学生,心想那天我也能成为这么一个人,不说开发出一个业界标杆,最起码参与贡献一个全世界人都使用的软件也可以。
研一的时候听实验室同学说上届学长参与了开源之夏这个比赛,据说都是对顶级开源社区贡献代码,我一听感觉非常高端大气上档次、非常牛逼,心想学长能中选,那我至少得尝试一下,因为第一次参与,所以能做的就是先把项目跑起来,然后尽可能得去看里面的源代码,尤其是跟自己课题相关的那部分源码,尽可能的去丰富自己的设计方案提高自己的中选率,当然如果有机会的话提前参与社区贡献那当然是再好不过了欢迎大家来Apache DolphinScheduler贡献代码
在我刚接触计算机行业,也就是大一的时候,我眼中的开源是遥不可及的,开源都是世界级的大佬才能参与的,当第一次合并了自己提的PR后,发现原来开源不是那么的遥不可及,它包容性很强的,社区的大佬们各个来自国内头部科技公司,但是他们不会吝啬自己的技术分享,你有问题,他们虽然可能因为工作的原因不能秒回你,但是有空了一定会给你解答。它也是充满技术氛围的,每个人都可以把自己遇到的问题和自己发现的Bug、想到的Feature、Refactor、Improvement等类似发帖子一样发出来,然后一定会有社区的人员去答复你,可能答复你的是社区的管理员如PMC、Committer,还有可能是一些持续贡献的社区的普通Contributor。
Apache DolphinScheduler社区体验
Apache DolphinScheduler社区也给我留下了活跃和友好的印象。我参与了社区在开源之夏的两个项目:master/worker/api模块日志优化和任务依赖模式重构。在日志优化项目中,我完成了我的第一个PR,优化了三个模块的日志输出。这个项目虽小,却让我学会了社区的协作流程和技术实践。社区的进勇老师、顺风老师和其他大佬都给予了我很多帮助。
在任务依赖模式重构中,我改进了依赖类型节点的逻辑,并更新了相关文档。这个项目让我对社区的核心模块有了更深入的理解,并修复了dev分支的两个bug,得到了社区大佬的认可。
我眼中的DS社区是包容性很强的,充满技术氛围,但凡你有想法,比如重大的重构或者提升,你都可以给社区发送邮件,如果是小Bug或者其他小的改动,你可以直接提issue,在Apache DolphinScheduler社区,你不用担心你解决不了,不要怕遇到什么问题,这里有非常多的大佬,在这里你可以大大提高自己的代码阅读水平、工程编码能力、工程设计能力,当然也可以认识很多的行业大佬,各行各业的精英,有些来自融资数亿美元初创公司(比如我的课题导师杰哥和强哥),有些来自国内头部互联网科技公司(比如我的课题导师枫哥),有些来自国内top高校(比如饶哥)。
我主要参与了两个大的课题,都是DSIP(比较重大的改造)。
“相关链接”
https://github.com/apache/dolphinscheduler/issues/10911
https://github.com/apache/dolphinscheduler/issues/14338
第一个是“为 DolphinScheduler Python API 添加 资源文件加载插件”。当时DolphinScheduler Python API 只能传递字符串格式传递任务 的参数,但通常来说,用户希望具体的执行 代码储存在其他系统中(希望更好维护和集成),例如将具体文件存储在本地文件系统、GitHub、GitLab、Amazon S3、阿里云 OSS 等。这个课题主要是实现 Resource 的插件化,具体的插件 Resource 包括本地文件系统,GitHub, GitLab, Amazon S3, 阿里云 OSS,还有文档的编写,包括开发(如何二开实现插件)和使用(每个 Resource 插件使用)。
第二个是“将数据源中心扩展成连接中心”。DolphinScheduler 有⼀个 Datasource Center 的组件,⽤于管理 sql 任务的外部连接,如 Mysql、Hive、Spark 等。但是不只是SQL任务,其他⼀些 DolphinScheduler 任务插件也需要 外部连接,⽐如AWS EMR任务、Zeppelin任务、K8S任务等。我们可 以丰富需要 Datasource Center 来管理连接的场景,尤其是那些具有凭据的外部系统并将其升级到连接中心。这个课题主要是实现将 Datasource Center 的名称更改为 Connection Center、重构部分AWS EMR、Zeppelin、K8S、Sagemaker 任务插件,方便用户在连接中心管理外部连接。
未来展望
希望Apache DolphinScheduler社区越来越活跃,用户越来越多~
希望通过持续贡献Apache DolphinScheduler,逐渐的承担一些重大、更具挑战的课题,成为Apache DolphinScheduler的核心开发人员!让全世界的工程师最好的工作流编排平台~
社区的支持
希望能够担当一些更具挑战性的课题,让自己能够对Apache DolphinScheduler认识更加深刻~
参与Apache DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues? q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
本文由 白鲸开源科技 提供发布支持!