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 MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...