前言:曾经成为数字化时代显学的云原生并非单项技术,而是一种重塑了软件开发和和业务运行利用的设计思维,是一套技术体系和方法论。云原生“Cloud Native”的 Cloud 是指云平台,Native 则示意应用程序从设计之初即应用云环境、天生为云而设计,充分利用和施展云平台的弹性 + 分布式劣势。据相干机构(Gartner)预测,部署在云原生平台上的数字工作负载将由 2021 年的 30% 增长至 2025 年的 95%。对象存储作为最早的云服务,已广泛支持各种云业务,在数据湖畛域更是成为对立存储的不二之选。
一 何为云原生
1.1 云原生定义
随着技术倒退,云原生定义也在一直演进,如下是云原生计算基金会 (CNCF,Cloud Native Computing Foundation) 目前的云原生定义:
“云原生技术有利于各组织在私有云、公有云和混合云等新型动静环境中,构建和运行可弹性扩大的利用。云原生的代表技术包含容器、服务网格、微服务、不可变基础设施和申明式 API。
此形容的前一句论述云原生的利用场景和指标,后一句则介绍云原生会应用到的相干技术。目前,以容器、微服务、DevOps 为代表的云原生技术已在金融、电信、互联网等多个行业失去实际和验证,为企业提供了具备弹性、韧性及拓展性的用户体验。
1.2 云原生技术特色
依据云原生的技术架构,它能够宽泛部署到公共云、公有云、混合云等云环境。
通过 CI/CD 继续集成实现麻利利用开发。
采纳容器的轻量化运行环境升高资源开销、优化老本,基于服务网格(例如 Istio)来管控利用的各模块、实现灵便调度,通过微服务架构理念将利用切分多个模块化服务,基于分而治之的办法让多团队疾速迭代开发。
不可变基础设施,则是通过容器镜像(Docker Images)来交付软件,将软件和运行环境打包公布,缩小环境适配的复杂度;而提供软件包,再到客户环境部署、调试、运行的计划,则须要思考各种兼容状况,非常复杂。某些场景下,基于镜像的部署工夫只有基于软件包部署工夫的 1 /10,极大优化软件交付。
申明式 API,相似 K8S(Kubernetes)只需提交定义好的 API 接口来“申明”,示意所冀望的最终状态,一次调用就可实现。而软件包部署形式下,须要通过执行命令实现一步一步交互,最终实现公布,这种“命令式 API”相较于 K8S 的“申明式 API”效率低下。所以,通过“申明式 API”能够让零碎之间的交付更加简略,无需关注过程细节。
1.3 云原生对存储的需要
在上述的云原生技术架构下,对存储提出了诸多需要,包含:
- 容器的安全性
不论是 CI/CD,还是容器、微服务,通常都运行在虚构网络(VPC)环境中,如何实现 VPC 容器下的平安数据拜访是根底要求。
- 微服务的隔离性
基于服务网格、微服务架构,利用须要划分为泛滥的子服务,升高子服务间的烦扰、实现子服务间的数据拜访隔离至关重要。
- 弹性扩大能力
微服务架构中的子服务模块会引入突发流量,例如 10,000+ 的容器并发拜访数据将会带来拜访洪峰。而不可变基础设施的容器镜像批量启动风暴,也会带来集中的刹时流量,因而须要存储提供弹性扩大能力。
- 高可用、高牢靠
微服务架构会产生大量的子服务,它们都须要高可用、高牢靠的底层存储,从而实现企业级利用要求的 5 个 9 可用性。
- 单位存储密度的性能,可预期的带宽、时延、OPS
容器化的细粒度运行环境,在公共云上实现了秒级计费能力,比弹性计算服务器的小时级更精密。所以,存储提供单位密度的带宽规格(每 TB 的 Gbps 带宽能力)、稳固的申请时延和 OPS(99.99% 的申请在指定工夫 T 内实现),能够无效地帮忙微服务评估应用存储的时长,从而能够按需开释容器,取得最合适的性价比。
二 对象存储如何反对云原生
2.1 对象存储合乎云原生定义
对象存储作为数据寄存的平台,人造反对构建和运行可弹性扩大的利用。而且容器、服务网格、微服务在设计开发的晚期就应用对象存储来存放数据,容器镜像数据寄存的罕用技术也是对象存储。对象存储的 Restful API 齐全匹配申明式 API 要求,因而对象存储是云原生数据存储的现实之地。
2.2 云原生给对象存储带来的挑战
对象存储利用到云原生,是典型的存算拆散架构;同时对象存储作为数据底座,它的高牢靠、高可用以及弹性扩大能力,已在云上失去宽泛认可。
云原生利用正在引领各个应用领域实现云原生化的同时,也在粗浅扭转着应用服务的方方面面。对象存储作为利用运行的基石,在服务云原生化过程中遇到了更多的挑战。安全性、隔离性、单位密度的性能,都是对象存储的面临的新挑战,须要集中解决。
2.3 对象存储该做些什么
- 增强针对 VPC 环境的容器拜访对象存储安全性
实现 VPC 运行环境和对象存储桶的平安拜访绑定能力。限定在 VPC 内只能拜访指定的对象存储桶,防止“内鬼”从企业 VPC 将企业的对象存储数据拷贝到集体的对象数据桶,这须要对象存储提供 VPC Endpoint 性能;也须要限定对象存储桶只能被指定的 VPC 拜访能力,防止内部黑客盗取密钥后导致数据透露,须要对象存储提供 Bucket Policy 性能。
- 微服务的 PoD 级拜访对象存储桶的灵便权限
相似云计算服务器绑定拜访存储的 Access Token,须要为 PoD 绑定拜访存储的 Access Token,通过 Token 的临时性,防止 Access Key 这样的长期密钥被盗取,从而带来影响微小的平安危险。
- 面向微服务的隔离性
拜访隔离。利用的不同子服务,能够应用同一个数据存储桶,但须要为每个子服务提供不同的拜访域名,并绑定不同的拜访策略,管制拜访门路、权限,实现拜访隔离,须要对象存储提供 Access Point 性能。
- 流控隔离
为利用的子服务,提供用户级、子用户级、对象存储桶级的流量控制能力,限度子服务能应用的带宽,防止利用被异样流量冲垮。
- 提供单位存储密度性能的规格
通过不同存储类型,提供差异化的单位存储密度性能。例如高性能存储类型,为每 TB 容量提供不同带宽能力,带宽性能规格越强,价格越高。从而可能依据理论性能需求,为利用抉择不同的存储类型。
- 保障稳固可预期的时延和 OPS
存储的数据拜访时延存在稳定,即便大部分时候都是低时延,但大量的长尾高时延,也足以让云原生利用的运行时长不可预期,只能依照最坏的长尾高时延设计。所以,对象存储的各种存储类型都应该提供稳固的时延和 QPS,而不是一味谋求极致低时延。
- 热点数据性能减速
容器批量启动风暴和并行计算框架,都会带来大量热点数据的反复读。提供凑近容器可用区(AZ)部署的对象存储热点数据加速器,能够进步容器加载速度和疾速实现并行计算工作。
三 如何做好云原生下的数据湖
数据湖是解决大数据存储与利用的无效伎俩。如下图所示,为了更好地适配云原生利用,数据湖除了更强的高可靠性、高可用、弹性扩大需要外,还须要在安全性、隔离性、反对计算引擎的接口和性能上提供更强的性能。为了更好的利用云原生容器的细粒度运行环境,还须要单位存储密度的性能,实现可预期的带宽、时延和 OPS,以及性能减速能力,从而让微服务的数据拜访时长可建模计算,使得利用能够准确申请和开释容器,达到老本优化。
除了这些变动外,还须要关注如下的点:
- 数据湖撑持云原生计算的接口适配
云原生理念被宽泛承受,基于云原生架构构建的数据分析计算引擎遍地开花。而基于对象存储的数据湖,要反对丰盛的计算引擎,包含存量的历史引擎(如 Hadoop 生态)、以及新的引擎(如 Spark、Iceberg、Hudi、Delta Lake 等)。数据湖要反对额这些引擎,就必须要适配数据拜访接口,特地是历史的 Hadoop 生态拜访的 HDFS 接口。
- 可观测的运维
因为云原生采纳微服务架构,利用通常由多个微服务组成,它简化了部署难度,但随着数据链路减少,也增大了排查问题、剖析性能、度量零碎的运维难度。因而云原生须要架构相干模块提供可观测的运维,对象存储作为数据存储也须要提供可观测运维的 Log/Metric/Trace 能力,被云原生利用集成。
- 可编排和调度的资源
云原生通过编排和调度实现利用的灵便部署和治理,对象存储须要提供编排和调度的接口,并整合到云原生平台中,从而让存储资源按需疾速可用。
云原生充沛开释了云计算的红利,将来将有更多的业务利用生于云,长于云。因而,随着云原生架构的利用拓展到更多的畛域,新需要将如雨后春笋般涌现,在这样的背景下,数据湖将会一直演进,进而更好满足业务的理论需要。
原文链接
本文为阿里云原创内容,未经容许不得转载。