不久前,戴尔科技集团
正式发布新一代流式数据平台
Dell EMC Streaming Data Platform
(简称SDP)
相信很多读者都很好奇
这个平台能给我带来什么?
它是如何工作的?
优势特点在哪?
今天,小编邀请到了
戴尔科技集团软件开发总监滕昱
为您深入讲解SDP的
What、Why和How
了解流数据平台
看这篇文章就够了!
作者 戴尔科技集团软件开发总监 滕昱
SDP是什么
SDP是一套基于软件与参考硬件的弹性可伸缩平台,用于注入、存储和分析无界的流式数据。流式数据处理,有时又被称作事件处理,可以动态地将流式数据以及分析工作分发到可用的处理设施上。
从用途上看,SDP允许在一个应用内同时处理实时数据和历史数据。从结构上看,SDP结合了开源的流式数据存储引擎Pravega和流式数据计算引擎Flink,以及,并且可以与非结构化存储的代表产品ECS(Elastic Cloud Storage)和Isilon无缝对接。
SDP能做什么
SDP是一套强大的流式数据平台
它提供了一系列流式数据相关的功能和特性
❶ 数据注入:原生支持所有类型的流式数据注入,包括无界字节流。
❷ 存储:弹性的分层存储提供快速的数据访问和几乎无限的数据存储,包括对历史数据的访问。
❸ 分析:对流式数据的分析能力由内嵌的Flink计算引擎提供。
❹ 平台管理:集成的管理功能提供数据安全、配置、访问控制、资源管理、健康告警和网络拓扑可视化。
❺ 运行时管理:基于Web的用户界面允许使用者为应用分配流和其它资源,运行应用以及查看作业状态。
❻ 应用开发:开发环境提供对应用开发和组件升级的支持。
❼ 允许应用程序重定向输出到第三方可视化和告警工具,例如Kibana。
SDP为什么重要
著名咨询公司Gartner的最新分析报告显示,目前的企业数据约有80%都是非结构化数据。
根据数据自身性质的不同,一般可以将非结构化数据分为三类:文件、对象和流。针对文件型的非结构化数据,戴尔易安信拥有占据市场领先地位长达10年的存储产品Isilon。针对对象型的非结构化数据,也有新兴的优秀对象存储产品ECS。然而,在流式数据领域却迟迟没有一款针对性的产品投入市场。
SDP的出现正好填补了在流式数据领域的空缺。
现代企业对成熟的流式数据处理解决方案提出了越来越多的的需求,例如:无界数据流的分析与存储能力,历史数据与实时数据的统一,自动扩展机制,高度的数据一致性与事务支持,统一的数据API,企业级平台等等。一方面,传统的批处理数据引擎已经完全无法满足现代企业对实时性的要求。另一方面,现有的流式数据系统大都基于消息模型,例如Kafka,Spark等。这些系统从本质上看,仅仅只是一些高速消息系统,缺乏一致性、可靠性、持久化等存储特性,因此很难适应当今物联网趋势下的各种复杂数据处理需求,例如:无人机的实时视频流分析,制造业的缺陷探测,自主侦察监视等等。业界迫切需要一款“真正意义上的字节流”解决方案。而SDP就是我们交出的答卷。
SDP的企业级特性
SDP的定位首先是一个企业级平台,因此企业级的特性必不可少,例如:安全性、隔离性、可扩展性、可管理性、易用性等等。我们将从企业的视角出发,逐一介绍SDP的这些特性。
为跨团队的数据流提供企业级安全保障
图1 SDP的应用隔离设置界面
SDP平台基于K8s进行部署,除了具备基础的K8s安全隔离特性外,还额外提供了一套扩展的数据隔离与保护机制。
简单来说,每一个业务部门可以在SDP平台上创建自己独立的多个应用,而每一个部门之间的数据都是相互隔离的。SDP还引入了用户角色机制,进一步细化每一个用户的权限控制。图1展示的是为应用设置隔离的界面。
为数据注入提供自动扩展机制
图2 SDP平台内部活动segment数量的可视化展示
自动扩展机制是SDP提供的另一个吸引人的企业级特性。
具体来说,当数据注入流量发生变化时,SDP能够实时自动进行水平扩展/收缩,以便达到最佳性能和吞吐量。这个过程是自动进行的,无需人工干预。
这一特性使得企业内部的硬件资源时刻保持最佳利用率:既不闲置浪费也不过度占用。这对一向以成本敏感著称的企业应用来说,一定是一个福音。
图2用一个示例展示了SDP平台内部处于活动状态的Segment数量随时间的变化过程。从图中可以很清楚地观察到,在某些时间点上发生了Segment的分裂动作(水平扩展,吞吐量上升),而在另一些时间点上则发生了Segment的合并动作(水平收缩,吞吐量下降)。
提供便捷的IT管理
图3 SDP仪表板的局部界面
便捷高效的管理功能一向被认为是企业级应用所必备的特性,SDP也毫不例外地具备这一特性。
图3展示的是SDP仪表板的一部分,包括当前系统的各种性能指标以及资源使用情况。根据当前的实时指标,系统管理员可以提前收到可能的异常预警。当发生系统故障时,也能够帮助迅速定位故障位置。
提供简化的开发流程
SDP对开发者非常友好。
在SDP平台内运行的每一个应用都同时支持实时数据和历史数据的访问,并且有统一的API支持。这意味着开发者无需花费精力使用两套系统或者学习两套API规范。开发者仅需要编写一套统一的代码,就可以同时适用于实时数据和历史数据。另一方面,内置的Flink计算引擎和相应的Flink API大大降低了开发者的入门门槛。
SDP的整体架构
图4 SDP的整体架构示意图
SDP的整体技术栈包括了平台软件本身以及一整套标准硬件,如图4所示。SDP紧随当前的业界标准,从设计之初就是一个运行在容器环境下的分布式应用程序,并依靠K8s进行编排。容器环境不仅能够隔离不同项目,还能够高效管理资源,以及进行认证服务。
SDP运行时环境毫无疑问地是基于一套被称作“戴尔科技标准参考架构”的组合配置,即:戴尔易安信的裸硬件,VMware的虚拟化支持,再加上Pivotal扩展的K8s环境(Pivotal Container Service,PKS)。
SDP平台的最基础的组件是它的流式数据存储引擎,即:Pravega。作为平台内的自研开源组件,Pravega承担着为所有其它组件提供流式数据存取服务的重任。因为在流原生的环境下,数据只有唯一的表现形式:流。
▲Pravega是戴尔科技集团从零开始构建的存储系统
取梵语中“Good Speed”之意为了对海量流式历史数据提供容量扩展,Pravega需要连接二级持久化存储设备,ECS和Isilon都是推荐的选择。同时,为了达到实时数据处理所要求的低延迟,Pravega还拥有自己的基于固态存储的一级持久化存储支持,目的在于进一步降低写入延迟。
作为SDP平台的上层建筑,对外提供数据分析和处理能力是流式处理引擎的主要职责。通过不同的Connector组件,SDP可以借助Flink等各种现有的流式计算引擎完成数据的分析与处理,以便将单独的数据流组合成更加灵活的流水线,完成更加复杂的操作。用户甚至可以开发自己的Connector组件,以便连接其它存储与计算引擎。
SDP与Flink
紧密结合
低延时的实时处理能力可以让企业用户从已有的数据集中产生新的商业模式,带来新的经济效益,而对历史数据的支持又是某些应用不可或缺的一部分。Pravega和Flink结合各自在实时数据、历史数据上存储和计算的优势,不仅保障极高存储效率的同时还能够进一步降低企业在数据存储和运维的成本。
统一数据处理是一个充满挑战的领域,通过Pravega与Flink相结合的企业级解决方案,可以彻底简化现有数据分析架构的复杂性,以及数据冗余、缺少可靠持久等问题,最终实现一个真正意义上的端到端的流/批统一数据处理框架。
SDP在K8s上构建,采用微服务架构,通过统一的K8s Operator方式部署Pravega与Flink,集合了存储和计算平台,并且实现安全、多租户等诸多特性,为企业用户提供了一体化的数据存储和分析平台。
核心功能覆盖
SDP的1.0版本涵盖了Flink的核心功能:
在K8s上部署Flink Session Cluster
支持多版本的Flink(1.7.2、1.8.1和1.9.1)
可配置的Flink集群资源控制
Flink集群的扩容/缩容
支持用户上传、管理和运行Flink任务Jar包
支持从加密的Pravega客户端通过Flink Connector读写数据
Flink UI的安全访问控制以及K8s外部访问
端到端的恰好一次(Exactly-Once)语义
基于事件时间(Event Time)的语义
为什么选择Flink
Pravega作为戴尔易安信研发的开源流存储平台,专注于流式数据存储的可靠性和实时性,同时提供批流一体的Stream API。
这一设计思路与Flink作为处理引擎的理念不谋而合。
Flink擅长实时数据处理,如今Flink社区也同样致力于整合DataStream API,统一批和流的处理。Flink因此自然成为了Pravega最为合适的计算引擎。两者也自从Pravega诞生以来就有着深入的合作,Pravega团队也多次参加了Flink Forward大会,并进行了主题演讲和专场报告,分享Pravega与Flink的最新成果。这样深度的技术合作也是SDP选择Flink进行合作的主要原因之一。SDP希望结合并且发挥两者的优势特点,帮助用户解决实际问题。
▲戴尔科技集团软件开发总监滕昱参加2019 FFA大会
SDP作为企业级的数据存储和计算一体化平台,为用户提供了安全可扩展的平台,助力企业创新获取新的价值。Flink为开发者提供了标准化的、丰富易用的Flink API,简化了开发人员的工作,为包括零售、农业、汽车、能源行业等行业的数字化、智能化转型提供了大量机遇。Flink中文社区的蓬勃发展也为中国的用户们提供了丰富的应用场景的示例和第一手的开发资料。
与此同时,Flink社区近期在不断加强与K8s容器编排系统的整合,SDP也在此基础上,通过构建基于K8s的架构进一步减少软件系统和平台管理的难度,最大程度地降低了对DevOps的门槛。
(新闻稿 2020-03-20)