《云计算加速开源创新》——云原生驱动数据抽象与缓存加速开源技术发展

简介: 《云计算加速开源创新》——云原生驱动数据抽象与缓存加速开源技术发展

一、 云原生对数据处理平台的影响

image.png

 

过去十年,云原生大数据人工智能系统在开源浪潮下发展迅猛,以Docker和K8S为代表的云原生技术在近些年取得了长足的发展,应用广泛,已经成为云计算的新一代重要技术。

 

以Hadoop、Spark、Flink为代表的大数据计算和存储系统已经成为大数据处理领域某种意义上的事实标准。在人工智能框架领域,以Tensorflow、PyTorch为代表的主流人工智能框架在用户的反复使用和社区的开发中也逐步成熟。

 

大数据的应用和AI的应用诞生之初面向大规模数据计算分析而设计,彼时更多的是运行在单机甚至常规固定规模的分布式集群中。

 

近些年,由于云原生平台在资源成本、扩容效率和高效部署方面的优势,越来越多的大数据和人工智能的框架已运行在云原生平台上。Gartner预测,到2023年,70%的AI的应用会以容器化的方式部署运行。Spark也在很早的版本上开始尝试与Kubernetes scheduler进行对接,拥抱云原生环境。

 

image.png

 

云原生计算架构正在重塑众多行业的服务与应用,其底部计算层面的关键技术包括计算存储分离、容器及其编排以及无服务器计算等,进一步往上诞生了很多重要的基础开源软件,比如云原生容器技术、云函数计算技术、云数据传输技术以及云原生存储技术这些方向的CNCF开源软件等。基于云原生开源软件可以构建很多云原生应用,进一步服务于各行各业的应用于服务。

 

image.png

 

云原生为数据处理平台带来了哪些优势?

 

第一,计算存储分离带来更低的扩容成本。不同应用、不同时刻对扩容存储和计算的配比都不一样,而计算存储分离的架构使得扩容变得非常灵活,成本也会更低。

第二,K8S和Docker非常好的容器及其编排技术,负载均衡变得更容易,可以灵活地对计算负载进行扩容和缩容,且可以应对不同流量。

 

第三,以函数计算为代表的轻量级的灵活计算,使得运行逻辑需要的资源变得更少,资源更轻,节约了成本,也更高效灵活。

 

image.png

 

任何计算框架都需要运行在基础设施上。

 

2012年,Hadoop技术应用较为广泛,此时大数据主要的计算引擎仅有MapReduce,底下大数据存储为HDFS,通常部署在分布式集群平台,当时也称为云平台,更接近于一个普通的集群,不易扩展。特点为计算存储要求本地化高效的并行计算,资源调度粒度通常较粗。

 

经过大数据时代的不断发展,用户对计算逻辑的处理要求越来越高,批计算已经难以满足很多场景的需求,出现了以社交网络为代表的图处理的需求、以实时消息数据流为代表的流处理的需求,以及迭代计算、机器学习等。底下的存储也不再仅限于HDFS,还有对象存储、NFS存储等。

 

总而言之,上层的计算框架和底下的数据源变得越来越丰富,并开始逐步解耦。此时,Alluxio问世,它可以对计算框架和数据源进行很好的桥接,并且实现数据统一的抽象往上层提供。框架解耦后,云平台支撑的环境的特点为支持多样化的框架,但环境维护相对复杂,不易进行弹性扩容。

如今,越来越多的应用被部署在云原生环境上,使用 K8S和Docker 来对资源进行标准化的封装和调度编排,底下的存储也变得更多样,甚至可以支持本地和公有云构建的混合存储。云原生环境下,我们对标准化数据的加速需求愈发强烈。

 

二、 云原生的标准化数据加速需求

image.png

 

数据密集型应用上云之后面临着巨大挑战。

 

第一,异构数据源带来的复杂性。用户需要管理很多数据源,存储系统也非常多样,难以实现最优的方案和最好的效果。

 

第二,计算存储分离架构下,数据密集应用需要频繁访问数据会带来IO的瓶颈,特别是算力的变化使得IO的需求不断变化,而存储分离架构难以适应。

 

第三,云原生环境不断地扩容缩容以及跨作业的运行,数据的感知和调度变得越来越更弱。

 

image.png

 

我们试图将数据看作商品,将存储看作超市,将应用看作消费者。

 

image.png

 

线上购物模式为:以客户为中心,商品贮藏在仓库,客户线上挑选商品, 由现代化物流交付商品,高效便捷、交易量更大。我们从线上购物模式中得到启发,发现云架构下缺少高速的数据物流(传输)概念。至此,云原生对于标准化数据的加速需求诞生。

 

