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
  • 不廢話,直接代碼 private Stack<Action> actionStack = new Stack<Action>(); private void SetCellValues() { var worksheet = Globals.ThisAddIn.Application.ActiveS ...
  • OpenAPI 規範是用於描述 HTTP API 的標準。該標準允許開發人員定義 API 的形狀,這些 API 可以插入到客戶端生成器、伺服器生成器、測試工具、文檔等中。儘管該標準具有普遍性和普遍性,但 ASP.NET Core 在框架內預設不提供對 OpenAPI 的支持。 當前 ASP.NET ...
  • @DateTimeFormat 和 @JsonFormat 是 Spring 和 Jackson 中用於處理日期時間格式的註解,它們有不同的作用: @DateTimeFormat @DateTimeFormat 是 Spring 框架提供的註解,用於指定字元串如何轉換為日期時間類型,以及如何格式化日 ...
  • 一、背景說明 1.1 效果演示 用python開發的爬蟲採集軟體,可自動抓取抖音評論數據,並且含二級評論! 為什麼有了源碼還開發界面軟體呢?方便不懂編程代碼的小白用戶使用,無需安裝python、無需懂代碼,雙擊打開即用! 軟體界面截圖: 爬取結果截圖: 以上。 1.2 演示視頻 軟體運行演示視頻:見 ...
  • SpringBoot筆記 SpringBoot文檔 官網: https://spring.io/projects/spring-boot 學習文檔: https://docs.spring.io/spring-boot/docs/current/reference/html/ 線上API: http ...
  • 作為後端工程師,多數情況都是給別人提供介面,寫的好不好使你得重視起來。 最近我手頭一些活,需要和外部公司對接,我們需要提供一個介面文檔,這樣可以節省雙方時間、也可以防止後續扯皮。這是就要考驗我的介面是否規範化。 1. 介面名稱清晰、明確 顧名思義,介面是做什麼的,是否準確、清晰?讓使用這一眼就能知道 ...
  • 本文介紹基於Python語言,遍歷文件夾並從中找到文件名稱符合我們需求的多個.txt格式文本文件,並從上述每一個文本文件中,找到我們需要的指定數據,最後得到所有文本文件中我們需要的數據的合集的方法~ ...
  • Java JUC&多線程 基礎完整版 目錄Java JUC&多線程 基礎完整版1、 多線程的第一種啟動方式之繼承Thread類2、多線程的第二種啟動方式之實現Runnable介面3、多線程的第三種實現方式之實現Callable介面4、多線的常用成員方法5、線程的優先順序6、守護線程7、線程的讓出8、線 ...
  • 實時識別關鍵詞是一種能夠將搜索結果提升至新的高度的API介面。它可以幫助我們更有效地分析文本,並提取出關鍵詞,以便進行進一步的處理和分析。 該介面是挖數據平臺提供的,有三種模式:精確模式、全模式和搜索引擎模式。不同的模式在分詞的方式上有所不同,適用於不同的場景。 首先是精確模式。這種模式會儘量將句子 ...
  • 1 為啥要折騰搭建一個專屬圖床? 技術大佬寫博客都用 md 格式,要在多平臺發佈,圖片就得有外鏈 後續如博客遷移,國內博客網站如掘金,簡書,語雀等都做了防盜鏈,圖片無法遷移 2 為啥選擇CloudFlare R2 跳轉:https://dash.cloudflare.com/ 有白嫖額度 免費 CD ...