基于 ACK Fluid 的混合云优化数据访问(一):场景与架构

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 基于 ACK Fluid 的混合云优化数据访问(一):场景与架构

作者:车漾(必嘫)


本系列文章将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景。


概述


在 AI 和大数据时代,算力即正义,强大的算力推动了源源不断的创新。然而,企业自建的算力集群存在资源容量和弹性能力相对有限的问题,在业务低谷时可能会面临高昂的资源闲置成本,而在业务高峰时则可能会面临资源紧张的挑战。特别是在 AI 和大数据时代,越来越多的企业正在寻求将公共云作为算力的有效补充。


考虑到某些企业对于数据主权的特殊要求,他们需要将数据存放在私有云中,但同时也希望能够享受公共云的弹性、可靠性和成本优势。在这种情况下,混合云的使用变得愈发普遍。混合云可将阿里云的云服务与企业自建数据中心相融合,阿里云上的计算资源通过专线访问数据,并由 ACK One 统一进行管理。这种混合云解决方案不仅帮助客户节省成本,还提供了更高的性能和更强的安全保障。但是跨云的计算访问数据场景会带来共性的问题:


  • 云上通用计算和线下异构存储的适配复杂:适配公共云通用弹性计算访问线下异构存储需要一定的开发和集成工作,时间周期较长。生产环境的维护和问题排查成本也会有所增加。
  • 数据访问性能影响工程效率:跨云数据访问慢影响数据分析和 AI 训练的效率。
  • 冗余数据访问开销:对于热点数据的反复读取会带来不必要流量费用。
  • 数据源的传输和复制 / 同步:如何复制 / 同步线下和公有云的数据,保证数据的一致性?



下面我们介绍一下 ACK Fluid[1]支持混合云数据访问常见的应用场景,这些场景以 Kubernetes 下读数据为主特点是接入简单,无侵入,性能好,低成本,自动化:


应用场景 1:

接入第三方分布式存储,连接弹性计算实例和云下存储


许多企业的数据都是存在线下,并且使用的存储类型多样,包括各种开源存储(Ceph,lustrure,JuiceFS,CubeFS)和自建存储。在使用公共云计算资源的时候,也存在挑战:

  • 数据迁云安全性和成本评估时间长:对于数据迁移到云存储上,需要安全和存储团队的长时间评估,这会延缓整个上云过程。
  • 数据访问无法适配:比如公共云对于弹性计算实例(ECI)支持的分布式存储类型有限(比如 NAS,OSS,CPFS),但是对于第三方存储缺乏支持。
  • 接入云平台周期长和难度高:需要开发和维护云原生兼容的 CSI 插件,一方面需要相关的专家和开发适配工程量,同时要维护版本的升级,同时支持的场景有限。比如自建 CSI 无法适配弹性计算实例(ECI)。
  • 缺乏可信透明的数据接入方式:如何在 Serverless 容器的黑盒系统访问数据过程中规避泄露,如何确保数据在传输、访问过程中安全,透明,可靠。
  • 避免业务修改的需求:如何确保业务用户不感知基础设施层面的差异,避免对现有应用本身进行任何修改。


ACK Fluid 通过提供 ThinRuntime 扩展机制[2]支持将基于 FUSE 实现第三方存储客户端以容器化的方式接入 Kubernetes 中,可以支持阿里云上标准 Kubernetes,边缘 Kubernetes,Serverless Kubernetes 多种形态。


1. 开发简单

基于 ThinRuntime 方案,只需要会用 docker 即可,一般开发工作 2-3 小时左右,从而显著降低了接入第三方存储的工作成本。


2. 安全可控

以容器化的方式支持自定义方式实现数据访问。整个数据访问过程云平台无侵入,无需提供实现细节。


3. 使用方便

只需要在 PVC(持久卷申请)中添加特定 label 即可,满足了业务用户无需感知基础设施层面的差异的需求,能将存储适配时间缩短为原计划的十分之一。


4. 开源标准

基于开源 Fluid 标准对于 ThinRuntime 提供了完整的支持,只要满足开源要求就可以适配 ACK Fluid。整个开发测试可以在 MiniKube 环境完成。


5. 可观测可控制

第三方存储客户端只需要实现自身的容器化,就可以转化为 Fluid 管理的 Pod,无缝接入 Kubernetes 体系,并获得可观测性和计算资源可控制性。


总结:ACK Fluid 为云上计算访问云下数据提供了扩展性好,安全可控,低适配成本与云平台实现无关的好处,应用案例参见小米[3]



应用场景 2:

加速第三方存储卷声明,降低资源成本


