当今大数据AI早已成为IT技术发展的核心引擎。回望过去,其技术演进的发展历经的几个重要阶段。从80年一体化TD数仓诞生到到2004年Hadoop出现分布式大数据架构,再到现在的大数据上云兴起。可以分为四个阶段,从ScaleUp-共享存储架构、ScaleOut-大规模并行处理、SQL-ON-Hadoop、湖仓一体的数据架构。每个阶段都有各自的技术特点,也是适应当时环境而产生的架构演进。1-第一代架构:以共享存储的架构为代表(sharestorage),支持的节点很少,扩展困难,只能支撑报表分析的场景为主。2-第二代架构:以大规模并行处理MPP架构为代表(sharenothing),节点规模能够达到百级,能够处理的数据规模得到了一定提升,但仍存在限制。3-第三代架构:以Hadoop、Spark为代表,基于分布式的存储、分布式的资源调度,获得了更大规模的集群规模及数据处理规模。4-第四代架构:湖仓一体架构,在新的网络传输速度背景下,基于统一的分布式存储、数据湖仓
其中伴随着AI深度学习蓬勃发展,云原生大数据AI一体化大行其道。阿里云在其中也扮演了重要的角色。从中我们能看到大数据统一架构趋势与新的变化。
首先是大数据进入后红海时代,从之前全面技术发展期已经进入到成熟期。其标志性特点在于大数据体系内容已经沉淀出经典技术架构方向。此图可以理解为当今大数据最典型的技术架构图例。
其从下往上分别是
如左图所示,抽象来看是所有大数据架构大多都由图中梳理出的9大领域架构组件来组成。万变不离其中。
而围绕着这9个大数据领域架构下,我们能看到真实业务场景下背后的大数据架构的持续面临的未解之痛与以及架构之上的数据之难。
[稳定性]周期性系统稳定性问题[资源成本]存储计算成本快速上涨[资源弹性]资源弹性不足,业务受阻[敏捷开发]开发迭代不敏捷,周期长,很难系统升级[混合计算]离线与实时不同场景下的计算引擎差异大[运维复杂]人工运维复杂度高,起夜率高[容灾备份]无法支持跨AZ的容灾备份数据安全得不到保障其问题一直悬而未决是因为当前架构的未解之痛很难单点孤立的来破解。不断的关联问题考验着大数据架构师的能力边界,周期性的困境让技术人员一直如鲠在喉,难以破解。于是我们在思考是不是有全新的技术架构能够更加全面的解决现在的未解之痛。
似乎云计算尝试给我们新的解决思考与实践路径,面对现有大数据架构下无解之痛与数据之难。
围绕着稳定,安全,性能,成本等四个核心维度,云计算与其云原生架构深刻改变传统数据架构的固有体系。使用云原生技术是对系统架构的一次重新编排与重构。如何持续确保分布式的稳定性与容错性,解决周期性系统异常的问题。存算分离后所带来的可弹性资源伸缩能力。服务化的自动化智能运维。敏捷交付与通过流量切分方式透明升级产品版本等等。
-多样且几乎无限的资源通过ServiceAPI的形式提供,对于资源的调度和分配可以通过代码完成,这是革命性的变革。-一切资源明码标价(提前预估),所以程序优化的方向从过去的一维的榨取最好的性能(因为硬件的成本已经事先支付),变成一个动态弹性的问题:尽量花小钱办大事,动态调整。-云上的大数据产品,首先应该是多个自治的微服务组成的网络。云统一服务应该是无状态的(无副作用),方便快速的弹性扩展。放弃对于同步语义的坚持,这个世界是异步化且不可靠的。很多时候,从我们看来,云计算不止是当作一种商业模式,它同样也是对技术体系的新构建。
很多时候我们都把云计算/大数据/AI能力并列当今技术领域三大重要方向。其实从另一维度来看到云计算所具备的核心新特性正在深刻的影响与推动数据架构向下一阶段演进与发展。
此图罗列了当前AWS/GCP/Azure三大云厂商大数据典型架构与产品组件,可以看到其在搭建在其各自的云计算平台之上的大数据产品体系都有着相同类似的云数据架构,从统一数据目录/统一分布式存储服务/离线在线实时等多种计算负载/统一元数据服务/统一数据管道/统一资源编排/统一数据服务API等等。在多个统一共享组件背后是基于云原生的Shared-Everything大数据架构,彻底的架构解耦将统一共用组件作为Serverless全局服务,成为新的技术趋势。是新定义的云原生数据架构。
在新一代云原生数据架构体系下,云计算+大数据协同所带来的核心产品能力有更多的突破与进化。当我们用更长的眼光去看的时候就会发现,我们要做的并不再是一个大数据产品软件,而是一个大数据服务,后者是包含前者的。这个认知的转变是云原生数据架构区别于经典分布式大数据架构主要差异,是最重要的一步。大数据服务形态也诞生了很多新的关键能力。以1+N+1的能力分层为主。
1是在云基础设施平台之上云原生存算分离与湖仓一体平台架构。此架构基本已经成为当前云计算数据平台的事实标准。以右图阿里云数据架构可见,在统一云基础设施平台之上,StorageLayer/StorageOptimizer/ComputeLayer三层存算分离架构,支持两个不同形态。A.在数据仓库上支持数据湖(仓边建湖一体):一般是通过在数仓中建外部表来实现,解决数据仓库如何更加灵活,以数仓为核心,支持访问数据湖。代表产品有Snowflake,MaxCompute等。B.在数据湖中支持数仓能力(湖上建仓一体):一般是以数据湖存储为基础,在数据湖之上构建数据仓库的服务层,强化数据治理和数据服务的提供。代表产品是Databricks,EMR等。
无论是仓边建湖还是湖上建仓,对于云原生的数据产品而言,如何能利用好统一对象存储都会是关键
N是云原生数据架构详细能力建设。分别是
-弹性资源伸缩+动态隔离-分布式统一资源调度/容器化-多模态计算引擎-智能化自适应能力-AI+大数据一体协同之后将具体分开讲述最后1个1是云计算数据架构的基石。以云端冗余的基础资源来扩充与提升整体系统稳定性与高可用。
容器+Kubernetes,是每个云都绕不开的必要服务。就像Linux一样,K8s是云的操作系统,统一计算资源池化的管理是云上必须要做到的。只有在云上实现统一调度与资源池化才能打破离线与实时之间的计算资源的不平衡,从而实现支持离线实时/大数据与AI不同计算资源的高效协同应用。
从客户视角来看,还是从云原生数据架构的需求来看,需要在基于云计算分布式存储之上的独立统一元数据管理体系,来支持多种计算引擎的元数据信息,来管理数据湖上结构化与非结构化的数据存储。在过去的业务实践中,有多位重要客户愿意采用类似AliyunDataLakeFormation的数据湖元数据管理产品,用来补全云原生数据架构的重要一块拼图。实现对湖上数据管理的最佳实践。其能力包括:
云原生架构所带来的Serverless能力不断迭代能够持续简化大数据产品的运维管理复杂度。智能自适应是Serverless产品的必要能力。面向优化对象往往是作业集合,会利用丰富的历史统计信息、元仓、作业运行信息、海量的各种各样的query;有利于进一步AIforSystem,利用机器学习的能力做更好的系统决策。AIforSystem类似与大数据的‘自动驾驶’,可分为5级。
大数据+AI智能化。从最早的可用的,到当前主流的好用的(高性能低成本,成本优化),再到智能的(AIforSystem利用机器学习的能力做更好的系统决策)。AI智能优化的大数据系统已经成为云原生大数据技术演进的重要方向。正如之前所提到的智能自适应与AI机器学习相结合的智能数仓。整合了标准研发的DevOps/数据开发治理的DataOps/AI机器学习开发的MLOps,以GPTOps大模型辅助智能,AIOps一体化成为大数据智能化新趋势的一部分,智能实现可观测性/资源优化/问题定位等应用。
在此我介绍一下阿里云云原生大数据AI的4+1参考架构。其中4个一体架构包括离线实时一体/湖仓一体/流批一体/大数据AI一体,通过4个一体化架构覆盖阿里云核心自研与开源大数据产品,MaxCompute/Hologres/PAI/EMR/Flink/ES等等。1个统一数据AI平台,是整合DataWorks数据开发治理的DataOps与PAI机器学习平台的MLOps来构建面向未来的AIOps一体化平台能力。
我们以阿里云汽车自动驾驶的数据工程作为用例,介绍大数据AI一体的参考架构如何实践落地。
云原生大数据的架构趋势已经成为行业共识,其发展与迭代将持续进化下去,我们拭目以待!