关于 Apache DolphinScheduler社区

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

主人翁介绍

鲍亮, 易观数科大数据平台高级研发,负责平台建设工作, DolphinScheduler PPMC, 一个有梦想的程序员。

开源的思考

“What's your Legacy?” 易观的大家长Edward在一次季度总结中曾提到这样一句话,引发了我对于legacy的思考:写出一个让世界上更多人使用的软件,这也许是大多数程序员的初心和梦想,而能让这种想法实现的就是开源。站在2021年的里程碑旁回首过去,DolphinScheduler已经在这条路上奔跑了2年。就像电影里的镜头一样,阿甘坚持不懈跑步,周围聚集了越来越多的同行者,越来越多的人加入到开发者队伍中,开源的魔力正在让我们的梦想照进现实。新年伊始,我想回忆一下我们的开源之路。

2017年底,易观的千帆项目每天数百亿条数据,月活6.2亿,上万个任务需要处理近7PB的数据,用的调度系统,却年久失修,经常遇到问题就焦头烂额,对于新的需求改动也是小心翼翼,生怕不能正常运行了,所以更换调度系统也是势在必行。众所周知,互联网公司用得最多的就是开源产品,我们调研了市面上主流的开源调度,比如Oozie、Azkaban、Airflow等开源调度还有几个商业调度,均不能很好满足我们好用、易用、稳定的目标,所以站在众多开源产品的肩膀上,我们确定了以无中心为设计思想的架构。践行易观”数据能力平民化”的理念,最开始的时候我们就决定将此项目开源,故而将业务系统彻底与调度解耦,这也是最初设计的一个重要思想。

DS每个功能、每个流程的诞生都伴随着团队内的一场场激烈的思想碰撞、一次次不分昼夜的战斗。为了更快实现整个流程和验证产品的有效性,我们使用了最简单的数据库轮询方案,这也为提升并发量和减少资源消耗带来了不小的挑战,这两点和扩展性的优化也是DS将来最主要的任务。同时,也让我们认识到开源的魔力所在,只依靠一个小圈子做软件会产生局限性,有更多的开发者和思想交汇,产品才能更好得发展。

当第一个版本出来以后,产品名字确定为易调度(EasyScheduler),CTO郭大侠曾提出理念”开箱即用”,简而言之就是一个“易“字,另一方面,在易观的企业文化中,“易”也可以拆分成日月两字,象征着变化即永恒。经过一系列的测试,又历经3个月时间,终于把千帆的任务都转移到易调度里面。后面又从各大朋友圈里找了一些种子用户验证产品的功能。2019年3月,经过一系列重构,发布了第一个开源版本1.0,并在github上开放所有源代码。

开放源代码=开源?

开放源代码=开源?在了解ASF以前,我们一直都是这么认为的。但其实,我们开源的目的不仅仅是能让更多人用上好的产品,更重要的是让更多人来提高和完善这个调度系统,让它变得更易用,更好用,正所谓“独行快,众行远“。

在开放源代码以后的一段时间内,我们发现一个问题:并没有多少开发者加入,也没有新的代码和新的思想出现。后来各种不放弃的执着让我们遇到了Apache Kylin现在的PMC Chair史少锋老师和Apache CarbonData的PMC chair 陈亮老师,史老师给我们引荐了我们现在的Champion - 吴晟老师,Apache SkyWalking Founder。在一个阳光明媚的下午,吴晟老师给我们普及了apache 相关知识,为我们打开了开源世界的新大门。”Community > Code”,决策透明才能让更多人加入,进而形成一个公平、平等、精英治理的社区。我们确定了新的目标:加入apache,建立apache way的社区。

加入apache当然没有那么容易,每个人对于apache way的理解也都不一样,在对项目的重构和升级过程中,大家又加入到充满激情的战斗中,纷纷在微信群里提出很多想法,这让我们认识到以前社区没有更多的开发者和思想,是因为决策不透明。2019年8月底,经过前期准备,DS终于顺利进入孵化器,成为apache的孵化项目,也正是因为开源的魅力,在加入Apache孵化的公开邮件讨论中,DolphinScheduler也吸引了2位老外mentor,分别是Apache Druid的mentor Furkan Kamaci 和 Apache Gora(一个类似Apache HBase的列存数据库)的mentor Kevin Ratnasekera,Kevin也是本土主导的顶级开源网关项目-Apache APISIX的mentor,不知你有没有发现开源让我们彼此的距离跨越了国界,变得如此之近?

勤奋浇筑开源之路

在一年多的孵化期间,我们走过很多弯路,也学到了很多宝贵的经验,社区也取得了很大的进步。为了更好了解apache,我个人读了很多书,学习了其他项目的代码,了解了其他社区的构建方式,这让我受益匪浅。社区也是一样,从最开始的第一个版本需要4个月发出,到现在基本上每个月都会发一个版本;从最开始的不知道怎么使用邮件列表到现在的大事小情都想通过邮件列表来通知和讨论;从最开始的迷惑于license,到现在对各种license都略知一二。。。个人和社区都在不断发展,这一点正如ASF member姜宁老师的比喻:“在武林中立一个山头,带一群人成长“。每次通过邮件列表、issue、pull request的交流都像是在和不同的高手过招,在这个过程中,每个人都能学到新的招数,加深自己的内功。到目前为止,社区也贡献了很多有价值的功能,小到各种bug的fix, 大到各种重构、github action、k8s等等。