在满足场景 1 下,即便云上计算能够以 Kubernetes 的标准化协议 PV 存储卷访问企业的线下存储,也无法避免在性能,成本上的挑战和需求:


  • 数据访问带宽有限和高延时:云上计算访问云下存储带来的数据访问延时和带宽有限,导致高性能计算耗时长,计算资源利用率低
  • 数据冗余读取,网络费用昂贵:深度学习模型的超参调优、自动调参深度学习任务等运行期间会不断重复访问同一数据。但是由于 Kubernetes 原生调度器无法感知数据缓存状态,导致应用调度的结果不佳,缓存无法重用,导致数据重复拉取引入更多外网和专线费用。
  • 线下分布式存储是数据并发访问的瓶颈,而且面临着性能和稳定性方面的挑战:当大规模算力并发访问线下存储且深度学习训练的 IO 压力增大,线下分布式存储很容易成为性能瓶颈。这会对计算任务造成影响,甚至会导致整个计算集群失效。
  • 受网络稳定性影响严重:一旦公共云和数据中心之间网络不够稳定,会导致数据同步出错,应用处于不可用的状态。
  • 数据安全需求:元数据和数据需要保护,不允许够持久化到云盘上。


ACK Fluid 提供了基于 JindoRuntime 的 PV 存储卷通用加速能力[4],可以支持满足 PVC 的第三方存储简单,快速,安全的获得通过分布式缓存实现数据访问加速能力,可以带来如下好处:


1. 使用简单

只需要实现 CSI 协议中 PVC 的第三方存储即可以立即使用,无需额外开发。


2. 高性能,提效率

通过数据预热、弹性带宽和缓存亲和感知调度,实现云上计算集群访问云下数据性能无损失


3. 降成本,省流量

通过分布式缓存将热点数据持久到云上,减少数据读取,降低网络流量;同时吞吐可以弹性伸缩,按照业务削峰填谷。


4. 自动化

以数据为中心的自动化运维,提高运维效率:包括自动缓存预热、自动化扩缩容和清理,实现高效管理。


5. 更安全

分布式内存缓存提高安全性:无需数据落盘,适用于敏感用户,提供卓越性能和安全保障。


总结:ACK Fluid 为云上计算访问第三方存储 PVC 提供了开箱即用,高性能,低成本,自动化和无数据落盘的收益,应用案例参见 360。



应用场景 3:

实现第三方存储主机目录挂载 Kubernetes 化,标准化并加速提效


也有许多企业由于历史原因和技术云下存储选择没有支持 CSI 协议,只支持以主机目录的方式挂载,一方面存在与 Kubernetes 标准化平台的对接的挑战,另一方面也需要应对与场景 2 类似的性能和成本的问题:


  • 缺少标准化,上云困难:主机目录挂载的模式由于无法被 Kubernetes 感知和调度,很难被容器化工作负载使用和管理。
  • 缺少数据隔离性:由于整个目录都被挂载到主机上,并被所有的工作负载访问,导致数据全局可见。
  • 数据访问在成本,性能和可用性上有何场景 2 相同的需求,因此不再赘述。


ACK Fluid 提供了基于 JindoRuntime 的 PV 主机目录通用加速能力,直接支持主机目录挂载可以原生,简单,快速,安全的获得通过分布式缓存实现数据访问加速能力。


1. 标准化

将传统架构迁移至云原生:将主机目录挂载模式变化为 Kubernetes 可以管理的 CSI 协议下的 PV 存储卷,便捷与公共云标准协议结合。


2. 迁移低成本

传统架构迁移低成本:无需额外开发,只需要在部署时刻将 Hostpath 协议转换成 PV 存储卷。


3. 数据隔离更容易

接入 Fluid 后,可以通过子数据集模式可以控制不同用户对于线下存储不同目录的可见性,无需额外开发。


4. 高性能,提效率

通过数据预热、弹性带宽和缓存亲和感知调度,实现云上计算集群访问云下数据性能无损失。


5. 降成本,省流量

通过分布式缓存将热点数据持久到云上,减少数据读取,降低网络流量;同时吞吐可以弹性伸缩,按照业务削峰填谷。


6. 自动化

以数据为中心的自动化运维,提高运维效率:包括自动缓存预热、自动化扩缩容和清理,实现高效管理。


7. 更安全

分布式内存缓存提高安全性:无需数据落盘,适用于敏感用户,提供卓越性能和安全保障。


总结:ACK Fluid 为云上计算访问第三方存储的主机目录挂载方式提供了开箱即用,高性能,低成本,自动化和无数据落盘的收益。



应用场景 4:

跨区域中心数据分发


