2024年Apache DolphinScheduler RoadMap:引領開源調度系統的未來

来源:https://www.cnblogs.com/DolphinScheduler/p/18034695
-Advertisement-
Play Games

非常歡迎大家來到Apache DolphinScheduler社區!隨著開源技術在全球範圍內的快速發展,社區的貢獻者 “同仁” 一直致力於構建一個強大而活躍的開源調度系統社區,為用戶提供高效、可靠的任務調度和工作流管理解決方案。 在過去的一段時間里,我們取得了一些重要的成就,但我們的願景遠未實現。為 ...


非常歡迎大家來到Apache DolphinScheduler社區!隨著開源技術在全球範圍內的快速發展,社區的貢獻者 “同仁” 一直致力於構建一個強大而活躍的開源調度系統社區,為用戶提供高效、可靠的任務調度和工作流管理解決方案。

file

在過去的一段時間里,我們取得了一些重要的成就,但我們的願景遠未實現。為了更好地滿足用戶需求和推動項目的發展,我們在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

file

任務插件增強

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特定事件觸發工作流

file

詳情請看鏈接: 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的蓬勃發展和創新旅程。

本文由 白鯨開源 提供發佈支持!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 概述:WPF中的資源管理機制包括外部資源、窗體資源、全局資源和動態資源。通過這些資源,開發者能夠在應用程式中有效地組織、重用樣式和模板,實現靈活的設計和運行時更改。這四種資源類型分別適用於不同的應用場景,為WPF應用程式提供了強大的擴展性和可維護性。 在WPF(Windows Presentatio ...
  • 在經過漫長的技術沉澱,終於又為 .Net 及 .Net Core 的微服務系列框架貢獻當中的一個重要組件。Taurus.DistributedLock is a distributed lock for .net or .net core.【支持:Redis、MemCache、Database、Lo... ...
  • PART_LeftThumb_DragDelta事件是拖拽過程中實時觸發的。當用戶按住Thumb控制項並拖動時,該事件會在每次滑鼠或手指移動時實時觸發,而不是按照時間間隔定時觸發。這使得應用程式可以實時響應用戶的操作,更新UI或執行其他操作。 DragDeltaEventArgs.Horizontal ...
  • 在日常開發中,DataGrid作為二維表格,非常適合數據的展示和統計。通常情況下,一般都有固定的格式和確定的數據列展示,但是在某些特殊情況下,也可能會需要用到動態生成列。本文以一些簡單的小例子,簡述在WPF開發中,如何動態生成DataGrid的行和列,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 概述:以上C#示例演示瞭如何使用SerialPort類實現串口數據接收。通過設置串口屬性、定義數據接收事件處理程式,你可以輕鬆地打開串口、監聽數據,併在事件處理程式中對接收到的數據進行處理。這提供了一個基本框架,可根據實際需求進行定製。 在C#中實現串口數據接收通常需要使用System.IO.Por ...
  • 一:背景 1. 講故事 過年喝了不少酒,腦子不靈光了,停了將近一個月沒寫博客,今天就當新年開工寫一篇吧。 去年年初有位朋友找到我,說他們的系統會偶發性崩潰,在網上也發了不少帖子求助,沒找到自己滿意的答案,讓我看看有沒有什麼線索,看樣子這是一個牛皮蘚的問題,既然對方有了dump,那就分析起來吧。 二: ...
  • 哈嘍大家好,我是鹹魚。 之前寫過兩篇關於 SSL 過期巡檢腳本的文章: SSL 證書過期巡檢腳本 SSL 證書過期巡檢腳本(Python 版) 這兩篇文章都是講如何通過腳本去自動檢測 SSL 過期時間的,當我們發現某一功能變數名稱的 SSL 證書過期之後,就要及時更換。 如果這個功能變數名稱下有很多伺服器,我們一臺 ...
  • Win + R 運行 rdpclip.exe 或者任務管理器關閉rdpclip.exe並重新運行。 就這麼簡單~ ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...