呼唤更多的Hero

从Dolphinscheduler诞生到现在,已经有150个代码贡献者和近50个文档贡献者加入我们的队伍,在“公平、开放、透明“的加持下,只要你怀有同样的“初心”,欢迎与我们同行,用开源的魔力让本土项目崛起、走向全球,让本土开源自立于世界民族之林;用开源的魔力把梦想变成现实,让自己的一行行代码、文档成为自己的骄傲!

开源有魔力 - DolphinScheduler 的 Apache 之路的更多相关文章

  1. 我与Apache DolphinScheduler的成长之路

    关于 Apache DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache ...

  2. DolphinScheduler & K8s 在优路科技的实践

    T 摘要 · 本文通过介绍DolphinScheduler on Kubernetes 在优路科技的实践,阐述了DolphinScheduler如何在云原生时代,更好地助力企业实现高效的数据调度解决方 ...

  3. 从 0 到 1:Apache APISIX 的 Apache 之路

    2019 年 12 月 14 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 广州站活动,本次活动,邀请了来自Apache APISIX.又 ...

  4. 前端开发的使用服务器环境开源项目 D2Server 可替代Apache

    推荐一个前端开发的使用服务器环境开源项目 D2Server 可替代Apache   攻欲善其事,必先利其器.前端开发,编辑器我们有了Sublime Text2,配置Server环境用……你可能会选择A ...

  5. 各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转

    转自:各种开源协议介绍 BSD.Apache Licence.GPL V2 .GPL V3 .LGPL.MIT 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的 ...

  6. 四大开源协议比较:BSD、Apache、GPL、LGPL(转)

    转自: 四大开源协议比较:BSD.Apache.GPL.LGPL 本文参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open S ...

  7. 四大开源协议比较:BSD、Apache、GPL、LGPL (转)

    转自:http://www.lupaworld.com/portal.php?mod=view&aid=205552&page=all 本文参考文献:http://www.fsf.or ...

  8. 四大开源协议:BSD、Apache、GPL、LGPL

    参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种.我 ...

  9. 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)(整理)

    BSD开源协议(original  BSD license.FreeBSD  license.Original  BSD license) BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可 ...

随机推荐

  1. 浅析 2D 组态与 2.5D 组态的区别 | 空调装配生产线与化工安全流程

    前言 为了更有效辨别 2D 与 2.5D 之间的区别,图扑软件选用 2D 空调装配生产线与 2.5D 化工厂安全流程作比较.通过自主研发的 HT 产品,采用 B/S 架构快速搭建零代码拖拽式 Web ...

  2. 深入C++03:面向对象

    面向对象 类和对象.this指针 不用做太多笔记,都可以看初识C++的笔记: 记住:声明后面都要加":",比如声明方法和变量还有class结束的地方:而实现函数出来的地方是不需要加 ...

  3. JVM学习笔记-从底层了解程序运行(一)

    1:JVM基础知识 什么是JVM 1. java虚拟机,跨语言的平台,实现java跨平台 2. 可以实现多种语言跨平台,只要该语言可以编译成.class文件 3. 解释执行.class文件 java是 ...

  4. 编写一个kubernetes controller

    Overview 根据Kuberneter文档对Controller的描述,Controller在kubernetes中是负责协调的组件,根据设计模式可知,controller会不断的你的对象(如Po ...

  5. 关于 GIN 的路由树

    GIN 是一个 golang 常用的 Web 框架,它对 API 比较友好,源码注释也很明确明确,使用起来快速灵活,还有极高的容错率.标题中的路由我们可以简单理解为在浏览器中输入的页面地址,而&quo ...

  6. CVE-2021-3156漏洞复现

    CVE-2021-3156linux sudo 权限提升 版本ubantu18.04 使用这个命令可以是普通用户直接提升至管理员权限. 手动测试终端输入 sudoedit -s / 不知道什么原因ub ...

  7. 《ECMAScript 6 入门》【二、变量的解构赋值】(持续更新中……)

    前言: 让我们看下es6的新语法解构,跟模式匹配类似.一.数组的解构赋值 举个例子给多个变量赋值的写法: var a =1;var b =2;var c =3; 需要写多个变量特别麻烦,我们先使用以前 ...

  8. 你难道不知道Vue-cookie?

    install npm install vue-cookies --save main.js import VueCookies from 'vue-cookies'Vue.use(VueCookie ...

  9. Gitlab + Gitlab runner + Window powershell

    需求说明 根据领导要求,要把python 项目移到Gitlab 进行管理,并利用Gitlab CI/CD 进行自动化测试,打包,部署.(听起来很简单吧) 比较头大,完全没有经验,python 也是刚上 ...

  10. 压测工具Apache Bench的安装与使用

    压测工具使用指南: Apache Bench 下载64位 压缩 cmd打开bin目录 使用abs.exe [option] http[s]://www.asb.com 来测试 其中option: -n ...