2023 云栖大会在杭州如期举行,前身是阿里云开发者大会,作为阿里的主场,国内公有云计算份额最大厂商,今年的主题是:计算,为了无法计算的价值。大会主场两大主题:大模型和云计算。大模型的火热和未来可预见的应用场景充分了引起了大家的重视,上午场以人工智能在阿里云的发展为主,同时阐述了云计算为人工智能算力提供了坚实的支持。下午场,云产品线负责人各自从容器、存储、网络、数据库、Severless、大数据这几个主题介绍了这一年开发和提升的成果。作为一个大数据从业者,在公有云和容器化发展的大趋势下,我们关注的重点已经不仅仅是大模型,大数据在未来几年发展的重点方向是什么,大数据的技术演进路线会如何。
一、从技术主论坛上看云技术的主要进展
云栖大会上午场,阿里云创始人王坚做了一场演说,说到了云计算的第三次浪潮的到来。同时,阐述了自己对云计算第一次浪潮的理解,并用 Netflix 和米哈游两家企业的案例来表达对云计算浪潮到来所带来的效益。第二次浪潮以传动企业上云,比如银行上云为代表。第三次浪潮的标志事件是北京冬奥会核心系统上云。未来,企业上云是大部分的首选,公有云拥有的规模化和云计算的人才是根本原因。这点如同传统分散的手工作坊向集中式规模化的大型工厂演进。我们来具体看看,下午场的技术主论坛,在技术干货或者核心产品上都有哪些提升,在大数据领域会有哪些影响。下面我会将主要产品技术演讲进行摘要。
弹性计算/容器方面:核心点在于拥抱云原生,发布了基于 CIPU+ 飞天操作系统构建第三阶段弹性计算。ECS 的计算从支持 Intel 到自研的倚天 710 和 AMD 芯片,各款芯片的主打方向不同。同时,对不同的 ECS 实例,做了针对价格的细分。经济型实例主打学生、中小企业开发者、测试环境。HPC 实例、高性能高稳定实例,主打一些特殊要求行业。介绍了 ECI 容器能力,举例某头部公司,基于 ECI 容器的能力,构建自己的弹性大数据系统,感觉很意外的,日累计可以创建 200W 个 ECI 的实例。
存储方面:重点是阿里云的对象存储 OSS,也是大数据领域如果上云使用的基础服务。提供 OSS 的标准、低频、归档三种存储类型和归档直读。提升 OSS 带宽到 100Gbps,举例 270GB 的模型,大约 20 秒读完。OSS 的协议兼容支持,OSS-Posix 本地文件,OSS-HDFS 兼容 Hadoop 协议。
网络方面:阿里的飞天洛神云网络,提升了高性能网络接入和转发,主要是软硬协同、互补。云原生对网络的挑战,以前的网络是为虚拟机提供的,现在要为容器 Pod 提供,两者的数量级不同带来的挑战。一是容器对网卡的创建速度要求高,从原来的几百的弹性提升到几千,二是基于 K8s 的无缝融合,优化了各种网络层查表和内存管理。介绍了主动重路由技术,来解决多区域网络突然闪断问题,以及模型训练对大网络带宽的需求。
托管的K8s:主要阐述了一些使用数据,64% 用户生产环境使用 K8s,云上 K8s 增速达到 127%。云托管的 K8s 超过本地部署,占比 73% 等。将托管的 K8s 集群产品定价重新规划了一下。
数据库方面:介绍了瑶池 Rds、Polardb 以及 Adb,基于开源的有 Selectdb、Mongodb、Clickhouse。其中,阐述了拳头产品 Polardb 的性能优化。在产品方面,Rds+Redis、Polardb+Tair,内置缓存和无需人工关注读写一致性。同时,介绍了Adb 和 Lindorm,Lindorm 作为 Nosql 数据库的能力和支持多模态。
大数据方面:介绍了 Pai 平台,Maxcomputor 支持 Python 处理,Flink+Paimon 新一代实时湖仓方案,Dataworks 智能化升级,比如支持自然语言,全托管向量检索服务 Dashvector,最后介绍将要全面 Serverless 化的产品,比如 ES、Spark、StarRocks 等。
二、大数据技术发展和应用现状
大数据的技术发展起步于 Google 的 2003 年三篇论文,GFS、Bigtable、MapReduce,愿称之为大数据 1.0 阶段,分别阐述了海量数据存储、快速点查、通用计算。后来基于三篇论文原型实现的大数据开源组件,Hadoop 技术体系,包含 HDFS、Hbase、Yarn、MapReduce,分别解决在廉价机器构建分布式存储、快速点查、资源调度、海量数据计算问题。
随着技术的发展,大数据组件的推陈推新,以 Hive、Spark、Storm 为代表,大数据迈入了 2.0 阶段,同时像ELK解决特定场景的轻量化的链路也有了发展空间。过程中,OLAP 分析领域迎来了新的发展,如 Clickhouse、Kylin、Druid 等 OLAP 引擎。数据的主要构建方式过渡到了以类 SQL 为主。
在后面的 2.0 阶段,实时计算方面,2015 年谷歌发表《Google-DataFlow》介绍了流式计算的概念,后来有了开源的 Flink 实时计算,大数据处理步入了 2.5 阶段。近年来,企业迎来了上云浪潮,带来了阿里云的迅猛发展。K8s 体系在业务系统逐渐普及。在 OLAP 领域,迎来了新一批成员,如 StarRocks、Doris 等 MPP 数据库引擎。同时,数据湖的快速发展,Hudi、Iceberg、Delta、Paimon,在存储层和表之间构建了一层,基于云上对象存储近乎无限的特点,数据仓库的概念步入了数据湖的概念。
那么我们是不是可以算进入了大数据 3.0 阶段呢?我认为还有一块需要补足。虽然大数据跟随所在公司上云,应用了云上的基础设置,但是大数据技术的构建,本质还是基于传统的 ECS 来实施,从公有云的发展来看,K8s 天然提供的资源调度和编排体系能够替代 Yarn 资源调度。基于 HDFS 的存储,能够使用 OSS 来构建数据湖系统。网络方面,公有云看到了大数据云原生的趋势,网络方面已经做了升级改造。K8s 的弹性能力在成本的天然优势是众多企业的首选。那么,需要解决的问题在于计算组件如何契合K8s体系,形成云原生。
我们可以看到主要大数据组件的发展趋势,Spark、Flink、Clickhouse、StarRocks 等,正在快速发展自身基于K8s构建应用的能力。在这个过程中,避免不了会碰到一些问题,下面我们来具体看一看。
三、大数据云原生的重难点
大数据上云和大数据云原生化是两个不同的概念。大数据上云,一般可以理解为,企业不需要去自建机房,使用公有云作为 IDC,大数据基于公有云的基础设施(虚拟机、存储、网络)来构建大数据技术体系。大数据的云原生化,则是指将大数据技术与应用部署在云原生环境中,利用云原生的优势,如容器化、弹性伸缩、存算分离等,以实现更高效、更灵活、更可靠的大数据处理和分析。
需要注意的是,大数据云原生化的实现需要解决一些技术和生态问题,如兼容性、资源管理、计算性能和生态融合等。因此,在实现大数据云原生化时,需要进行全面的架构设计和实施方法选择,以确保最终的解决方案能够满足实际需求。将大数据组件进行云原生化的升级改造,具体来说需要从存储、计算以及调度这三个基础维度来入手。
存储方面相对来说,比较容易进行改造和替换,企业可以选择市面上多种云存储,且这种云储存除了具备高容错、高可靠性以外,还需要具备冷热数据分层管理,以及与主流大数据计算引擎 Hive、Spark、Trino 等无缝兼容适配能力,如阿里云近年推出的 OSS-HDFS 云存储。除了上述所说的云储存以外,将大数据进行云原生化改造,重难点问题在于计算和调度这两个维度。
K8s 之于大数据体系有几点问题相对突出:第一是大数据离线计算对于瞬时容器的突发需求,以 Spark 任务为例,一个较大规模的 Spark 任务短时需要的 Container 可能是几千到万级别,K8s 的 Pod 能否快速弹出,短时超大规模镜像拉取是否会有瓶颈。第二是随之而来容器基础网络问题,如 Pod 上网络的创建和释放能否满足,容器间网络带宽性能能否满足。第三是容器的挂载盘普遍较小,Spark 或 Flink 都存在Shuffle数据落盘的问题。大数据云原生在计算和调度两个维度,上述三个问题是需要解决的。
四、大数据云原生的可行性
从主论坛技术上看,大数据相关的核心基础设施在容器上都有较大提升,如 Serverless 弹性容器和底层网络的性能提升、OSS 带宽的提升以及 OSS-HDFS 协议的支持。同时,开源社区中出现了各种用于大数据中间结果的 Remote Shuffle 组件,如 Celeborn 等。我认为大数据云原生化是可行的,相信很多公司的大数据发展方向会朝着云原生路线演进。在云栖大会的参会单位中,无意中看到了一家公司关于大数据云原生的案例:《米哈游大数据云原生实践》,分享者是这家公司大数据技术专家杜安明。他们的实践和我的想法不谋而合,下面我们来看一下他们是怎么做的。
他们主要分享了米哈游大数据架构向云原生化升级过程中的目标、探索和实践,以及如何通过以阿里云容器服务 ACK 为底座的 Spark 云原生架构,获得在弹性计算、成本节约以及存算分离方面的价值。
一是弹性计算。由于游戏业务会进行周期版本更新、开启活动以及新游戏的上线等,对离线计算资源的需求与消耗波动巨大,可能是平时水位的几十上百倍。利用K8s集群天然的弹性能力,将 Spark 计算任务调度到 K8s 上运行,可以比较轻松的解决这类场景下资源消耗洪峰问题。
二是成本节约。依托阿里云容器服务 Kubernetes 版 ACK 集群自身强大的弹性能力,所有计算资源按量申请、用完释放,再加上我们对 Spark 组件的定制改造,以及充分利用 ECI Spot 实例,在承载同等计算任务和资源消耗下,成本节约达 50%。
三是存算分离。Spark 运行在 K8s 之上,完全使用 K8s 集群的计算资源,而访问的数据也由 HDFS、OSS 逐步切换到 OSS-HDFS 上,中间 Shuffle 数据的读写采用 Celeborn,整套架构实现了计算和存储的解耦,易于维护和扩展。
整个分享看下来,米哈游大数据攻克了很多重难点问题,已经实现了大数据计算的云原生化,并且取得了很不错的收益。
附录:
2023 云栖大会技术主论坛:https://yunqi.aliyun.com/2023/techkeynotesession。
开源大数据平台 3.0 技术解读: https://mp.weixin.qq.com/s/iEAl4qk2pkabCi-vfOBRyA。
米哈游大数据云原生实践:https://mp.weixin.qq.com/s/VTV9J6J1J-KZlYO79M_J4g。