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

作者:CNFS

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

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

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

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

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

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

1.高密

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

2.弹性

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

3.数据隔离

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

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

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

1. 应用兼容

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

2. 极致弹性

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

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

4. 安全可靠

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

5. 优化成本

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

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

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

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

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

典型使用场景及最佳实践

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 倍资源。

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

自动驾驶

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

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

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

基因计算

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

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

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

原文链接

本文为阿里云原创内容,未经允许不得转载。

剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境的更多相关文章

  1. 小程序应用的Python服务器部署高配,依然是腾讯云秒杀阿里云!

    上一篇文章,“小程序创业最低配置部署,腾讯云折扣秒杀阿里云!”介绍了小程序项目启动时的最低配置服务器选择,但当项目良好发展时,还是要把服务器配置调整到标准水平,承受住日益增长的流量访问. 随着Pyth ...

  2. 关于购买Redis服务器:腾讯云、阿里云还是华为云?

    个人分类: redis使用 编辑 新年伊始,很多商家都开始进行新年产品大促销,在分布是缓存Redis领域,几家大公司也是打得如火如荼,各有千秋啊. 现在市场上比较有口碑的商家有腾讯云.阿里云.华为云三 ...

  3. 奇点云 x 阿里云 | 联合发布综合体数字化转型与数据创新解决方案

    2019年7月25日下午,在阿里云峰会上海站,奇点云入选阿里云首批联合解决方案合作伙伴,并联合发布了“综合体数字化转型与数据创新解决方案”,共同探索综合体的智能服务. 关于综合体的数字化转型,奇点云联 ...

  4. 腾讯云原生混合云-第三方集群弹EKS应对突发流量的利器

    作者 何鹏飞,腾讯云专家产品经理,曾作为容器私有云.TKEStack的产品经理兼架构师,参与腾讯云内部业务.外部客户容器化改造方案设计,目前负责云原生混合云产品方案设计工作. 胡晓亮,腾讯云专家工程师 ...

  5. TKE 注册节点,IDC 轻量云原生上云的最佳路径

    林顺利,腾讯云原生产品经理,负责分布式云产品迭代和注册节点客户扩展,专注于云原生混合云新形态的推广实践. 背景 企业在持续业务运维过程中,感受到腾讯云 TKE 带来的便捷性和极致的使用体验,将新业务的 ...

  6. 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略

    1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kuberne ...

  7. 云原生K8S精选的分布式可靠的键值存储etcd原理和实践

    @ 目录 概述 定义 应用场景 特性 为何使用etcd 术语 架构 原理 读操作 写操作 日志复制 部署 单示例快速部署 多实例集群部署 静态 etcd 动态发现 常见命令 概述 定义 etcd 官网 ...

  8. RPA走专有云还是公共云?阿里云RPA公共云给出了这样几组数据…

    自从近年国外UIPATH.AUTOMATION ANYWHERE.BLUE PRISM等RPA企业的崛起,Robotic Process Automation(RPA)走进了人们视野.它以节省成本.提 ...

  9. EasyNVR完美搭配腾讯云CDN/阿里云CDN进行RTMP、HLS直播加速的使用说明

    1.相关资料入口 腾讯云LVB EasyNVR.com 2.加速说明 2.1. 腾讯LVB加速 2.1.1. 开通服务 腾讯云视频LVB开通入口 2.1.2. 登录进入控制台 腾讯云直播控制台 2.1 ...

  10. 阿里云ECS-Nginx阿里云客户端IP日志记录

    #前端有SLB服务,记录客户端真实IP信息 log_format main 'realip:$http_x_forwarded_for slbip:$remote_addr-$remote_user ...

随机推荐

  1. Python实现SQL注入脚本

    实验环境 攻击主机IP:172.18.53.145 目标主机IP:172.18.53.11 此处的靶场是Vulnhub中的WEB MACHINE: (N7) 靶场测试 访问靶场的登录页面,使用sqlm ...

  2. RMI反序列化分析

    RMI介绍 RMI全程Remote Method Invocation (远程方法引用),RMI有客户端和服务端,还有一个注册中心,在java中客户端可以通过RMI调用服务端的方法,流程图如下: 服务 ...

  3. 【Oracle】通过LogMiner实现Oracle数据同步迁移

    写在前面 最近在研究如何实现Oracle数据库之间的数据同步,网上的资料确实比较少.最好用的Oracle数据库同步工具是:GoldenGate ,而GoldenGate是要收费的.那么还有什么好的办法 ...

  4. Linux编写Shell脚本获取指定目录下所有文件并处理

    Linux编写Shell脚本获取指定目录下所有文件进行处理并保存到新目录 #!/bin/bash app_name="shell" path="/dir" #原 ...

  5. C++设计模式 - 抽象工厂(Abstract Factory)

    对象创建模式 通过"对象创建" 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 Fac ...

  6. HandlerInterceptorAdapter和HandlerInterceptor的区别

    其实归根揭底一个是抽象类,一个是接口,HandlerInterceptor是接口,它提供了所有方法,让开发人员必须实现所有方法, 而HandlerInterceptorAdapter是一个抽象类,它提 ...

  7. axios-api,js结构化定义、调用业务api接口。

    axios-api @no-996/axios-api基于 axios 可建立结构化实例的工具,有以下特点: 基于 axios,兼容 axios 的 api,可无缝的迁移使用. 内置了两种常用的请求终 ...

  8. Bootstrap实战 - 单页面网站

    一.介绍 单页面结构简单.布局清晰,常常用来做手机 App 或者某个产品的下载介绍页面.现在,展示型网页整体趋向于单页网站设计,这样一次性把核心信息展现出来,对于用户来说更加直观和简单,能够快速了解一 ...

  9. Python基础之:Python中的模块

    目录 简介 模块基础 执行模块 模块搜索路径 dir 包 包的相对路径 简介 Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了.这个时候我们需要将pyt ...

  10. 玩转OpenHarmony社交场景:即时通讯平台

    一.简介 本样例是基于即时通讯(Instant messaging,简称IM)服务实现的OpenAtom OpenHarmony(简称"OpenHarmony")应用,允许两人或多 ...