简介: 为了解决大数据、AI 等数据密集型应用在云原生计算存储分离场景下,存在的数据访问延时高、联合分析难、多维管理杂等痛点问题,南京大学 PASALab、阿里巴巴、Alluxio 在 2020 年 9 月份联合发起了开源项目 Fluid。Fluid 本质上是一个云原生环境下的数据密集型应用的高效支撑平台。本文将向大家介绍 Fluid 项目是如何将数据密集型应用更高效地运行于 K8s 环境中的。
作者 | 顾荣 南京大学 PASALab
(注:本文基于作者公开演讲报告内容整理完成)
来源 | 阿里巴巴云原生公众号
得益于计算成本低、易于扩展、部署便捷、运维高效等多方面的优势,云计算平台吸引了越来越多的数据密集型应用在上面运行。如今,以 Kubernetes 为代表的云原生架构,因其灵活的资源可负载性以及高效的应用编排调度,在很多AI/大数据等数据密集型场景中应用广泛。然而,云原生环境和数据密集应用计算框架在早先设计理念和机制上存在天然分歧。因此,如何帮助数据密集型应用在云原生场景下高效、安全、便捷地访问数据,是一个既有理论意义又具应用价值的重要问题。
为了解决大数据、AI 等数据密集型应用在云原生计算存储分离场景下,存在的数据访问延时高、联合分析难、多维管理杂等痛点问题,南京大学 PASALab、阿里巴巴、Alluxio 在 2020 年 9 月份联合发起了开源项目 Fluid。Fluid 本质上是一个云原生环境下的数据密集型应用的高效支撑平台。本文将向大家介绍 Fluid 项目是如何将数据密集型应用更高效地运行于 K8s 环境中的。
项目背景简介
1. 技术发展背景
过去十年云计算、大数据、人工智能等技术发展突飞猛进。
- 云计算平台领域:以 Docker、Kubernetes 为代表的容器及其编排的云原生技术,在应用服务部署自动化运维的浪潮当中得到了长足的发展。
- 大数据处理领域:以 Hadoop、Spark、Alluxio 为代表的大数据并行计算与分布式存储技术,在众多行业领域大数据处理与存储的应用落地中几乎形成了主流生态。
- 人工智能框架领域:PyTorch、Tensorflow、Caffe 等知名 AI 训练框架,在广大 AI 应用开发者反复使用和参与当中,发展日益成熟。
其中,大数据应用和 AI 应用通常需要围绕大规模数据展开计算分析,是典型的数据密集型应用,而云计算平台得益于其计算成本和易于规模扩展的优势,以及容器化在高效部署和敏捷迭代方面的长处,吸引了越来越多的数据密集型应用在上面部署运行。
大数据应用、AI、云计算三者的融合正在成为下一个重要的发展趋势。Gartner 预测,到 2023 年,70% 以上的 AI workloads 都将以应用容器化的方式部署运行,然后通过 Serverless 编程模型在云原生环境下进行构建。Spark 3.0.1 版本也开始支持 Kubernetes scheduler,拥抱云原生环境。
- 详情见 Gartner 报告:
- Spark3.0.1 runs on K8s:
https://spark.apache.org/docs/latest/running-on-kubernetes.html
2. 面临的问题
从用户的实际体验来看,现有云原生编排框架对数据密集型应用支持不够友好,主要体现在运行效率低下和数据管理复杂两方面。
运行效率低下:如上图所示,训练一个 RestNet50 神经网络,如果基于本地内存运行,大概每秒钟能训练近 1 万张图片;然而,在云原生环境下运行,基于 Cloud Storage 存储架构每秒训练的图片只能达到约 3000 张/秒,性能下降比较明显。
数据管理复杂: