領先一步
VMware 提供培訓和認證,加速您的進步。
瞭解更多我代表團隊激動地宣佈 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 中的 binder 抽象支援多種訊息代理。目前 RabbitMQ 和 Kafka 可用於生產環境。消費者組和資料分割槽也受 Spring Cloud Stream 支援,並且可以在部署流處理時進行配置。
Unix 的哲學,“編寫只做一件事並把它做好的程式”,“編寫程式來協同工作”,以及“編寫程式來處理文字流,因為這是一個通用介面”,與 SCDF 中的微服務架構和 Spring Cloud Stream binders 相結合的方式非常酷。
今天我們還宣佈釋出
Spring Cloud Data Flow 的Apache YARN 伺服器 1.0 GA
Spring Cloud Data Flow 的Kubernetes 伺服器 1.0 GA
Spring Cloud Data Flow 的Cloud Foundry 伺服器 1.0 M4
對 Apache Mesos 的支援正在開發中。我們也很高興看到社群對其他執行時的貢獻,例如 OpenShift。您可以在我們的參考手冊中找到有關 SCDF 架構的更多資訊。
此版本中的顯著特性包括
一個流 DSL,它將資料管道描述為由獨立應用組成的有向圖。
DSL 支援命名目標,允許您從流定義中的任何“管道”消費事件。這稱為擷取流。您還可以組合來自多個流的輸出。
一個部署清單,允許您定義獨立應用的資源使用(CPU、磁碟、記憶體)以及應用例項數量和如何分割槽資料。您還可以在部署時傳遞任意應用屬性。
支援將應用打包為 Spring Boot uber-jar 或 Docker 映象。
支援部署使用 Spring Cloud Stream 構建的資料微服務,用於處理無限量資料的長時間執行的流處理應用,以及使用 Spring Cloud Task 構建的用於處理有限資料集後終止的應用。這些都構建在 Spring Boot 之上。
一個帶 tab 補全的 shell 應用,用於建立、部署和監控流處理和任務。
一個 HTML5 儀表盤,允許您建立、部署和監控已部署的流處理和任務。
Spring Cloud Data Flow 的 Flo:一個流定義的視覺化設計器,它還支援一個可指令碼化的轉換處理器,該處理器接受 Ruby、Groovy、Python 或 Javascript 程式碼用於執行時計算邏輯。
支援基本的 HTTP 和 OAuth 2.0 認證。
‘NoSql’ 風格的即時分析,使用欄位值和聚合計數器,伺服器上的 HTTP 端點用於訪問計數器值。計數器資料由 Redis 提供支援。
Spring Cloud Stream 應用支援 RabbitMQ 和 Kafka 0.8
任務和流處理應用 Starter,您可以使用它們來自定義我們提供的許多源、處理器、sink 和任務應用。
Spring Boot 應用屬性的白名單為 shell/UI 提供了資訊,以顯示一組首選的 boot 屬性,用於程式碼補全和應用資訊顯示。
Spring Cloud Data Flow 已經開發了大約一年,它從之前的 Spring XD 專案演變而來,後者的目標類似,旨在簡化流處理和批處理應用的開發。我們透過那段經歷學到了很多東西,Sabby Anandan 在這篇博文中對此做了很好的描述。
一個主要的架構變化是用可插拔的 Deployer 服務提供者介面取代我們自己的應用執行時。雖然 Spring Cloud Data Flow 1.0 GA 的大部分工程時間都花在了這個架構轉變上,但我們現在處於一個非常有利的位置,可以繼續在這個基礎上增加更高層次的價值,而無需花費時間開發核心執行時特性。以下是團隊共同思考的一些想法:
透過依賴流處理或任務應用的元件是“普通應用”,我們可以利用許多其他 Spring Cloud 專案,例如 Spring Cloud Sleuth 來收集分散式應用中的響應時間。
與Spinnaker 整合,以處理應用的持續部署/升級職責,因為 Spinnaker 將“應用”作為其基本單位,並可以使用響應時間等資料來自動決定升級到應用的新版本。
多語言部署,我們希望部署 Java Spring Boot 應用以外的更多型別的應用。我們將首先研究部署 Python 應用,因為許多資料科學團隊使用 Python 開發需要在即時環境中評估的模型。
重新引入 Spring XD 的任務 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 上的最新任務特性。請檢視這兩個專案的路線圖瞭解詳情。
有關特性、錯誤修復和改進的完整列表,請參閱已關閉的 1.0 RELEASE GitHub 問題。
我們歡迎反饋和貢獻!如果您有任何問題、意見或建議,請透過GitHub Issues、StackOverflow 或在 Twitter 上使用 #SpringCloudDataFlow 標籤告知我們。
SpringOne Platform 即將到來。除了幾個涵蓋 Spring Cloud Data Flow 及相關專案的會議外,還將有一個為期兩天的培訓課程。整個 Spring Cloud Data Flow 團隊都將在場,期待在那裡見到您!