开源有魔力 - DolphinScheduler 的 Apache 之路
关于 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 之路的更多相关文章
- 我与Apache DolphinScheduler的成长之路
关于 Apache DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache ...
- DolphinScheduler & K8s 在优路科技的实践
T 摘要 · 本文通过介绍DolphinScheduler on Kubernetes 在优路科技的实践,阐述了DolphinScheduler如何在云原生时代,更好地助力企业实现高效的数据调度解决方 ...
- 从 0 到 1:Apache APISIX 的 Apache 之路
2019 年 12 月 14 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 广州站活动,本次活动,邀请了来自Apache APISIX.又 ...
- 前端开发的使用服务器环境开源项目 D2Server 可替代Apache
推荐一个前端开发的使用服务器环境开源项目 D2Server 可替代Apache 攻欲善其事,必先利其器.前端开发,编辑器我们有了Sublime Text2,配置Server环境用……你可能会选择A ...
- 各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转
转自:各种开源协议介绍 BSD.Apache Licence.GPL V2 .GPL V3 .LGPL.MIT 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的 ...
- 四大开源协议比较:BSD、Apache、GPL、LGPL(转)
转自: 四大开源协议比较:BSD.Apache.GPL.LGPL 本文参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open S ...
- 四大开源协议比较:BSD、Apache、GPL、LGPL (转)
转自:http://www.lupaworld.com/portal.php?mod=view&aid=205552&page=all 本文参考文献:http://www.fsf.or ...
- 四大开源协议:BSD、Apache、GPL、LGPL
参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种.我 ...
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)(整理)
BSD开源协议(original BSD license.FreeBSD license.Original BSD license) BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可 ...
随机推荐
- 【leetcode】42. 接雨水
目录 题目 题解 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1 ...
- monit 配置详解(monitrc)
monitrc是Monit的主配置文件(控制文件). monitrc的内容主要分为全局(golbal)和服务(services)两个部分. 默认情况下monitrc文件在/etc/monit目录下. ...
- 白嫖Azure与体验GoLand远程开发
前言 近期因为有本地开发远程使用Linux编译部署的需求,而虚拟机的性能实在是不敢恭维,WSL的坑之前也踩过(没有systemd等),故考虑使用SSH连接云服务器开发. 目前VSCode提出了Remo ...
- GIF录制工具下载
GIF录制工具(GifCam)下载地址: https://files.cnblogs.com/files/blogs/747754/GifCam.rar
- 在Visual C++ 6.0中无法使用gets()函数的解决办法
问题 昨晚遇到一个有意思的问题,明明在Visual Studio 2019运行好好的C语言代码,Copy到Visual C++ 6.0中就无法编译通过了,错误提示信息如下: error C2143: ...
- 想知道Vue3与Vue2的区别?五千字教程助你快速上手Vue3!
从Vue3发布以来,我就一直对其非常感兴趣,就一直想着将其投入公司的生产中,但是开始考虑到很多不确定性就暂时对一些很小的功能进行一些尝试:慢慢的发现组合式Api的形式非常适合开发(个人感觉),尤其是V ...
- 『现学现忘』Docker基础 — 39、实战:自定义Tomcat9镜像
目录 1.目标 2.准备 3.编写Dockerfile文件 4.构建镜像 5.启动镜像 6.验证容器是否能够访问 7.向容器中部署WEB项目,同时验证数据卷挂载 (1)准备一个简单的WEB项目 (2) ...
- Linux远程连接工具和运行级别
常用的Linux远程连接工具: xshell MobaXterm windows的命令行工具 Linux的运行级别 linux有七个运行级别 0----所有的服务都不开启,代表的式关机 1---代表的 ...
- 阿里云有奖体验:用PolarDB-X搭建一个高可用系统
体验简介 场景将提供一台配置了CentOS 8.5操作系统和安装部署PolarDB-X集群的ECS实例(云服务器).通过本教程的操作,带您体验如何使用PolarDB-X搭建一个高可用系统,通过直接ki ...
- Leetcode 不同路径系列
Leetcode不同路径系列题解笔记 62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ). 机器人每次只能向下或者向右移动一 ...