关于 Apache DolphinScheduler社区

Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache 孵化器,社区发展非常迅速,目前已有 400+ 公司在生产上使用,代码+文档贡献者近200位,社区用户4000 +人。DolphinScheduler (简称DS) 致力于使大数据任务调度开箱即用,它以拖拉拽的可视化方式将各种任务间的关系组装成 DAG(有向无环图),并实时监控整个数据pipeline的运行状态,同时支持失败重试、重跑、恢复失败、补数等大数据常用操作

DolphinScheduler解决的问题

主人翁介绍

hello,大家好,我是郭强,目前是Apache DolphinScheduler的Commiter。擅长大数据olap、大数据调度、RPC开发等。目前专注于大数据领域核心技术研发。
我也是一名开源爱好者,我要讲的是我从起始给 DolphinScheduler 做贡献到近期加入到易观数科大家庭的故事

遇见DolphinScheduler

我是一个有开源情节的人,开源以不同的方式陪伴了我相当长的一段时间,同样也给我带来了一些比较大的改变。

我个人接触的开源项目是比较多的,但是深度贡献的并不多,也是一个偶然的契机接触到DolphinScheduler,从此开始了深度贡献。

选择对味的社区其实很重要,如同恋爱一般,总需要几个回合摸索试探才能决定是否合适,DolphinScheduler社区给我的一个最大的感受就是足够包容,我不认同你,但是我支持你。这是dailidong给我的一个最直观的感受,你的想法不成熟的时候,作为PPMC,他需要对社区负责,他可能不是很认同,但是他支持你去完善去佐证,这个过程中也是很感谢社区的一些其他伙伴,qiaozhanweiTboygaojun2048,lgcarrer(license的大佬)、lenboo(核心流程找他就对了)等,一开始我总有种人微言轻的感觉,一般都处在旁听的状态,毕竟这些贡献者基本上都是各大公司的精英人物。后来发现是我多虑了,大神们其实非常平易近人。也是因为这些人,让我喜欢上DolphinScheduler社区。

社区带给我的影响

随着社区的发展,越来越多同学的加入,我们可能(甚至是必然)会在一些设计上存在一些不同的意见,但这其实也是开源的魅力,对于社区来讲,也是一种好事,不同思想的碰撞才会导致设计趋近于更加完善。也只有这样,DolphinScheduler才能更好走向全球。当然,对于个人来讲,也是一种提升,就我而言,我之前在社区讨论关于通讯序列化方案的想法,我们的导师,吴晟老师问我,为什么不选择protobuf呢,我以前的认知,只体现在一个很片面的范围内,但是吴晟老师从更高层次回答了我所谓的protobuf鸡肋的地方,这确实打开了我的视野。感兴趣的可以去搜邮件列表,我所想要表达的是,开源是一个全球的舞台,会有各种不同的人进来参与,也正是由于这样,你的提升才会更大,因为你不再停留在原有的圈子原有的认知去思考,你会接受各种各样的人来进行review(不仅仅是code,同样包括一些设计等等),这种过程其实也是在逐渐拓宽自己的专业领域与认知。

DolphinScheduler微内核插件化设计

项目的推进导致架构的变化,捐给Apache之后,意味着你要面向全球的用户,不同的用户对于不同场景的需求是不同的,我们更希望的是DolphinScheduler作为一个基础设施提供给用户,给用户提供强大的扩展能力,用户在DolphinScheduler这个平台上去快速扩充自己的功能。

在2020年(近期会发版),高俊老师提出了微内核插件化的架构设计,拿alert来讲,我们alert发版后是支持五种告警方式,这能够满足绝大多数用户的一个需求,但依然有一些需求是没办法满足的,这个时候用户想要自己实现其实很简单,他不需要系统的去了解DolphinScheduler的整个架构,只需要关注alert的扩展接口,对于其他功能来讲是完全隔离的(这也意味着你降低了污染传递,当你的模块出现问题的时候,你不会过多影响其他模块,甚至你可以完全移除你自己的插件),这对于用户来讲,理解成本更低、开发成本测试成本同样更低,对于贡献者来讲亦是如此,降低贡献者门槛,才能使得一个项目走的更远,曲高和寡,对于开源项目来讲同样如此,DolphinScheduler社区目前有很多其他社区的贡献者,比如SkyWalking、ShardingSphere、Dubbo、TubeMq等,调度系统更是与其他大数据生态紧密结合,我们也是希望,通过微内核插件化的方式,使得各个领域的专家都可以以最低成本的贡献进来。

开源的乐趣

