企业数据平台建设的基石:构建统一的数据存算能力
随着企业数字化程度的逐步提高,数字化业务对数据管理的需求也持续深化。根据企业本身所处的数字化程度不同,我们将企业的数据平台的建设总结为五个阶段,本篇我们对统一的数据存储与算力做介绍。
— 整体介绍 —
企业发展的战略目标就是为了更好地为企业和社会创造价值,而从数据中创造价值也是创造价值的重要一个环节。数据平台的建设需要能够支撑起这个总体目标,同时结合企业自身情况实现一个可持续演进的技术架构。
互联网企业引领着数据时代,以Google、Facebook、Amazon为代表的企业已经完成了从IT巨头到DT巨头的转变。这些公司借助其在大数据、云计算、人工智能的技术发展优势,快速实现业务数据化、数据资产化和企业经营数据化,加速商业价值的转化,在引领技术风向的同时获得了巨大的商业成功。
具体到落地上,随着企业数字化程度的逐步提高,数字化业务对数据管理的需求也持续深化。此外,随着近年来数据要素市场的快速发展,部分有大量高价值数据资源的企业还可以将其数据产品化,并打通到其他企业的通道,从而通过数据流通创造价值。根据企业本身所处的数字化程度不同,我们将企业的数据平台的建设总结为如下的五个阶段,如下图所示:
除了有形的系统建设外,配套的数据组织和能力建设也是数据平台建设的非常关键的体系建设,包括分布式系统运维能力、数据整合、数据治理、数据科学建模、数据产品开发与发布等能力,随着数据安全相关的法律法规的落地,企业甚至要求技术管理者有足够体系的法律知识并将其运用于数据产品的价值化创造过程中。
— 统一的数据存储与算力基础概述 —
企业启动业务数字化的战略后,首先需要解决的问题是如何规范、高效地收集各类业务过程依赖及产生的数据,其次是如何在科学的框架内,由浅至深地逐步加以开发和利用。这个时候企业内部很容易达成一致,需要规划一个统一的数据基础平台,能够将企业内散落在各地的数据汇集起来,并提供对这些数据做进一步探索的能力。在物理上,企业需要借助平台来支撑海量且持续增长的数据存储,并且提供数据分析和计算能力,打下这些基础后,数据团队就可以将企业内的数据持续地汇集进来,为后续的数据化工作提供生产资料和生产工具。
随着大数据技术的快速发展以及企业探索经验的积累,在构建统一的数据存算基础能力的过程中,行业里逐渐形成了一套完善的方法论体系,主要分为平台体系建设和技术能力体系建设。
在平台体系建设方面,一般采用基于Hadoop体系的大数据平台或分布式数据库,来构建一个企业级数据湖,能够支撑企业内部的结构化、半结构化、非结构化数据的存储与分析,此外为了能够支撑更多的实时性数字业务,一般在数据湖的建设过程中就会同步建设计算能力层,来支持实时计算、离线数据批处理计算以及高并发的在线分析与查询类业务。
在这个阶段,企业的技术团队需要建设的技术能力主要包括数据整合能力、数据开发能力、平台运维与安全管理能力。数据整合指的是将企业内部的数据通过自动化的手段汇集到数据湖中,并且会做一些技术上的数据开发工作(如不同数据库的类型转换,必要的数据补全等),让数据湖中可以积累出可用的数据。数据整合的方式可以包括离线(如T+1)、准实时(分钟级)与实时(秒级),相应的技术难度、可接入的数据库类型等也会不同,要求的支撑工具和技能也会有较大差异。平台运维和安全管理能力是为了保证数据湖的业务连续性和安全性,由于一般数据湖都采用分布式架构的基础软件,与传统集中式数据库有较大的运维管理差异,因此企业相关团队需要建立起分布式系统的运维管理能力,包括高可用、集群扩缩容、监控告警、权限管理、全局审计等相关的运维领域。
— 数据存储与算力功能要求 —
数据存算基础层是整个数据平台层的基础,因此企业在设计上要充分考虑对可能的业务形态的功能支撑能力,以及架构上的可持续演进能力。
在功能的设计上,由于企业的业务会有各种类型数据生成,如运营管理类的文档数据、票据、合同数据,制造领域的时序数据、影响数据,位置类的地理数据等,因此存储平台需要支持结构化数据和多种非结构数据的处理能力。在可处理的数据量级上,企业要充分预估未来可能接入的数据量级,尤其是对一线业务单位可能生成的大量制造流程数据、监控管理数据等做好容量规划,因此基础平台对存储和计算的数据容量,需要有很强的扩展性,可以最高支持PB级数据存储。在数据整合层面,基础平台层需要支持对数据的高并发写入、搜索、查询等,并且支持标准的SQL语言做开发,这样就可以很好地使用企业内部已有的数据工具。此外,基础平台需要支持对数据的高并发的事务操作,保证数据ACID,从而具备支撑重要业务的技术基础,2019年后多个开源项目开始支持分布式事务,也推动了新一次大数据技术的快速发展周期。在计算能力层面,需要能够对数据做批处理的碰撞分析,以及实时的写入或计算。
除了基础平台能力层以外,配套的工具能够提升数据团队的工作效率,加速他们的技术能力建设过程。因此,基础平台层需要提供比较便捷的数据整合工具,能够将业务数据库对的底层数据库中的数据整合到数据平台中来,最好能够支持离线与实时的混合方式。随着国内信创产业的持续发展,对国产数据库和平台的支撑也是必要条件之一。而对运维和安全管理团队来说,图形化的运维管理工具和安全管理工具也是必须的,前者可以让运维者方便做基于图形化页面来做平台内服务的配置管理、服务启停、存储扩缩容、计算弹性调整等运维操作,而后者可以让安全运维人员来设置合理的系统访问控制策略,配置数据库表的权限,以及对数据操作的审计操作等。
— 数据存储与算力架构要求 —
基础平台层的架构对未来平台能够支撑的业务能力至关重要,过去十多年来大数据技术快速发展,涌现了多种不同的技术架构和一些明星产品和技术,如最早的Hadoop技术体系,到后面流批一体、存算分离、湖仓一体架构,以及最近涌现的云原生架构、多模型数据库架构等。这些技术社区的发展都是从某些方面推动了基础平台架构的发展,不过由于技术复杂度问题和普遍存在的技术宣传超过技术本身的问题,入门者比较难有充分的、客观理性的全面认识。为了解决这个问题,我们对相关的技术架构需要做了一个抽象和总结,并在第二章对不同的技术社区针对性的分解和论述。
-
业务支撑层
业务支撑层主要负责对数据平台上层数据应用的支撑,一般基于SQL或衍生API来提供开发能力,通过应用编排等方式提供数据应用的资源管理能力,同时配套提供安全管理和运维相关的功能支撑,因此业务支撑层主要的架构要求包括如下几点:
-
-
高并发、高吞吐
-
数据应用普遍具有一些高并发或高吞吐的特性,如面向消费者的数据产品普遍有高并发的设计要求,而实时计算类应用的数据流转与读写,在设计上一般都会保证吞吐量高,因此业务支撑层就需要保障对外服务的高并发和高吞吐。落实到技术上,一般数据平台都有SQL编译器、连接管理器等相关的模块,为应用提供并发的JDBC/ODBC连接和数据访问能力,这也就要求SQL编译器等模块有较高的性能。
-
-
高可用
-
由于数据应用大多是计算密集或者IO密集的,对资源消耗较大,为了保证平台和应用的高可用,在架构上我们需要保证整体软件栈的高可用性,即使在物理硬件出现问题的情况下,服务能够正常运行。我们可以通过分布式软件的高可用设计来保障平台软件层的高可用,再通过提供给应用层基于容器技术的应用编排技术来保障应用层的高可用。
-
-
链路安全管控
-
数据链路安全是企业软件的基础要求,包括常规的认证、授权和审计,还可能包括为了应用的功能性安全而采取的细粒度的安全策略管控,如数据应用按照白名单或黑名单来控制接入、提供数据访问限流等措施。这要求所有的数据访问接口和应用都能提供比较完善的数据安全架构设计。
-
存储与计算层
存储与计算层是基础平台的核心部分,也是最关键的能力要素,早期企业在选型基础平台的时候会侧重这方面的功能与架构。随着计算与存储层技术的快速发展,各种新型架构的分布式存储和计算技术不断涌现,都在尝试去解决不同场景下的应用技术需求,不过往上抽象起来,主要包括这几点:
-
-
分布式
-
分布式技术是整个大数据技术的核心,也是新的计算标准范式。分布式存储、分布式计算等技术是支撑行业数字化的基础能力。
-
-
可扩展性
-
由于企业数据平台是为了未来数十年的企业数据业务发展而设计的基础层,因此平台一定是随着业务持续演进的,平台无论是在横向、纵向的可扩展性方面,还是架构本身的可扩展性上,都需要能够做到较高的线性能力。横向的可扩展性指的是可以通过增加服务器数量来提升处理能力,无论是存储平台还是计算引擎,都需要支持从GB到PB级别的数据能力。纵向的可扩展性指的是可以通过单台服务器的资源提升来带动性能提升。架构的可扩展性指的是未来有更强的新型计算和存储能力,平台上可以持续的增加新类型的存储与计算引擎,从而满足不停出现的新业务的需要。
-
-
多数据模型支持
-
企业内部的数据业务本身具有丰富的多样性,支撑业务的数据类型也就具备多样性。譬如经营管理类的数据一般以结构化的数据为主,而财务类数据应用就涉及大量的合同、票据等半结构化数据,生产制造类业务需要大量的时序数据类的能力支撑。因此企业级数据平台就需要对多模型数据有很好的支撑能力,包括存储、计算、查询和生命周期管理等能力。
-
-
实时计算与批处理混合
-
早期的数据业务主要是数据仓库和数据湖的建设,主要涉及数据的离线计算。近几年实时类数据业务蓬勃发展,如工业制造类的故障检测、银行业的在线风控、智能营销等核心业务场景,因此对平台的实时计算也有很高的要求。因此,数据平台基础层需要支持离线计算和实时计算模式,为新业务场景做好技术基础。
-
资源管理层
资源管理层是保证数据平台内的所有软件、服务和上层的数据应用如何部署安装、运行、如何调度和生命周期如何管理,以及对不同的业务部门如何保证所有软件的稳定性、隔离性和安全性。早期的数据平台在资源管理上,都采用硬件服务器直接部署的方式,依赖架构师的规划来落实资源管理,因此无法保证实时变化的业务的有效资源管理。到2017年行业内开始出现基于云技术来解决,目前比较流行的方式有两种,一种是基于容器云和Kubernetes技术来提供分布式数据库或数据平台的资源管理,另外一种方式就是基于公有云的基础设施来交付,主要取决于企业的业务交付的形式和面向的业务客户情况。无论采用哪种交付方式,数据平台基础层的资源管理架构要求可以简单抽象为下面这几个关键要素:
-
-
多租户能力
-
多租户指的是一个平台内可以按照不同的业务部门或组织单位划分独立的资源单位,每个资源单位内部署和运行的软件使用不同的CPU、内存、磁盘等资源,相互隔离,因此不会互相争抢硬件资源,从而保证不同部门应用的稳定性。此外由于各个部门的数据敏感性要求不一,数据持久化在不同的磁盘空间上,数据也有物理隔离性,因此可以为不同业务敏感度的数据提供不同的安全服务等级。
-
-
异构软硬件管理
-
资源管理层的核心任务就是管理数据中心底层的软硬件资源,随着AI技术的发展,大量新型加速设备如GPU成为数据中心的标配,此外摩尔定律持续推动半导体行业的发展,一个数据中心会出现多种资源配置的硬件资源,譬如部分服务器存储密度高,部分服务器的内存密度高等。因此,资源管理层需要能够统一有效的管理起这些异构的软硬件环境,能够按照业务的特点将应用下发到合适的服务器上运行,提高基础平台层的运行效率。
-
-
多种生命周期的数据任务管理
-
从资源管理层的视角来看,数据任务分为短生命周期和长生命周期两种。短生命周期任务包括类似机器学习模型训练程序、数据ETL程序等,他们都是一次启动完成计算后就结束,一般生命周期都是几个小时以内甚至是秒级。长生命周期指的是7x24小时运行的数据应用,如对外服务的AI推理应用、移动APP的数据后台服务等。早期的数据资源框架如Apache YARN都是针对短生命周期的任务的管理而设计的,不能支持长生命周期的任务。
-
-
国产软硬件生态支持
-
国内企业需要能够基于国产信创相关技术来构建整体的生态,平台自身也需要满足国产化的相关要求,当前这是一个强架构要求,尤其是国计民生相关的行业,如金融、能源、交通、政府等。
— 小结—
本篇介绍了企业级数据平台建设的最基础层—数据存储与算力基础层,从功能要求和架构要求两方面剖析了建设思路。那么完成了数据存储和算力基础平台建设和数据资源归集后,如何将有业务语义和业务价值的数据资源梳理出,并与业务衔接起来?下一篇数据资产化为你解读。