关于数据库:2024年Apache-DolphinScheduler-RoadMap引领开源调度系统的未来

128次阅读

共计 4065 个字符,预计需要花费 11 分钟才能阅读完成。

十分欢送大家来到 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 的蓬勃发展和翻新旅程。

 

本文由 白鲸开源科技 提供公布反对!

正文完
 0