非常欢迎大家来到Apache DolphinScheduler社区!随着开源技术在全球范围内的快速发展,社区的贡献者 “同仁” 一直致力于构建一个强大而活跃的开源调度系统社区,为用户提供高效、可靠的任务调度和工作流管理解决方案。

在过去的一段时间里,我们取得了一些重要的成就,但我们的愿景远未实现。为了更好地满足用户需求和推动项目的发展,我们在2024 新春伊始,制定了以下Roadmap,将在未来的版本中实现一系列激动人心的功能和改进。

当前社区状态

2024 年 roadmap 有两个来源,部分是来自 2023 年发起但是没有开始实施,或者实施了部分的议题,另一部分是最新新增的议题。2024 年 roadmap 可以分成如下几个部分

云原生相关: 我们希望增加 K8S executor 复用 K8S 提供的能力做弹性资源管理、监控和失败重试等

任务插件增强: 我们收到了用户关于任务插件的诉求,将会进一步支持 streaming 类型的任务、trigger 类型插件等,除此之外,我们还希望统一在worker 和master 中运行的任务、以及为任务插件增加生命周期的接口。于此同时我们会持续关注动态任务组件的功能,希望以后可以对任务组件单独发版保证迭代频率

DataOps 相关:希望引入 data ops 相关功能,通过集成 git 供应商来实现 git ops,最终实现工作流 CICD

测试: 我们会继续完善和增加项目单元测试覆盖率,并且逐步补充 API 部分的测试

其他优化:引入工作流事件触发功能;优化审计日志

云原生相关

我们希望引入 K8S executor 作为 dispatcher 将 dolphinscheduler 的任务分发到 K8S 中,K8S executor 的好处是我们可以有更高的资源利用率;沿用 K8S 的监控机制,实现 pod level 的监控;沿用 pod 容错做任务容错。

这个设计的核心是将executor 的抽象出来变成可配置的, 用户可以选择 K8S 或者非 K8S 的 executor,如果选择 K8S executor ,dolphinscheduler 会将任务提交到 K8S API server ,每个任务启动一个 worker,运行一个 pod。这一点的好处是 worker 不是一个长期运行的资源,而是仅当有任务的时候才需要启动。当业务低谷的时候,我们有空运行的worker 来等待任务运行。

详情请看链接:https://github.com/apache/dolphinscheduler/issues/13316

任务插件增强

streaming 任务类型增强

2023年 dolphinscheduler 社区增加了 streaming 任务类型的支持,但是是使用shell 提交 flink 任务,一经推出收获了不少用户。当时实现的是一个简单版本,想看看用户反馈,开发者在开发过程,以及用户的使用中发现了部分可优化项。这部分优化项目我们希望能在 2024 年有部分进展,其中包括

  • 使用 flink sdk 去创建和提交任务,目前的 shell 方式提交不能很好的监控和处理运行中的任务,使用 sdk 可以有更多功能的支持,详情请看链接: https://github.com/apache/dolphinscheduler/issues/11440
  • 支持 flink sql
  • 增加 flink 的指标
  • 增加 checkpoints savepoint 管理,保证任务失败重试等异常情况能继续执行

详情请查看 https://github.com/apache/dolphinscheduler/issues/11352

动态任务组件 & 任务单独发版

这个任务是引入动态任务组件的概念,将任务组件的参数通过后端定义,然后在前端渲染,希望通过这样方法化简任务组件的开发流程,在参数的输入类型没有新增的情况下,可以不修改或者少修改前端代码而实现任务组件的新增和修改。

详情请看链接:https://github.com/apache/dolphinscheduler/issues/12526

同时这个任务也是我们将任务插件单独发版的前置任务,任务插件单独发版也是非常重要的功能,实现了这个功能后,我们可以加快任务插件的发版频率,保证用户使用的是功能丰富、最新的任务插件。例如我们有一个新的任务插件 A ,这个插件在昨天被 merge 到 dev 分支,那么我们今天就能安排这个插件的发版。又例如我们发现了已经发版的任务插件 B 有比较严重的 bug,在 这个bug 被 fix 后,我们就能安排插件的bugfix 版本发版。

这个任务已经实现了已经简单的demo,详情请看链接: https://github.com/apache/dolphinscheduler/issues/12526

任务插件生命周期管理

为任务插件增加 close 方法从而更好的管理任务插件,特别是需要关闭资源的的任务组件,如数据库、云计算资源任务等。我们目前为任务插件定义了 init、handle、cancel 等方法,对于关闭资源的方法都是在任务中单独实现的,所以希望抽象一个 close 方法统一处理需要关闭资源的任务。

详情请看链接: https://github.com/apache/dolphinscheduler/issues/14877

统一 worker 和逻辑任务