姜宁老师讲,开源社区其实是一帮对的人才能够聚在一起,这种过程会让你很享受,我之前收到过一封邮件,是一个印度贡献者的,我merge了他参与Apache DolphinScheduler的第一个PR,他写了大概几百字的一封邮件,表达对于开源的向往以及询问我后续参与贡献的一个途径,我不太确定这是否会导致他从此踏上开源这条路,成为一个深度贡献者,但至少对于他来讲,这一刻他有了深度参与的一个想法,我当时也是因为首次贡献被merge之后于是踏上了开源这条路,我至今依然记得我对于Apache的第一个PR,虽然小,甚至从今天看来,那可能是我贡献的PR中最微不足道的一个,但对于我来讲,它为我打开了一扇门,所以其实到今天,我很乐意给那些初次贡献的贡献者提供深度的一个帮助,帮他们认识开源、走进开源。曾经有人为我打开了一扇门,那我希望我能够给更多人的人提供走进这扇门的一个帮助,这可能也是一种属于开源人的传承(BTW,强烈推荐ALC BeiJing)。

马斯洛需求层次理论中讲到人的高级需求,其实对我来讲,通过DolphinScheduler,我达到了自我实现与尊重。

当我写的代码,会运行在数万台服务器上,影响几亿的用户,我也是第一次感觉作为个体和这个世界有了更加紧密的一个联系,这种内心的成就感是非常高的。

当我看到被我merge代码的同学发朋友圈或者邮件的时候,我内心其实也是非常愉快的,我老板说:优秀的人成就自己,卓越的人成就他人,我可能不是很优秀的人,但如果能够从一件小事上影响到别人,对于我来讲,我也是很愉悦的(成年人的快乐有时候就这么简单)。

尾篇 致下一个贡献者的你

大侠在ALC Beijing-开源到底有多难中以开源,不是天才的甜点,而是勤奋者的盛宴为题的分享有几句话是比较触动我的

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

我相信哪怕我们这一代人看不到开源的春天,我们的下一代人也不应该再看到开源的“雾霾天”。于是我们就积攒了更多的力量,筹备了一年,把我们自己内部使用的一个产品 — DolphinScheduler 进行了开源。

我身边参与开源的人其实蛮多的,但倘若放到整个公司来讲,其实也并不多,上家公司,产研三四百多人,但是是Apache commiter或者PMC的仅仅只有三人,然而我们整个基础设施一大半是在开源软件的基础上进行开发的(其中一大半是ASF的),对于所使用到的开源项目,我们基本都是内部单独维护了一个分支,这样做当然有好处,我们可以跑的很快,有什么问题可以很快修复,但是很少有人会把这些贡献给上游,最终结果导致和上游差异过大,彻底和社区脱节。大家的现状是很忙,没有时间思考,大多数人不断的掉进坑里面再爬出来,但如果每个人都做出一点点努力,那么这样其实成本是最少的。你贡献一点,他贡献一点,那么其实我们的工作量会减少很多,因为社区帮你做了。这也是开源的力量,还是回到那句话,一个人可以走的很快,但一群人可以走得很远。

熟悉吴晟老师的人都知道吴晟老师喜欢用『各怀鬼胎』来形容开源社区,我想说的是,无论你怀有什么样的心思(又或者仅仅是单纯的喜欢开源),透过开源确实可以帮你达到一些需求的满足,无论是一份光鲜的履历,或者一份 good job,或者隐形的人脉、技术实力的提升、多一点谈资等等。但这个前提是你去参与,去贡献。(BTW,我本人其实也是开源的受益者,因为参与开源,我有幸加入了易观,大多数企业对于开源贡献者还是比较友好的,吴晟老师的一次分享,有数据显示:87%的雇主希望招聘到具备开源能力的员工,而55%的开源业内人士表示他们可以轻松地找到一份新工作。)

中国并不缺乏优秀的工程师,缺乏的仅仅是如何正确的认识开源,参与开源。今天的中国开源其实已经非常好了,有很多前辈以及组织在开源这个领域为我们进行铺路布道,比如开源社、ALC Beijing等,我们所缺少的,仅仅是大家的参与。有一句很老套的话:如果不是现在,那是什么时候?如果不是你,那会是谁?我是CalvinKirs,我在DolphinScheduler社区等你。

