剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 云原生时代,我们如何解决海量容器的编排和存储?又该如何提升容器存储的性能和稳定性?

云原生趋势下,应用容器化比例正在快速增长,Kubernetes 也已成为云原生时代新的基础设施。

据 Forrester 预测,到 2022 年, 全球企业及组织在生产环境运行容器化应用。观察今天的容器和 Kubernetes 的应用现状,我们可以看到两个普遍的现象。首先,在云上托管 Kubernetes 已经成为企业上云及运行容器的优先选择。另外,用户使用容器的方式也在改变,从无状态应用 到 核心企业应用 到 数据智能应用,越来越多的企业使用容器来部署生产级别、复杂度高和高性能计算的有状态应用。比如 Web 服务、内容资料库、数据库,甚至 DevOps、AI/大数据应用等。

image.png

云原生时代,我们如何解决海量容器的编排和存储?又该如何提升容器存储的性能和稳定性?

容器应用趋势下的存储能力演变

随着基础设施从物理机到虚拟机,到以 Kubernetes 为代表的容器环境,甚至到 Serverless 的逐渐演进,今天的计算和应用正在面临巨大的变化,最明显的就是从过去应用在虚拟机里边去独占一个 CPU 内存分区,到今天在 Serverless 里演变成在函数层面去为用户提供服务。

image.png

在这样的技术体系下,存储的能力同样需要随之改变,主要体现在以下几个方面:

1.高密

虚拟机时代,一个虚拟机就对应一个完整的存储空间,可以用其去存储单个应用所需要的所有数据相关的访问和存储需求。但今天在 K8s 在 serverless 环境里的存储是共享的,一个容器需要去访问的是一个巨大的存储资源池,带来的代价就是存储的密度是非常大的,同时访问同一个存储能力的要求也变得更高。

2.弹性

当我们创建一个物理机或者虚拟机时,常会在一个比较稳定的周期之内访问和使用存储介质。但今天在容器环境里,前端计算服务的弹性伸缩变化是非常快的,可能需要瞬间从数十台到几百台,因此也需要非常高的弹性存储能力。

3.数据隔离

在 K8s 和 Serverless 里,很难做到内存和存储资源的独占,因为容器环境下存储资源、计算资源,甚至于操作系统以及一些依赖的基础包都是共享的。那这个时候就需要在基础架构层面实现一种安全的隔离,同样在上层的应用层面,也需要通过完善的安全策略和手段去实现数据隔离,这同样是非常大的变化和挑战。

容器环境下,企业需要怎样的存储能力?

块存储、文件存储、对象存储是现在比较常见的容器存储解决方案,那么在容器环境下,企业需要怎样的文件存储能力呢?

image.png

1. 应用兼容

我们很难快速让企业整体的应用方式发生转变。很多场景下,企业使用存储的方式会是共享或者分布式存储集群。这时,存储对于应用的兼容能力就非常重要,能不能在容器环境和非容器环境下保持一致,让应用的改造尽可能变得更少,甚至于不需要改造,这是一个迫切重要满足的诉求。

2. 极致弹性

容器部署的一大特点需要随着业务的峰值和波谷,满足快速的弹性需求。而当上层的计算发生弹性之后,底下的存储也需要有能力快速跟进,而不是用耗费大量时间去做底层数据的同步。

3. 共享

在大数据、高性能计算等场景下,应用的数据集是非常庞大的,量级动辄就是 TB、十几个 TB 的级别,有些场景甚至可以达到上百 TB。这种规格的数据如果无法共享,而是需要去在弹性的容器环境下通过拷贝传输完同步,这对于成本的压力、对于时效性的损失,都是很难保障的。

4. 安全可靠

不管底层的基础架构如何改变,是物理机、虚拟机、K8s 的容器还是 Serverless,无论怎么去抽象,业务应用最根本的诉求一定是安全,应用间不能相互污染。因此存储就必须在数据共享能力之上,为数据安全提供保障。