dolphinscheduler 现在有两个类型的任务 spi,分别是 worker 任务和逻辑任务,这两种任务类型分别是运行在 worker 上的,以及运行在 master 上的。不同的 spi 导致两种任务有不同的生命周期管理,并且不利于后面动态任务组件的实现,所以需要将两种任务尽可能弄成统一spi。

详情请看链接: https://github.com/apache/dolphinscheduler/issues/14823

Git Ops

dolphinscheduler 在处理生产和开发环境的时候,只能通过json导入导出来实现,社区部分伙伴建议我们可以使用 gitops 方法论来实现开发到生产环境的部署。GitOps 是一种基于版本控制系统的持续交付和基础设施管理的方法。它的核心理念是将整个系统的状态和配置存储在版本控制库中,通过Git的特性实现对系统的自动化管理和持续交付。

gitops 支持

希望将工作流相关资源的校验、工作流部署到生产环境的功能集成到 dolphinscheduler 中,集成之后只需要在 dolphinscheduler 配置 git 供应商的 url 和鉴权信息,就能在远程仓库中有新的push 事件后,立马触发工作流的更新操作,从而保证生产中的工作流和远端 git 供应商的定义是一样的,实现客户的 cicd ,保证流程简单便捷

测试

测试对于开源软件至关重要,它不仅确保软件质量和稳定性,还提高了用户体验。通过全面的测试,可以及时发现和修复潜在的问题,增强软件的可靠性。测试也是保证新功能引入不破坏现有功能的关键,为开源项目的可持续发展提供了坚实的基础。dolphinscheduler 社区从 2023 年一直在努力提高测试覆盖度、并做了优化让贡献者更加方便的写测试,但是测试的增强是一个长期的工作,2024 年我们会坚持这部分内容

API 测试

在 api 层面的测试,确保我们核心的 api 接口能正常运行。当被 api 测试覆盖的接口,可以确保每次提交新代码时,API 接口逻辑和依赖关系都正确,不会破坏之前已有的功能。补充缺失的单元测试,确保接口与接口之间的连接性。dolphinscheduler 社区在 2023 年已经启动 api 测试的补充,目前部分核心接口已经覆盖,希望在 2024 年将尽可能多的 api 接口进行覆盖。

详情请看链接: https://github.com/apache/dolphinscheduler/issues/10411

UT 增强

单元测试对比 API 测试是粒度更加小的,他能保证部分代码块如预期般工作,在此之前我们升级到了 junit5,并且增加了worker 部分的测试覆盖率,与 api 测试一样的是,这是一个长期的工作,同时需要更多有激情的贡献者参与到该功能的建设中。

详情请看链接: https://github.com/apache/dolphinscheduler/issues/10573

其他优化

工作流 trigger 支持

引入 trigger 插件实现事件触发,目前我们工作流的启动方式有两种,用户手动触发;定时触发。事件触发是希望增加其中的范围,让工作流可以被更多的事件触发。目前打算支持的事件包括

  • 定时触发: 目前已经有的触发方式
  • 消息队列触发:通过消息监听消息队列的方式触发工作流
  • HTTP、TCP、SMTP 触发:通过监听HTTP、TCP、SMTP特定事件触发工作流

详情请看链接: https://github.com/apache/dolphinscheduler/issues/15330

审计日志增强

Apache Dolphinscheduler 会在 2024 年增加更多的审计日志相关的功能,保证将用户对资源的操作能记录下来,这里的资源包括项目、工作流、任务、资源中心文件、udf、数据源等在 dolphinscheduler 中会被创建、修改、删除、更新的资源。

我们目前打算通过 AOP 的方式实现这个功能,实现了审计日志后,用户可以更好的查看资源创建情况,当出现意外情况时及时通过审计日志发现历史操作。

目前有一个 PR 初步实现了这个功能,详情请看链接: https://github.com/apache/dolphinscheduler/issues/15423

随着这份路线图的实施,Apache DolphinScheduler社区将持续优化和扩展我们的调度系统,为用户提供更加强大、灵活和高效的解决方案。

我们相信,通过社区成员的共同努力和用户的积极反馈,Apache DolphinScheduler将继续领跑开源调度和工作流管理领域,为企业和开发者带来更多的价值和可能性。让我们携手并进,共同见证Apache DolphinScheduler的蓬勃发展和创新旅程。

本文由 白鲸开源 提供发布支持!