Apache DolphinScheduler之最美好的遇见的更多相关文章

  1. 论语音社交视频直播平台与 Apache DolphinScheduler 的适配度有多高

    在 Apache DolphinScheduler& Apache ShenYu(Incubating) Meetup 上,YY 直播 软件工程师 袁丙泽 为我们分享了<YY直播基于Ap ...

  2. Apache DolphinScheduler(海豚调度) - 1.3 系列核心表结构剖析

    Apache DolphinScheduler 是一个分布式去中心化,易扩展的可视化 DAG 工作流任务调度系统.致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用. 近日 ...

  3. 本周六 Apache DolphinScheduler & Doris 将联合线上 Meetup

    活动背景 2020年,大数据成为国家基建的一个重要组成,大数据在越来越多的领域展现威力.随着大数据的应用场景越来越多,大家对数据的响应速度和数据加工工作流的方便程度也提出了更高的要求.在这种背景下,相 ...

  4. Apache DolphinScheduler新一代分布式工作流任务调度平台实战-上

    概述 定义 dolphinscheduler 官网地址 https://dolphinscheduler.apache.org/ dolphinscheduler GitHub地址 https://g ...

  5. Apache DolphinScheduler 3.0.0 正式版发布!

    ​  点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler   ​ 版本发布 2022/8/10 2022 年 8 ...

  6. 日均 6000+ 实例,TB 级数据流量,Apache DolphinScheduler 如何做联通医疗大数据平台的“顶梁柱”?

    作者 | 胡泽康 鄞乐炜 作者简介 胡泽康 联通(广东)产业互联网公司  大数据工程师,专注于开源大数据领域,从事大数据平台研发工作 鄞乐炜 联通(广东)产业互联网公司 大数据工程师,主要从事大数据平 ...

  7. 数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践

    Fordeal的数据平台调度系统之前是基于Azkaban进行二次开发的,但是在用户层面.技术层面都存在一些痛点问题难以被解决.比如在用户层面缺少任务可视化编辑界面.补数等必要功能,导致用户上手难体验差 ...

  8. 倒计时2日!基于 Apache DolphinScheduler&TiDB 的交叉开发实践,从编写到调度让你大幅提升效率

    当大数据挖掘成为企业赖以生存.发展乃至转型的生命,如何找到一款好软件帮助企业满足需求,成为了许多大数据工程师困扰的问题.但在当下高速发展的大数据领域,光是一款好软件似乎都不足以满足所有场景业务需求,许 ...

  9. 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k

    本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ...

随机推荐

  1. cut-列过滤

    列过滤命令. 语法 cut [选项] 要过滤的字符串 选项 -f 以字段为单位进行分割 -c 以字符为单位进行分割 -b 以字节为单位进行分割 -d 以分割符为单位进行分割,分隔符可以是"冒 ...

  2. 第31章 Spring bean 作用域

    每日一句 I must say a word about fear. It is life's only true opponent. Only fear can defeat life. 这里必须说 ...

  3. Tmux终端复用神器使用心得

    tmux在连接远程服务器做实验时很有帮助,可以为每一个项目设置一个Session,在Session中设置不同的Window同时跑多个实验,Window本身还可以分割为多个Pane,在一个视野内利用多个 ...

  4. SmartIDE v0.1.18 已经发布 - 助力阿里国产IDE OpenSumi 插件安装提速10倍、Dapr和Jupyter支持、CLI k8s支持

    SmartIDE v0.1.18 (cli build 3538) 已经发布,在过去的Sprint 18中,我们集中精力推进对 k8s 远程工作区 的支持,同时继续扩展SmartIDE对不同技术栈的支 ...

  5. uniapp小程序webSocket封装使用

    目录 1,前言 2,代码实现 3,使用 3.1,初始化 3.2,发送消息 3.3,接收消息 1,前言 最近在做IOT的项目,里面有个小程序要用到webSocket,借这个机会,封装了一个uniapp小 ...

  6. 【算法】Floyd算法

    什么是Floyd Floyd用于求最短路程.举个栗子,给你一张图,让你求出点[1]到点[5]的最短路程,你会怎么求? (画图工具:CS Academy) 如上图,有向边分别是 1->2  1-& ...

  7. STM32内存知识

    在了解STM32内存之前需要了解 MCU 的型号和MDK 中的.map 文件,很多刚学习 stm32 时都不会过多的去了解 MCU 的选型,是在太枯燥了.这里在从新了解一下,久了就熟悉了. 一.STM ...

  8. Eureka属性配置

    一:Eureka Instance实例信息配置   里面的配置以"-"隔开 其实也支持驼峰命名代替"-" 首先是入门时的配置: server: port: 80 ...

  9. Puppeteer学习笔记 (2)- Puppeteer的安装

    本文链接:https://www.cnblogs.com/hchengmx/p/11009849.html 1. node的下载安装 由于puppeteer是nodejs的一个库,所以首先需要安装no ...

  10. Lucene从入门到实战

    Lucene 在了解Lucene之前,我们先了解下全文数据查询. 全文数据查询 我们的数据一般分为两种:结构化数据和非结构化数据 结构化数据:有固定格式或有限长度的数据,如数据库中的数据.元数据 非结 ...