Spring Cloud Data Flow 1.0 GA 版本發布

版本發布 | Mark Pollack | 2016 年 7 月 12 日 | ...

我代表團隊,很高興宣布 Spring Cloud Data Flow 1.0 GA 版本的發布!

注意

開始使用此新版本的絕佳方式是遵循參考文件中「入門」章節。它使用在您的電腦上執行的 Data Flow 伺服器,並為每個應用程式部署一個新的處理程序。

Spring Cloud Data Flow (SCDF) 是現代運行環境上資料微服務的編排服務。 SCDF 讓您可以描述資料管線,這些管線可以由長期存在的串流應用程式或短期存在的任務應用程式組成,然後將它們部署到您今天可能已經在使用的平台運行環境,例如 Cloud Foundry、Apache YARN、Apache Mesos 和 Kubernetes。 我們提供廣泛的 串流任務 應用程式,因此您可以立即開始開發用於資料擷取、即時分析和資料匯入/匯出等使用案例的解決方案。

串流是使用受 Unix 管線語法 啟發的 DSL 定義的。 例如,從 http 端點執行資料擷取並寫入 Apache Cassandra 資料庫的串流的 DSL 定義為 http | cassandra。 反過來,此 DSL 的每個元素都映射到專注於資料處理的 Spring Boot 微服務應用程式,該應用程式使用 Spring Cloud Stream 程式設計模型。 此程式設計模型讓您可以專注於處理應用程式的輸入和輸出,而 SCDF 則配置這些輸出和輸入如何映射到訊息中間件,這就是應用程式的通訊方式。 透過 Spring Cloud Stream 中的綁定器抽象,支援多個訊息代理程式。 目前 RabbitMQ 和 Kafka 可用於生產環境。 消費者群組資料分割 在 Spring Cloud Stream 中也受到支援,並且可以在部署串流時進行配置。

Data Flow Architecture

非常酷的是,Unix 的哲學「編寫只做一件事並做好它的程式」、「編寫程式以協同工作」和「編寫程式以處理文字串流,因為這是一個通用介面」與微服務架構和 SCDF 中的 Spring Cloud Stream 綁定器結合在一起。

今天我們還宣布發布

對 Apache Mesos 的支援正在開發中。 我們也很高興看到社群對其他執行階段環境的貢獻,例如 OpenShift。 您可以在我們的參考手冊中找到有關 SCDF 架構的更多資訊。

此版本中的值得注意的功能包括

  • 串流 DSL,它將資料管線描述為各個應用程式的有向圖。

  • 對命名目的地 (named destinations) 的 DSL 支援,可讓您從串流定義中的任何「pipe」使用事件。 這被稱為tapping a stream。 您也可以合併來自多個串流的輸出

  • 部署資訊清單 (deployment manifest) 可讓您定義各個應用程式的資源使用情況(CPU、磁碟、記憶體)以及應用程式 執行個體計數如何分割資料。 您也可以在部署時傳遞任意應用程式屬性

  • 支援將應用程式打包為 Spring Boot uber-jar 或 Docker 映像。

  • 支援部署使用 Spring Cloud Stream 構建的資料微服務,用於處理無限量資料的長期串流應用程式,以及使用 Spring Cloud Task 構建的用於處理有限資料集然後終止的應用程式。 反過來,這些構建在 Spring Boot 之上。

  • 具有 tab-completion 的 shell 應用程式,用於建立、部署和監視串流和任務。

  • HTML5 儀表板,可讓您建立、部署和監視已部署的串流和任務。

  • Flo for Spring Cloud Data Flow:用於串流定義的可視化設計器,它還支援 scriptable-transform 處理器,該處理器接受 Ruby、Groovy、Python 或 Javascript 程式碼以進行運行時計算邏輯。

  • 支援基本 HTTP 和 OAuth 2.0 驗證

  • 使用 ‘NoSql’ 樣式的 即時分析,使用欄位值和彙總計數器,以及伺服器上的 HTTP 端點來存取計數器值。 計數器資料由 Redis 支援。

  • 使用 Spring Initializr 來簡化 串流應用程式的建立

  • Spring Cloud Stream 應用程式支援 RabbitMQ 和 Kafka 0.8

  • TaskStream Application Starters,您可以使用它們來自訂我們提供的許多來源、處理器、sink 和任務應用程式。

  • Spring Boot 應用程式屬性的白名單為 shell/UI 提供資訊,以顯示首選的啟動屬性集,以用於程式碼完成和應用程式資訊。

Spring Cloud Data Flow 已經開發了大約一年,從之前的專案 Spring XD 演變而來,該專案也有類似的目標,即簡化串流和批次應用程式的開發。 我們從那次經驗中學到了很多,Sabby Anandan 在這篇 部落格文章 中很好地描述了這一點。

一個主要的架構變更是用 可插拔的 Deployer Service Provider Interface 取代我們自己的應用程式運行階段環境。 儘管 Spring Cloud Data Flow 1.0 GA 中花費的大部分工程時間都在進行這種架構轉變,但我們現在處於非常有利的位置,可以繼續在此基礎上添加更高層次的價值,而不必花時間開發核心運行階段環境功能。 以下是團隊集體思考的一些想法

  • 透過依賴串流或任務應用程式的元件成為「just apps」,我們可以利用許多其他 Spring Cloud 專案,例如 Spring Cloud Sleuth 來收集分散式應用程式中的回應時間。

  • Spinnaker 集成以處理應用程式的持續部署/升級的責任,因為 Spinnaker 將「deals with apps」作為其貨幣單位,並且可以使用回應時間等資料來做出自動決策以升級到應用程式的新版本。

  • Polyglot 部署,我們希望部署的不僅僅是 Java Spring Boot 應用程式。 我們將首先研究部署 Python 應用程式,因為許多資料科學團隊使用 Python 來開發需要在即時環境中評估的模型。

  • 從 Spring XD 中帶回 Task DSL 和 UI 設計器。

由於 Spring Cloud Data Flow 與 Spring Cloud Stream 和 Spring Cloud Task 的發布生命週期分離,因此當這些專案發布新功能時,SCDF 可以立即使用它們。 值得一提的 Spring Cloud Stream 的一些令人興奮的功能包括對 Project Reactor 和 Kafka Streams API 的支援,以及對 Kafka 0.9、Google Cloud Pub/Sub、Azure Event Hubs 和 JMS 的綁定支援。 對於 Spring Cloud Task,計劃在 Cloud Foundry 上支援最新的 Task 功能。 有關詳細資訊,請查看這兩個專案的 roadmap

如需完整的功能、錯誤修復和改進列表,請參閱 已關閉的 1.0 RELEASE GitHub issues

我們歡迎反饋和貢獻! 如果您有任何問題、意見或建議,請透過 GitHub IssuesStackOverflow 或使用 Twitter 上的 #SpringCloudDataFlow 標籤告訴我們。

SpringOne Platform 即將到來。 除了涵蓋 Spring Cloud Data Flow 和相依專案的多個 session 之外,還將有一個 為期兩天的培訓課程。 整個 Spring Cloud Data Flow 團隊將在那裡,期待在那裡見到您!

取得 Spring 電子報

隨時關注 Spring 電子報

訂閱

搶先一步

VMware 提供培訓和認證,以加速您的進展。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

檢視全部