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 中的 binder 抽象支持多种消息代理。目前 RabbitMQ 和 Kafka 可用于生产环境。消费者组数据分区也受 Spring Cloud Stream 支持,并且可以在部署流处理时进行配置。

Data Flow Architecture

Unix 的哲学,“编写只做一件事并把它做好的程序”,“编写程序来协同工作”,以及“编写程序来处理文本流,因为这是一个通用接口”,与 SCDF 中的微服务架构和 Spring Cloud Stream binders 相结合的方式非常酷。

今天我们还宣布发布

对 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 Initializr简化流处理应用的创建

  • 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 IssuesStackOverflow 或在 Twitter 上使用 #SpringCloudDataFlow 标签告知我们。

SpringOne Platform 即将到来。除了几个涵盖 Spring Cloud Data Flow 及相关项目的会议外,还将有一个为期两天的培训课程。整个 Spring Cloud Data Flow 团队都将在场,期待在那里见到您!

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,加速您的进步。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区中所有即将到来的活动。

查看全部