5. 优化成本

企业对于成本优化的追求,在所有的应用场景里几乎都是孜孜不倦的。即使是在最核心的应用场景里,我们依然需要去控制成本。因为今天业务的增长和变化是非常迅速的,数据的增速也是飞快的。怎么在数据快速增长的同时里兼顾成本的优化,也是对存储非常大的一个挑战。

阿里云容器网络文件系统 CNFS

针对容器中使用文件存储的优势和挑战,阿里云推出了容器网络文件系统 CNFS,内置在阿里云托管的 Kubernetes 服务 ACK 中。CNFS 通过将阿里云的文件存储抽象为一个 K8s 对象(CRD)进行独立管理,包括创建、删除、描述、挂载,监控及扩容等运维操作,使用户可以在享受容器使用文件存储带来的便捷的同时,提高文件存储的性能和数据安全,并提供容器一致的声明式管理。

image.png

CNFS 在弹性伸缩、性能优化、可访问性、可观测性、数据保护、声明式等方面针对容器存储进行了深度优化,使其与同类方案相比具有以下明显优势:

1.在存储类型方面,CNFS支持文件存储和对象存储,目前支持阿里云的NAS、CPFS、OSS云产品
2.支持 Kubernetes 兼容的声明式生命周期管理,可以一站式管理容器和存储
3.支持 PV 的在线扩容、自动扩容,针对容器弹性伸缩特性优化
4.支持更好的和 Kubernetes 结合的数据保护,包括PV快照、回收站、删除保护、数据加密、数据灾备等
5.支持应用级别的应用一致性快照,自动分析应用配置和存储依赖,一键备份、一键还原
6.支持 PV 级别监控
7.支持更好的访问控制,提高共享文件系统的权限安全,包括目录级 Quota、ACL
8.提供性能优化,针对文件存储的小文件读写,提供微秒级性能优化
9.成本优化,提供低频介质及转换策略,降低存储成本

典型使用场景及最佳实践

1. 极致弹性的容器应用场景

以互联网和大型金融服务类突发应用为例,这种场景下具有需要在短时间内弹性扩容大量的容器,对资源弹性伸缩有较高的能力要求的特点,因此容器存储需具备通用的弹性和快速伸缩能力。这类场景典型的应用包括:媒体/娱乐/直播、Web 服务/内容管理、金融服务、游戏、持续集成、机器学习、高性能计算等。

在这个场景中,Pod 需要灵活的挂载和卸载存储 PV,存储的挂载需要匹配容器快速启动,并且存在大量文件I/O;当海量的持久化数据快速增长,存储成本压力也会比较大。建议使用 ACK+CNFS+NAS 的组合,结合CNFS 可以做到以下优化:

内置文件存储类,在短时间内可启动数千个容器,并毫秒级挂载文件存储 PV
内置文件系统 NAS,可以为海量容器提供共享读写能力,快速实现容器应用/数据高可用
针对低时延和小文件的优化,实现微秒级读写性能,解决容器高并发访问对文件存储性能的要求
提供文件存储生命周期管理,自动冷热分级,降低存储成本

2. AI 容器应用场景

现在有越来越多的 AI 业务在容器中进行训练和推理,云上海量的基础设施和 IDC 结合的方式也为 AI 提供了更灵活的算力调度。当 AI 业务在云上进行训练和推理时,应用的数据集是非常庞大的。比如在自动驾驶领域,数据集可以达到 10个 PB 甚至于超百 PB 的规模,在如庞大的数据量下做 AI 训练,又需要保证训练的时效性,使容器 AI 主要面临以下挑战:

AI 的数据流复杂,存在存储系统的 IO 瓶颈;
AI 训练、推理需要高性能的计算和存储;
AI 算力协同,云和 IDC 资源/应用 需要统一调度