2024年Apache DolphinScheduler RoadMap:引领开源调度系统的未来的更多相关文章

  1. Hadoop 开源调度系统zeus(二)

    紧跟之前Hadoop 开源调度系统zeus(一) 本节主要介绍一下zeus的架构: 先给一个zeus的架构图 无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一 ...

  2. 【Meetup回顾】Apache DolphinScheduler在联通的实践和二次开发经验分享

    在由 openLooKeng 社区主办,Apahce DolphinScheduler社区.Apache Pulsar 社区.示说网协办的联合 Meetup 上,来自联通数字科技的王兴杰老师分享了Do ...

  3. 金灿灿的季节 - Apache DolphinScheduler收获5位新Committer

    在这个金灿灿的收获季节,经过 Apache DolphinScheduler PPMC 们的推荐和投票,Apache DolphinScheduler 收获了 5 位新Committer .他们是:n ...

  4. Apache DolphinScheduler 迎来 2 位 PPMC

    经过 Apache DolphinScheduler PPMC 们的推荐和投票,我们高兴的宣布:Apache DolphinScheduler 迎来了 2 位 PPMC .他们是(github id) ...

  5. 金秋十月 - Apache DolphinScheduler 收获 2 位新 Committer

    点击上方蓝字关注 Apache DolphinScheduler Apache DolphinScheduler(incubating),简称"DS", 中文名 "海豚调 ...

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

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

  7. 大数据平台迁移实践 | Apache DolphinScheduler 在当贝大数据环境中的应用

    大家下午好,我是来自当贝网络科技大数据平台的基础开发工程师 王昱翔,感谢社区的邀请来参与这次分享,关于 Apache DolphinScheduler 在当贝网络科技大数据环境中的应用. 本次演讲主要 ...

  8. 杭州思科对 Apache DolphinScheduler Alert 模块的改造

    杭州思科已经将 Apache DolphinScheduler 引入公司自建的大数据平台.目前,杭州思科大数据工程师 李庆旺 负责 Alert 模块的改造已基本完成,以更完善的 Alert 模块适应实 ...

  9. Apache DolphinScheduler 1.3.9 发布,新增 StandaloneServer

    点击上方 蓝字关注我们 2021 年 10 月 22 日,Apache DolphinScheduler 正式发布 1.3.9 版本.时隔一个半月,在社区贡献者的共同努力下,Apache Dolphi ...

  10. 我在Apache DolphinScheduler的心路历练

    摘要:Apache DolphinScheduler 目前是 Apache 孵化项目,目前正在快速发展中.加入Apache DolphinScheduler社区已一年多,已有 400+ 公司在生产上使 ...

随机推荐

  1. python 日志写入文件,参数说明及动态判断文件是创建还是追加

    import logging import os ''' 格式符 含义 %(levername)s 日志级别名称 %(pathname)s 当前执行程序的路径(即脚本所在的位置) %(filename ...

  2. 【Playwright+Python】系列教程(一)环境搭建及脚本录制

    前言 看到这个文章,有的同学会说: 六哥,你为啥不早早就写完python系列的文章. 因为有徒弟需要吧,如果你也想学自学,那这篇文章,可以说是我们结缘一起学习的开始吧! 如果对你有用,建议收藏和转发! ...

  3. sqlUtil

    package com.cmbchina.monitor.utils;import com.alibaba.druid.sql.ast.SQLStatement;import com.alibaba. ...

  4. 小白也能懂的Mysql数据库索引详解

    核心概念 主键索引/二级索引 聚簇索引/非聚簇索引 回表/索引覆盖 索引下推 联合索引/最左联合匹配 前缀索引 explain 一.[索引定义] 1.索引定义 在数据之外,数据库系统还维护着满足特定查 ...

  5. 缺氧debu模式

    OxygenNotIncluded_Data(E:\SteamLibrary\steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data) 文件 ...

  6. 快速调用 GLM-4-9B-Chat 语言模型

    一.确认本机显卡配置 二.下载大模型 国内可以从魔搭社区下载, 下载地址:https://modelscope.cn/models/ZhipuAI/glm-4-9b-chat/files 三.运行官方 ...

  7. 实测分享,瑞芯微RK3588八核国产处理器性能测评!确实“遥遥领先”!

    RK3588处理器优势 RK3588是瑞芯微最新一代旗舰工业处理器,它具有如下卓越优势: 超强运算能力:四核ARM Cortex-A76@2.4GHz + 四核ARM Cortex-A55@1.8GH ...

  8. SpringBoot集成Mongodb文档数据库

    添加Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  9. Vue源码剖析

    目录 Vue 响应式数据 Vue 中如何进行依赖收集 Vue 中模板编译原理 Vue 生命周期钩子 Vue 组件 data 为什么必须是个函数? nextTick 原理 set 方法实现原理 虚拟 d ...

  10. <script> 和 <script setup> 的一些主要差别

    <script setup> 是 Vue 3 中的新特性,它是一种简化和更具声明性的语法,用于编写组件的逻辑部分.相比之下,<script> 是 Vue 2 中常用的编写组件逻 ...