许多企业出于性能、安全、稳定性和资源隔离的目的,会在不同区域建立多个计算集群。而这些计算集群需要远程访问唯一中心化的数据存储。比如随着大语言模型的逐渐成熟,基于其的多区域推理服务也逐渐成为各个企业需要支持的能力,针对这一场景,仍有不小的挑战:


  • 多计算集群间手动同步数据非常耗时。
  • 大型语言模型的管理复杂,由于不同业务需求会选择不同基础模型和数据,导致最终模型存在差异。
  • 模型数据频繁更新,根据不同业务输入进行迭代。
  • 拉取大型语言模型文件耗时长,启动模型推理服务较慢。参数规模庞大,体积通常达到几百 GB,在 GPU 显存中加载时间巨大。
  • 模型更新要求所有区域同步更新,使用过载的存储集群进行复制作业会严重影响现有负载性能。


ACK Fluid 除了提供通用存储客户端的加速能力,还提供了定时和触发式数据迁移和预热能力,简化数据分发的复杂度。


1. 节省成本

跨区流量成本大幅降低,计算时间明显缩短,少量增加计算集群成本;并且可以通过弹性进一步优化。


2. 加速应用

由于计算的数据访问在同一个数据中心或者可用区内完成通信,延时降低,且缓存吞吐并发能力可线性扩展。


3. 简化数据同步

通过自定义策略控制数据同步操作,降低数据访问争抢,同时通过自动化的方式降低运维复杂度。



综述


在本文中,我们简单介绍了通过 ACK Fluid 和 JindoFS 团队的 JindoRuntime 可以支持的混合云场景分类,后续文章中,我们会对以上场景的具体实践和使用方式进行详细介绍。


相关链接:

[1] ACK Fluid

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/overview-of-fluid

[2] ThinRuntime 扩展机制

https://github.com/fluid-cloudnative/fluid/blob/master/docs/zh/samples/thinruntime.md

[3] 小米

https://www.infoq.cn/article/kco7hi5TcVE08ySwNIw7

[4] PV 存储卷通用加速能力

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/accelerate-pv-storage-volume-data-access

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
20天前
|
存储 Kubernetes 负载均衡
Kubernetes设计架构
Kubernetes 是一个开源的容器编排平台,用于自动化应用的部署、扩展和管理。其设计架构高度可扩展且灵活,能管理大规模分布式系统。核心组件包括集群(含主节点和工作节点)、API 服务器、etcd、控制器管理器、调度器、Pod、服务、命名空间、配置管理、持久化存储、网络模型及扩展性支持。这些组件共同实现了应用的高效运行与管理。
48 7
|
19天前
|
Kubernetes API 调度
Kubernetes 架构解析:理解其核心组件
【8月更文第29天】Kubernetes(简称 K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。它提供了一个可移植、可扩展的环境来运行分布式系统。本文将深入探讨 Kubernetes 的架构设计,包括其核心组件如何协同工作以实现这些功能。
39 0
|
19天前
|
安全 网络安全 网络虚拟化
优化大型企业网络架构:从核心到边缘的全面升级
大型企业在业务运作中涉及多种数据传输,涵盖办公应用、CRM/ERP系统、数据中心、云环境、物联网及安全合规等多个方面。其复杂的业务生态和全球布局要求网络架构具备高效、安全和可靠的特性。网络设计需全面考虑核心层、汇聚层和接入层的功能与冗余,同时实现内外部的有效连接,包括广域网连接、远程访问策略、云计算集成及多层次安全防护,以构建高效且可扩展的网络生态系统。
优化大型企业网络架构:从核心到边缘的全面升级
|
3天前
|
缓存 算法 安全
深入探索现代操作系统架构及其优化策略
本文旨在探讨现代操作系统的架构设计及其在性能优化上的关键技术。通过对操作系统的核心组件和调度机制的分析,揭示其背后的设计理念与技术挑战,同时提出针对性的优化措施,以提升系统效率和用户体验。
|
4天前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
22天前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
33 2
|
22天前
|
SQL 算法 关系型数据库
MPP架构数据仓库使用问题之ADB PG对于sort scan算子要如何生成并优化
MPP架构数据仓库使用问题之ADB PG对于sort scan算子要如何生成并优化
|
24天前
|
存储 Kubernetes API
在K8S中,etcd 适应的场景?
在K8S中,etcd 适应的场景?
|
4天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
|
17天前
|
开发者 Java
Play Framework深度解析:依赖注入的神秘力量,如何助力Web应用架构优化?答案即将揭晓!
【8月更文挑战第31天】依赖注入(DI)是现代软件开发的关键技术,用于分离对象创建与依赖关系,提升代码的可维护性和可测试性。Play Framework是一款高性能Java Web框架,内置了基于Google Guice的DI支持。本文探讨Play Framework中DI的最佳实践,包括定义组件、构造函数注入、字段注入以及作用域控制和自定义绑定等高级特性,帮助开发者轻松构建结构清晰、可维护性高的Web应用。
28 0

相关产品

  • 容器服务Kubernetes版