针对这个场景,建议使用 ACK 纳管集群+CNFS+文件存储 NAS/CPFS 的组合,主要可以获得以下优化:

优化的文件存储 NAS 读写性能,提供高性能共享存储,与 AI 场景完美匹配,支持海量小文件访问,加速 AI 训练、推理性能
适配了容器环境的 GPU 云服务器、裸金属服务器(神龙)等计算集群,提供超高吞吐和超高 IOPS 能力;CPFS 还可支持云上/云下混合部署
ACK 纳管集群,支持 ACK 纳管 IDC 自建的 Kubernetes 集群,云上/云下形成统一的资源池,异构资源/应用统一调度,最大化的利用云上海量基础设施的计算优势

3. 基因计算应用场景

现在基因检测技术已经逐渐走向成熟,并且在很多医院里慢慢被引入,通过对患者基因的测量更加精准、快速地解决复杂病症。对于我们每一个,基因的采样数据者是非常庞大的,动辙都是几十个 GB。而在进行某类定向的基因分析时,只有个人的样本是远远不够的,可能需要采集十万甚至百万个样本,这对容器存储会带来非常大的挑战,包括:

大规模样本的数据挖掘需要海量计算资源和存储资源,数据增长快,存储费用高,管理困难。
海量数据需要快速、安全的分发到国内多地,多数据中心需要共享访问
批量样本处理时间长,性能需求高,资源需求峰谷明显,难以规划

针对基因计算的场景,建议使用 ACK+AGS+CNFS+文件存储 NAS+OSS 的组合,来解决以下问题:

NFS 内置的文件存储类,可以快速搭建极速、低成本、高精度的基因计算容器环境,满足基因测序计算和数据共享需求
CNFS 支持对象存储 OSS 类型的 PV,可以保存下机数据和组装后数据以及分析结果数据,用于数据的分发、归档、交付,保证 海量用户同时上传、下载数据,提高数据交付效率。同时提供海量存储空间,同时通过生命周期管理,将冷数据归档存储,降低存储成本
AGS 针对基因计算的热点数据进行 GPU 加速计算,性能相比传统模式提高 100 倍,快速降低基因测序的时间和成本

当然,除上以上三种典型代表,CNFS 在很多场景下都可以为业务提供容器和存储结合使用的深度优化方案。欢迎大家通过文档了解:https://help.aliyun.com/document_detail/264678.html

案例:使用 CNFS 和文件存储构建现代化企业应用

通过与 CNFS的 深度集成,阿里云文件存储 NAS 已经成为容器存储最理想的解决方案。下面通过几个真实的客户案例,帮助大家更直接地了解如何使用阿里云容器服务 ACK 和文件存储构建现代化企业应用。

视频服务

百家云是全国领先的一站式视频服务提供商。疫情期间,百家云流量暴涨,业务量短时间内增长了数十倍,如此迅速扩容需要在客户无感知的情况下完成;另外,百家云业务场景大量读写需求,同时计算集群水平扩容4个集群,在录制转码的过程当中,原有存储系统遇到 IO 瓶颈,对于百家云大流量、高并发的处理能力是个严峻考验。

这里对存储提出的要求包括快速适配容器应用的弹性伸,以及缩之后需要快速的数据访问。最终,通过阿里云容器服务 ACK 和文件存储 NAS 的结合,优化容器集群架构,实现了在 3 天内弹性扩容 10 倍资源。

image.png

文件存储 NAS 按需弹性扩展,基于容器服务 ACK 自动化定时伸缩,短时间内启动数千个容器,可以完美适配容器应用的弹性。采用文件存储 NAS,提供标准的访问接口兼容主流转码软件,轻松挂载编辑视频工作站。百家云的 K8s 集群对性能要求极高,通过高性能 NAS 服务,能供提供最高 10GB 大吞吐,解决了 IO 瓶颈,完美应对百家云大流量、高并发的场景,保障疫情期间直播录制业务顺利上线。