三、 云原生数据抽象加速开源项目

 

image.png

我们设计了云原生数据抽象与加速的开源项目——Fluid。Fluid意为气流、流体,我们希望数据能够像云朵和气流一样,在云计算中心被高速运转、处理,而且可以便捷地被访问到。

 

Fluid项目建立之初需要面对三大挑战

 

云原生环境下数据访问和存储系统的配置复杂。

数据访问速率需求的动态变化。

异构环境下数据感知调度困难。

 

针对上述挑战,我们提出了三个理念,分别为数据服务抽象、数据自动加速以及数据感知,实现面向应用场景的高层数据抽象与缓存自适应配套、数据处理实时感知的数据加速弹性伸缩机制,以及数据分布感知的应用运行机制和调度优化策略。

 

image.png

 

首先,我们提供了云原生级别的数据集抽象,类似于Spark的RDD,我们将其进一步泛化到云原生平台,目前仅针对于数据集的资源特性。底下每个数据集Dataset均可对接不同的存储数据源,并提供统一的标准化访问接口。同时,会为每个Dataset绑定一个分布式缓存,为数据集定制化地进行分布式缓存的优化和参数调优。

 

image.png

 

面向IO的弹性需求,我们提出了自适应扩缩容机制,类似于TCP拥塞控制协议里的感知自适应机制。当我们感知到计算应用对数据访问的需求量变大且即将成为瓶颈时,会自动对缓存系统进行水平扩容,使得对数据访问的需求可以高效地被满足。

 

image.png

 

另外,我们还提出了数据感知的应用协同编排调度,用于感知不同作业之间依赖的数据集关系,从而进行协同编排调度。

 

比如数据集A被J1、J3、J7依赖,数据集B被J2、J6、J8依赖。如果需要以最快速度将这批作业完成,应该对作业的次序进行合理排序,使得数据集依赖的作业尽量在一起运行,而这一切的感知需要与开发者调度进行结合。

 

image.png

 

开源Fluid系统架构利用了很多k8s组件,对K8s保持了生态低侵入性,且支持很多定制化的环境系统,包括Alluxio、JindoFS、GooseFS等。

 

我们对于Fluid研究的相关工作已经汇总为论文进行了发表。

 

image.png

 

南京大学与阿里云团队、Alluxio等单位联合发起的Fluid开源项目已经进入CNCF官方沙箱,得到了云计算产业的广泛关注。

 

image.png

 

相关技术也进入国际云原生技术生态体系,推动了Fluid项目的发展。Fluid开源项目入选了CNCF LandScape,并获得中国信通院尖峰开源项目奖项。

 

image.png 

 

未来,我们计划支持更多类型的数据密集型应用运行在云原生平台上,为其提供高层的数据抽象。另外,面对不同的数据应用需求,考虑更复杂、更多样的调度,联合启动编排策略。最后,希望与更多云原生现有的调度和编排工具进行集成。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
监控 Cloud Native Java
Quarkus 云原生Java框架技术详解与实践指南
本文档全面介绍 Quarkus 框架的核心概念、架构特性和实践应用。作为新一代的云原生 Java 框架,Quarkus 旨在为 OpenJDK HotSpot 和 GraalVM 量身定制,显著提升 Java 在容器化环境中的运行效率。本文将深入探讨其响应式编程模型、原生编译能力、扩展机制以及与微服务架构的深度集成,帮助开发者构建高效、轻量的云原生应用。
679 44
|
9月前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。
|
4月前
|
Kubernetes Cloud Native 云计算
云计算与云原生技术探索
🌟蒋星熠Jaxonic,云原生探索者!以代码为舟,遨游技术星河。专注容器化、微服务、K8s与DevOps,践行GitOps理念,拥抱多云未来。用架构编织星辰,让创新照亮极客征途!
云计算与云原生技术探索
|
4月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
489 2
|
6月前
|
存储 分布式计算 调度
云计算核心技术
云计算作为IT领域的热门技术,融合网格计算与虚拟化,通过资源池和分布式存储提供高效计算与存储服务。其架构涵盖物理资源、资源池、管理中间件及SOA构建层,关键技术包括虚拟化、海量数据处理、资源调度、服务管理及云平台,旨在实现低成本、高可靠、可扩展的服务交付。
614 0
云计算核心技术
|
9月前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
7月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
710 0
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
456 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
6月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
615 15
|
6月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。