From 5e4e669186b97a96cff10425b2f7727b650496eb Mon Sep 17 00:00:00 2001 From: CalvinKirs Date: Fri, 15 Jan 2021 16:08:51 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=BC=80=E6=BA=90=E6=95=85=E4=BA=8B/?= =?UTF-8?q?=E4=BC=97=E9=87=8C=E5=AF=BB=E5=A5=B9=E5=8D=83=E7=99=BE=E5=BA=A6?= =?UTF-8?q?=E4=B9=8BDolphinScheduler.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\345\272\246\344\271\213DolphinScheduler" | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "\345\274\200\346\272\220\346\225\205\344\272\213/\344\274\227\351\207\214\345\257\273\345\245\271\345\215\203\347\231\276\345\272\246\344\271\213DolphinScheduler" diff --git "a/\345\274\200\346\272\220\346\225\205\344\272\213/\344\274\227\351\207\214\345\257\273\345\245\271\345\215\203\347\231\276\345\272\246\344\271\213DolphinScheduler" "b/\345\274\200\346\272\220\346\225\205\344\272\213/\344\274\227\351\207\214\345\257\273\345\245\271\345\215\203\347\231\276\345\272\246\344\271\213DolphinScheduler" new file mode 100644 index 0000000..d1992ce --- /dev/null +++ "b/\345\274\200\346\272\220\346\225\205\344\272\213/\344\274\227\351\207\214\345\257\273\345\245\271\345\215\203\347\231\276\345\272\246\344\271\213DolphinScheduler" @@ -0,0 +1,61 @@ + +### 前述 +#### 关于我 +我是CalvinKirs,目前是Apache DolphinScheduler的Commiter。擅长大数据olap、大数据调度、分布式组件开发等。目前专注于大数据领域核心技术研发。 +我也是一名开源爱好者,我要讲的是我从起始给 DolphinScheduler 做贡献到近期加入到易观数科大家庭的故事。 + +#### 关于 Apache DolphinScheduler社区 +Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache 孵化器,社区发展非常迅速,目前已有 400+ 公司在生产上使用,代码+文档贡献者近200位,社区用户4000 +人。DolphinScheduler (简称DS) 致力于使大数据任务调度开箱即用,它以拖拉拽的可视化方式将各种任务间的关系组装成 DAG(有向无环图),并实时监控整个数据pipeline的运行状态,同时支持失败重试、重跑、恢复失败、补数等大数据常用操作 + + +### 遇见DolphinScheduler + +我是一个有开源情节的人,开源以不同的方式陪伴了我相当长的一段时间,同样也给我带来了一些比较大的改变。 + +我个人接触的开源项目是比较多的,但是深度贡献的并不多,也是一个偶然的契机接触到DolphinScheduler,从此开始了深度贡献。 + +选择对味的社区其实很重要,如同恋爱一般,总需要几个回合摸索试探才能决定是否合适,DolphinScheduler社区给我的一个最大的感受就是足够包容,我不认同你,但是我支持你。这是[dailidong](https://github.com/dailidong)给我的一个最直观的感受,你的想法不成熟的时候,作为PPMC,他需要对社区负责,他可能不是很认同,但是他支持你去完善去佐证,这个过程中也是很感谢社区的一些其他伙伴,[qiaozhanwei](https://github.com/qiaozhanwei)、[Tboy](https://github.com/Technoboy-)、[gaojun2048](https://github.com/gaojun2048),[lgcarrer](https://github.com/lgcareer)(license的大佬)、[lenboo](https://github.com/lenboo)(核心流程找他就对了)等,一开始我总有种人微言轻的感觉,一般都处在旁听的状态,毕竟这些贡献者基本上都是各大公司的精英人物。后来发现是我多虑了,大神们其实非常平易近人。也是因为这些人,让我喜欢上DolphinScheduler社区。 + +### 社区带给我的影响 + +随着社区的发展,越来越多同学的加入,我们可能(甚至是必然)会在一些设计上存在一些不同的意见,但这其实也是开源的魅力,对于社区来讲,也是一种好事,不同思想的碰撞才会导致设计趋近于更加完善。也只有这样,DolphinScheduler才能更好走向全球。当然,对于个人来讲,也是一种提升,就我而言,我之前在社区讨论关于通讯序列化方案的想法,我们的导师,[吴晟老师](https://github.com/wu-sheng)问我,为什么不选择protobuf呢,我以前的认知,只体现在一个很片面的范围内,但是吴晟老师从更高层次回答了我所谓的protobuf鸡肋的地方,这确实打开了我的视野。感兴趣的可以去搜邮件列表,我所想要表达的是,开源是一个全球的舞台,会有各种不同的人进来参与,也正是由于这样,你的提升才会更大,因为你不再停留在原有的圈子原有的认知去思考,你会接受各种各样的人来进行review(不仅仅是code,同样包括一些设计等等),这种过程其实也是在逐渐拓宽自己的专业领域与认知。 + +### DolphinScheduler微内核插件化设计 + +项目的推进导致架构的变化,捐给Apache之后,意味着你要面向全球的用户,不同的用户对于不同场景的需求是不同的,我们更希望的是DolphinScheduler作为一个基础设施提供给用户,给用户提供强大的扩展能力,用户在DolphinScheduler这个平台上去快速扩充自己的功能。 + +在2020年(近期会发版),[高俊老师](https://github.com/gaojun2048)提出了微内核插件化的架构设计,拿alert来讲,我们alert发版后是支持五种告警方式,这能够满足绝大多数用户的一个需求,但依然有一些需求是没办法满足的,这个时候用户想要自己实现其实很简单,他不需要系统的去了解DolphinScheduler的整个架构,只需要关注alert的扩展接口,对于其他功能来讲是完全隔离的(这也意味着你降低了污染传递,当你的模块出现问题的时候,你不会过多影响其他模块,甚至你可以完全移除你自己的插件),这对于用户来讲,理解成本更低、开发成本测试成本同样更低,对于贡献者来讲亦是如此,降低贡献者门槛,才能使得一个项目走的更远,曲高和寡,对于开源项目来讲同样如此,DolphinScheduler社区目前有很多其他社区的贡献者,比如SkyWalking、ShardingSphere、Dubbo、TubeMq等,调度系统更是与其他大数据生态紧密结合,我们也是希望,通过微内核插件化的方式,使得各个领域的专家都可以以最低成本的贡献进来。 + +### 开源的乐趣 + + +[姜宁老师](https://github.com/WillemJiang)讲,开源社区其实是一帮对的人才能够聚在一起,这种过程会让你很享受,我之前收到过一封邮件,是一个印度贡献者的,我merge了他参与Apache DolphinScheduler的第一个PR,他写了大概几百字的一封邮件,表达对于开源的向往以及询问我后续参与贡献的一个途径,我不太确定这是否会导致他从此踏上开源这条路,成为一个深度贡献者,但至少对于他来讲,这一刻他有了深度参与的一个想法,我当时也是因为首次贡献被merge之后于是踏上了开源这条路,我至今依然记得我对于Apache的第一个PR,虽然小,甚至从今天看来,那可能是我贡献的PR中最微不足道的一个,但对于我来讲,它为我打开了一扇门,所以其实到今天,我很乐意给那些初次贡献的贡献者提供深度的一个帮助,帮他们认识开源、走进开源。曾经有人为我打开了一扇门,那我希望我能够给更多的人提供走进这扇门的一个帮助,这可能也是一种属于开源人的传承(BTW,强烈推荐[ALC BeiJing](https://github.com/alc-beijing))。 + +马斯洛需求层次理论中讲到人的高级需求,其实对我来讲,通过DolphinScheduler,我达到了自我实现与尊重。 + +当我写的代码,会运行在数万台服务器上,影响几亿的用户,我也是第一次感觉作为个体和这个世界有了更加紧密的一个联系,这种内心的成就感是非常高的。 + +当我看到被我merge代码的同学发朋友圈或者邮件的时候,我内心其实也是非常愉快的,我老板说:优秀的人成就自己,卓越的人成就他人,我可能不是很优秀的人,但如果能够从一件小事上影响到别人,对于我来讲,我也是很愉悦的(成年人的快乐有时候就这么简单)。 + + +### 尾篇 致下一个贡献者的你 + +[大侠](https://github.com/William-GuoWei)在ALC Beijing-开源到底有多难中以[开源,不是天才的甜点,而是勤奋者的盛宴](https://zhuanlan.zhihu.com/p/208577284)为题的分享有几句话是比较触动我的 +``` +“中国没有开源”这个观点我是不愿意相信的。我相信这一代年轻人,不仅仅是程序猿,而是越来越多的人,愿意参加到各行各业的非盈利团体当中去,贡献自己的想法、代码、知识,让这个世界变得更加美好。 + + + +我相信哪怕我们这一代人看不到开源的春天,我们的下一代人也不应该再看到开源的“雾霾天”。于是我们就积攒了更多的力量,筹备了一年,把我们自己内部使用的一个产品 — Dolphin Scheduler 进行了开源。 +``` +我身边参与开源的人其实蛮多的,但倘若放到整个公司来讲,其实也并不多,上家公司,产研三四百多人,但是是Apache commiter或者PMC的仅仅只有三人,然而我们整个基础设施一大半是在开源软件的基础上进行开发的(其中一大半是ASF的),对于所使用到的开源项目,我们基本都是内部单独维护了一个分支,这样做当然有好处,我们可以跑的很快,有什么问题可以很快修复,但是很少有人会把这些贡献给上游,最终结果导致和上游差异过大,彻底和社区脱节。大家的现状是很忙,没有时间思考,大多数人不断的掉进坑里面再爬出来,但如果每个人都做出一点点努力,那么这样其实成本是最少的。你贡献一点,他贡献一点,那么其实我们的工作量会减少很多,因为社区帮你做了。这也是开源的力量,还是回到那句话,一个人可以走的很快,但一群人可以走得很远。 + + +熟悉吴晟老师的人都知道吴晟老师喜欢用『各怀鬼胎』来形容开源社区,我想说的是,无论你怀有什么样的心思(又或者仅仅是单纯的喜欢开源),透过开源确实可以帮你达到一些需求的满足,无论是一份光鲜的履历,或者一份 good job,或者隐形的人脉、技术实力的提升、多一点谈资等等。但这个前提是你去参与,去贡献。(BTW,我本人其实也是开源的受益者,因为参与开源,我有幸加入了易观,大多数企业对于开源贡献者还是比较友好的,吴晟老师的一次[分享](https://www.bilibili.com/video/BV17Q4y1N7iA),有数据显示:87%的雇主希望招聘到具备开源能力的员工,而55%的开源业内人士表示他们可以轻松地找到一份新工作。) + +中国并不缺乏优秀的工程师,缺乏的仅仅是如何正确的认识开源,参与开源。今天的中国开源其实已经非常好了,有很多前辈以及组织在开源这个领域为我们进行铺路布道,比如开源社、ALC Beijing等,我们所缺少的,仅仅是大家的参与。有一句很老套的话:如果不是现在,那是什么时候?如果不是你,那会是谁?我是[CalvinKirs](https://github.com/CalvinKirs),我在[DolphinScheduler](https://github.com/apache/incubator-dolphinscheduler)社区等你。 + + + + + -- Gitee