自动驾驶

第二个案例是汽车行业的典型客户,该客户是中国领先的智能汽车制造商,也是融合互联网和人工智能前沿创新的科技公司,其产品搭载了多项人工智能技术的服务 ,如语音助手、自动驾驶等。

该企业面临的问题是在自动驾驶场景下,训练素材通常是上亿的 100KB 的小图片,总量高达上百 TB,训练过程中,GPU 通常需要反复随机访问训练集中的一部分图片,需要文件系统提供高 IOPS 的文件访问能力,从而加速训练过程;大规模存储系统稳定性以及性能无法随规模进行线性扩展;并且随着存储资源急剧增长,也带来了成本高、运维管理复杂等问题。

image.png

通过采用阿里云文件存储,完美支撑了该客户的智能驾驶的高性能计算平台,最终随机访问小文件训练速度提高了 60%;文件存储在集群中的多个数据节点,多个客户端同时访问,支持并行扩展;并且阿里云文件存储支持多级存储数据流动,大大简化了自动驾驶数据采集、传输、存储的流程。

基因计算

最后是来自基因计算场景的案例,该客户是全球领先的生命科学前沿机构。客户面临的问题:数据增长快,当前存储无法满足容量和性能线性扩展需求,基因计算性能遇到 IO 瓶颈;大规模样本数据存储费用高,管理困难。

通过使用容器集群挂载文件存储 NAS 高性能计算基因数据分析中的共享存储,保存下机数据和组装后的数据,以及过程中的中间数据,为该机构提供了低延时、高 IOPS 的容器存储能力,存储性能由 1GB/s 提升至 10GB/s,实现数据 12 小时端到端处理完成,包括数据上云,结果下云分发。

image.png

文件存储 NAS 提供弹性扩展和高吞吐量的带宽,根据每次业务规模不同,NAS 按需分配容量并且提供与之匹配的带宽,既满足了业务弹性的需求,又节省 TCO;文件存储 NAS 通过统一的流程、统一的资源调度云上和云下的异构计算资源,低成本且高效地完成基因计算任务。

更多关于阿里云容器网络文件系统 CNFS 的技术能力、应用场景和使用方式,请点击(https://yqh.aliyun.com/live/ack_cnfs_release)了解。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
10天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
42 2
|
8天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
10天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
2天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
4天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
8天前
|
Cloud Native API 持续交付
云原生之旅:从容器到微服务的演进之路
【10月更文挑战第39天】在这篇文章中,我们将一起探索云原生技术的奥秘。通过浅显易懂的语言和生动的比喻,我们将了解云原生技术如何改变软件开发的世界。文章将带领读者从容器的基本概念出发,逐步深入到微服务架构的实践,揭示这些技术如何助力现代应用的快速迭代与可靠部署。准备好,让我们启程进入云原生的精彩世界吧!
|
11天前
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
|
11天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
18天前
|
Kubernetes Cloud Native 微服务
云原生之旅:从容器到微服务
【10月更文挑战第29天】在这篇文章中,我们将一起探索云原生的奥秘。云原生不仅仅是一种技术,更是一种文化和方法论。我们将从容器技术开始,逐步深入到微服务架构,最后探讨如何在云平台上实现高效的服务部署和管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的技能。让我们一起踏上这段激动人心的云原生之旅吧!
|
19天前
|
运维 Kubernetes Cloud Native
云原生之旅:容器化与微服务的融合
【10月更文挑战第28天】 在数字化转型的浪潮中,云原生技术如星辰般璀璨,引领着企业IT架构的未来。本文将带你穿梭于云原生的世界,探索容器化技术和微服务架构如何携手共舞,打造灵活、高效的应用部署和运维模式。我们将通过实际代码示例,揭示这股力量背后的奥秘,并展现它们是如何为现代软件开发带来革新。准备好了吗?让我们启航,驶向云原生技术的深海。
下一篇
无影云桌面