开源有魔力 - 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开源协议是一个给于使用者很大自由的协议.基本上使用者可 ...
随机推荐
- Hadoop——API操作
代码示例: package com.atguigu.hdfs; import org.apache.hadoop.conf.Configuration; import org.apache.hadoo ...
- python之loggin模块与第三方模块
目录 logging模块详解 第三方模块 openpyxl模块 logging模块详解 主要组成部分 logger对象,用于产生日志 # 第一步,创建logger对象 logger = logging ...
- RabbitMQ消息可靠性、死信交换机、消息堆积问题
目录 消息可靠性 生产者消息确认 示例 消费者消息确认 示例 死信交换机 例子 高可用问题 消息堆积问题 惰性队列 参考 消息可靠性 确保消息至少被消费了一次(不丢失) 消息丢失的几种情况: 消息在网 ...
- 低代码前景可期,JNPF灵活易用,用智能定义新型办公模式
JNPF是引迈信息从事多年软件研发和产品服务的一次时代性的技术革新产物,是集SaaS服务.工作流引擎.一站式低代码开发.支持多端使用于一体的快速开发平台. 强大易用 JNPF将 Excel. Acce ...
- 【clickhouse专栏】数据库、数据仓库之间的区别与联系
从本篇文章开始,笔者打算写一个系列的<clickhouse专栏>,其全称是Click Stream,Data WareHouse,简称ClickHouse.从其全称中的"Data ...
- Dubbo的基本使用
Dubbo分为提供者和消费方 并且两者都要注册到ZK上 提供者 注解 @Service 这是dubbo包下的 消费组 注解 @Reference 远程注入 第一步导入依赖 <! ...
- 蓝牙、WiFi、ZigBee三大无线通信技术协议模块哪一个是最好的?
曾经,在2015年极客公园创新大会上,小米首次在非官方平台发布了新款产品小米智能家庭套装.自此,Zigbee便常出现在大众视野中. 如今,小米在IoT物联网应用开发者平台上明确说明,不再推广Zigbe ...
- MySQL-1-概念
数据库相关概念 DB:数据库(database):存储数据的"仓库".它保存了一系列有组织的数据 DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据 SQL: ...
- 你真的懂Python命名吗?
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/7417a7f0.html 大家好,我是测试蔡坨坨. 今天,我们来聊一下Python命名那些事儿. 名为万物之始,万物始于无名 ...
- Java判断字符串是否为金额
public static void main(String[] args) { String aa = "5632.2"; //小数点前后是数字即可,无小数点后数据也ok Sys ...