作者 | 易立 阿里云资深技术专家
导读 :云原生是云计算畛域的热点之一。就像“一千个人眼里有一千个哈姆雷特”,大家对 ” 云原生 ” 的定义也见仁见智。本文将介绍云原生利用架构和生命周期治理的进化方向。
概述
CNCF- 云原生计算基金会对于“云原生”的定义如下:
“云原生技术有利于各组织在私有云、公有云和混合云等新型动静环境中,构建和运行可弹性扩大的利用。云原生的代表技术包含容器、服务网格、微服务、不可变基础设施和申明式 API。
这些技术可能构建容错性好、易于治理和便于察看的松耦合零碎。联合牢靠的自动化伎俩,云原生技术使工程师可能轻松地对系统作出频繁和可预测的重大变更。
云原生计算基金会(CNCF)致力于培养和保护一个厂商中立的开源生态系统,来推广云原生技术。咱们通过将最前沿的模式民主化,让这些翻新为公众所用。”
在咱们的了解中,云原生计算蕴含三个维度的内容:
- 可编程的、动静的、弹性基础设施 :反对公共云、专有云、边缘计算等不同环境。
- 分布式应用架构 :具备松耦合、可弹性扩大、高容错性等特点。
- 翻新的利用开发、交付形式 :基于自动化、可观测、可治理的软件交付流程,减速翻新效率的同时保障系统稳定性。
接下来将以系列文章的模式,和大家分享阿里云容器服务团队在云原生计算畛域的摸索和思考。本文次要聚焦在云原生基础设施。
本系列文章:
- 第一篇 – 云原生基础设施
- 第二篇 – 云原生软件架构
- 第三篇 – 云原生利用交付与运维体系
云原生基础设施
Gartner 将云原生基础设施划分成四大类:
咱们能够看到这几类基础设施,计算单元的粒度越来越细,也越来越多体现的云原生的特质:
- 模块化水平越来越高 – 自蕴含的利用打包形式,利用与底层物理基础设施解耦。
- 自动化运维水平越来越高 – 自动化的资源调度和弹性伸缩能力,用户将关注点逐步聚焦到利用本身。
- 弹性效率越来越高 – VM 能够实现分钟级扩容;容器能够实现秒级扩容;函数能够做到毫秒级扩容。
- 故障恢复能力越来越高 – 随着零碎自愈性的加强,大大简化了利用架构容错的复杂性。
为了更好地了解云原生计算呈现的时代背景,咱们必须要了解云计算的经济学根底与外围竞争力所在。
应“云”而生
经济学家亚当·斯密提出:分工是社会倒退的必然,而且分工将极大的进步生产效率。
从经济学的角度来讲,云计算是 IT 产业倒退的必然阶段。互联网和挪动互联网时代的到来,减速了企业的数字化转型。云计算能够提供时刻在线的服务能力,并满足日益增长一直变动的计算需要。此外,云计算将 IT 服务的固定成本投入转化成为了可变老本,极大升高了翻新老本。在咖啡馆中,随处可见守业的青年人围坐在一起构画将来,是互联网和云计算让幻想变得触手可及。
云计算的规模经济
云计算的经济学根底来自规模经济。直观上,批量洽购,带来更低的供应链老本;大型数据中心,升高经营老本。更重要的是,因为不同用户不同工夫的工作负载不同,能够利用规模劣势进行削峰填谷。联合自动化、智能化的供应链和经营体系,进一步晋升了硬件资产经营效率。云计算正如电力这样的公共服务基础设施,集中发电比每家每户自建发电机,有更低的老本和更高的效率。
此外,云计算是典型的平台型业务模式。随着规模的增长,会产生网络效应。提供为企业提供产品 / 服务的 ISV 与 SI,会更加青眼于那些领有更多用户的云平台。而用户会更加偏向于可能提供丰盛技术产品和服务撑持生态的云平台。随着云平台的成长,将对用户和生态产生更强的吸引力。
云计算的外围技术创新减速规模效应的造成。比方,计算资源池化与虚拟化技术,让利用和底层硬件资源解耦。一方面晋升资源利用率,升高计算成本;一方面晋升了资源的弹性供应,弹性成为差异化云基础设施和传统 IDC 的要害能力。
此外,在传统 IT 中,软件、硬件和服务由不同厂商拆散交付。而云计算将软件、硬件、服务一体化交付,极大升高了计算成本,晋升了交付效率,提供了翻新的技术能力。这外面有几个关键点:
- 软硬一体设计,能够针对规模和性能进行全栈优化,极大升高计算成本。而且因为云计算的规模效应,随着产量的减少,边际老本会拉低均匀制作老本。寰球支流云厂商都在 IDC 设计、网络、芯片等方向加大自研投入。
- 以 API 形式交付 IT 能力,一方面可编程的基础设施极大晋升了 IT 的敏捷性,更好地反对业务敏捷性;一方面 API 能够更加不便地被集成到三方服务商的解决方案中,进一步减速规模效应产生。
- 随着 IT 能力的规模化,一些数据化、智能化的翻新技术和业务模式逐步造成。比方 ECS 宕机预测和主动热迁徙,能够将虚拟机的 SLA 晋升到传统须要硬件冗余能力达到的稳定性规范;RDS 对数据库的主动优化和问题诊断,无需 DBA 的人力过多染指。
云原生的崛起
2013 年春,Docker 技术开源宣告了云原生计算的尾声。Docker 公司翻新地提出了利用打包标准 Docker 镜像,它将利用及其所有依赖项打包,从而使利用能够在不同的计算环境之间疾速、牢靠地运行。容器技术提供了一个优雅的形象,让开发所须要的灵活性、开放性和运维所关注的标准化、自动化达成均衡。容器镜像迅速成为了利用散发的工业规范。随后 Google 开源的 Kubernetes 因为其优良的开放性、可扩展性和沉闷的社区,在容器编排之战中怀才不遇,成为分布式资源调度和自动化运维的事实标准。Kubernetes 屏蔽了底层基础架构的差别,提供了良好的可移植性,能够帮忙利用统一地运行在不同的环境,包含数据中心、云、边缘计算等。
在技术上,容器技术彻底解耦了利用和运行时环境,能够帮忙利用更加疾速平滑地迁云;容器轻量化、自蕴含的个性极大简化了利用弹性,开释云的外围价值。此外,容器技术的标准化促成生态的分工和协同。基于 Kubernetes,社区开始构建下层的业务形象。比方,服务网格 Istio、机器学习平台 Kubeflow 以及无服务器利用框架 Knative 等等。通过这样的架构分层,进一步升高了技术门槛,减速了云价值开释。对于企业客户而言,他们能够通过 Kubernetes 这样的凋谢规范来设计企业的云架构、防止厂商锁定的顾虑,更好地反对多云 / 混合云。容器技术和生态的倒退会减速云计算规模经济造成。所有的云厂商都在加大对容器技术畛域的投入。
作为云原生技术的演进,无服务器计算(Serverless)进一步开释了云计算的能力,将弹性伸缩、高可用、平安等需要由基础设施实现。无服务器计算形象了运行时环境,让开发人员能够将更多的精力放在应用程序的设计和优化上,而不是与基础架构相干的配置和治理上;Serverless 利用能够迅速弹性伸缩,用户无需进行容量布局;采纳按需付费的模型,用户只按利用理论耗费的资源付费。在无服务器计算中,应用逻辑被解耦为多个函数,每个函数能够通过事件驱动的形式触发执行。执行粒度进一步细化,能够进一步晋升弹性的效率,此外还把利用部署从本地代码(如 x86 指令集)晋升到了高级语言层面,这给老本优化带来了更多的空间(比方能够在 ARM 等低成本的计算资源上来运行 Python/NodeJS 脚本)。这推动了进一步的社会分工,云厂商能够通过规模化、集约化和技术创新实现计算成本的继续优化。
伯克利的论文《A Berkeley View on Serverless Computing》提出断言:Serverless 计算将会成为云时代默认的计算范式。然而这条路还很漫长,现有无服务器计算 FaaS 也存在本身的局限性:
- FaaS 利用架构和研发、交付流程和传统利用相比有很大的扭转。
- 可移植性和厂商锁定的顾虑,FaaS 仍然不足规范,而且通常须要依赖大量的后端服务 (BaaS, Backend as a Service),这导致了为 AWS 开发的 Serverless 利用较难移植到阿里云的平台,或者在本人的数据中心中运行。
- FaaS 也引入了一些新的技术挑战,比方冷启动会导致利用响应提早,按需建设数据库连贯老本低等等,须要平台能力的继续加强。
云原生之路
企业上云之路,要依据本人的业务需要,技术能力和组织构造来抉择适合的门路。
咱们能够将迁徙之路分为 3 类:
- Rehost 新托管 – 简略地通过 lift-and-shfit 形式,将线下物理机替换成为云上虚拟机或者裸金属实例,不扭转原有的运维形式。
- Re-platform 新平台 – 利用托管的云服务替换线下自建利用基础设施,比方通过 RDS 数据库服务替换自建 MySQL;通过容器服务,比方阿里云 ACK 来取代自建 K8s 集群。托管的云服务通常提供更好的弹性、稳定性和自治运维能力,能够让用户关注于利用而非基础设施治理。
- Refactor/Re-architect 重构 / 新架构 – 包含单体利用的微服务架构革新,利用的容器化和 Serverless 化整体开发和交付架构革新。
从 Rehost、Re-platform 到 Re-architect,咱们能够看到迁徙的老本和复杂性在减少,然而敏捷性、弹性、可用性、容错性等收益也在继续减少。云原生曾经成为势不可挡的技术趋势。在 CNCF 2020 年公布的《云原生开发状态报告》中,咱们能够看到寰球有 470 万云原生开发者,占全副后端开发者的 36%,其中包含 290 万应用容器技术以及 330 万应用 Serverless 架构的开发人员。
云原生基础设施的将来趋势
站在容器角度,咱们看到将来云原生基础设施的一些技术趋势。
趋势一:无处不在的计算催生新一代容器实现
在 1988 年,过后施乐 PARC 的首席科学家 Mark Weiser 提出了“Ubiquitous Computing”的概念,“ 在将来,计算将无处不在 ”。随着互联网的倒退和进化,5G、AIoT 等新技术的涌现,随处可见的计算需要曾经成为事实,无处不在的计算正在扭转咱们的世界。
针对不同计算场景,容器运行时有不同的需要。比方在传统数据中心,基于操作系统虚拟化的 RunC/Docker 容器能够很好地满足大部分业务需要;如何晋升更好的平安隔离能力?KataContainer,Firecracker, gVisor, Unikernel 等新技术层出不穷。然而没有任何一款容器技术能够在平安隔离性、执行效率和通用性上都做到完满。咱们在相当长的一个历史阶段,仍然能够看到多种技术路线并存和多彩纷呈的竞争。OCI(Open Container Initiative)规范的呈现,能够对不同的技术采纳统一的形式进行容器生命周期治理,进一步促成了容器引擎技术的继续翻新。
其中有几个次要的趋势:
- 基于 MicroVM 的平安容器的占比将逐步减少,能够提供更高的平安隔离能力 。虚拟化和容器技术的交融,曾经成为了一个重要趋势。在公共云上,比方 AWS 的 Firecracker 曾经成为 Lambda/Fargate 等 Serverless 云服务的基础设施;阿里云的袋鼠容器引擎,曾经成为 ECI/ASK 的根底。
- 基于软硬一体设计的秘密计算容器开始展露头角 。比方,阿里云平安、系统软件、容器服务团队和蚂蚁可信原生团队独特推出了面向秘密计算场景的开源容器运行时技术栈 inclavare-containers 反对基于 Intel SGX 秘密计算技术的秘密容器实现,如蚂蚁的 Occlum,开源社区的 Graphene 等 Libary OS。升高秘密计算的技术门槛,简化可信利用的开发、交付和治理。
- OS 的虚拟化翻新也从未停步 ,从 Linux 4.5 内核开始 cgroup v2 接口在逐步成熟,将进一步欠缺了资源隔离性。Docker 也公布了 rootless 模式,能够更好利用 Linux 操作系统的平安能力来晋升容器的安全性。
- WebAssembly 是新一代可移植、轻量化、利用虚拟机 ,在 IoT,边缘计算,区块链等场景会有宽泛的利用前景。在服务器端,WebAssembly 是容器的颠覆者还是同盟者?大家会有不同的观点。集体比拟偏向于后者,WASM/WASI 能够成为一个跨平台的容器实现技术。近期 Solo.io 推出的 WebAssembly Hub 就是将 WASM 利用通过 OCI 镜像规范进行对立的治理和散发,能够很好地利用在 Istio 服务网格生态中。
趋势二:云原生操作系统开始浮现
Kubernetes 曾经成为云时代的操作系统。咱们能够比照一下经典的 Linux 和 Kubernetes 的概念模型,他们都是定义了凋谢的、标准化的拜访接口;向下封装资源,向上撑持利用。
它们都提供了对底层计算、存储、网络、异构计算设施的资源形象和平安拜访模型。能够依据利用需要进行资源调度和编排。Linux 的计算调度单元是过程,调度范畴限度在一台计算节点。而 Kubernetes 的调度单位是 Pod,能够在分布式集群中进行资源调度,甚至逾越不同的云环境。
在初期,Kubernetes 上次要运行着无状态的 Web 利用。随着技术的成熟和社区的倒退,咱们看到更多的有状态利用和大数据 /AI 利用负载逐步迁徙到 K8s 上。目前企业的大数据业务还是被 YARN 等调度技术主导,然而 K8s 曾经在大数据社区失去更多的关注。Flink、Spark 等开源社区和一系列商业公司如 Cloudera、Databricks、星环都开始加大对 K8s 的反对力度。
对立技术栈晋升资源利用率:多种计算负载在 K8s 集群对立调度,能够无效晋升资源利用率。Gartner 预测“将来 3 年,70% AI 工作运行在容器和 Serverless 上。”AI 模型训练和大数据计算类工作负载须要 K8s 提供更低的调度提早、更大的并发调度吞吐和更高的异构资源利用率。针对这些挑战,华为推出了 Volcano 我的项目,提供了一个针对数据计算类工作的独立调度器。阿里云在和 K8s 上游社区独特单干,在 Scheduler V2 framework 上,通过扩大机制加强 K8s 调度器的规模、效率和能力,具备更好的兼容性,能够更好地撑持多种工作负载的对立调度。
对立技能栈升高人力老本:K8s 能够在 IDC、云端、边缘等不同场景进行对立部署和交付。云原生提倡的 DevOps 文化和工具集能够无效晋升技术迭代速度,整体上升高人力老本。
减速数据服务的云原生化:因为计算存储拆散具备微小的灵活性和老本劣势,数据服务的云原生化也逐步成为趋势。容器和 Serverless 的弹性能够简化对计算工作的容量布局。联合分布式缓存减速(比方 Alluxio 或阿里云 Jindofs)和调度优化,也能够大大晋升数据计算类和 AI 工作的计算效率。
阿里云计算平台和容器服务团队曾经在多个畛域独特摸索云原生大数据 /AI 场景的产品技术创新。
趋势三:在云端,Serverless 技术逐步融入支流
除了 FaaS 的疾速倒退,Serverless 和容器技术也开始交融,尤其是失去了云厂商的高度关注。通过 Serverless 容器,一方面能够根本性解决 K8s 本身的复杂性,让用户无需受困于 K8s 集群容量布局、平安保护、故障诊断等运维工作;另一方面进一步开释了云计算的能力,将平安、可用性、可伸缩性等需要下沉到基础设施实现,能够帮忙云厂商造成差异化竞争力。
阿里云在 2018 年 5 月推出 ECI(Elastic Container Instance 弹性容器实例)、ASK (Alibaba Cloud Serverless Kubernetes) 等产品,并在 2019 年 2 月正式商业化。目前业界所有私有云厂商都推出了 Serverless 容器产品,除阿里云 ASK/ECI 外,还包含 AWS Fargate, Azure ACI,华为 CCI,腾讯 EKS, GCP CloudRun 等。
在 AWS 的调研中,在 2019 年 40% 的 ECS(AWS 弹性容器服务)新客户采纳 ECS on Fargate 的 Serverless Container 状态。
Serverless 容器能够和 FaaS 造成良好的互补。Serverless 容器反对容器镜像作为利用载体,反对各种类型利用,比方无状态利用、有状态利用、计算工作类利用等。大量用户现有的利用无需批改即可部署在 Serverless Container 环境中。
在 Gartner 在 2020 年 Public Cloud Container Service Market 评估报告中把 Serverless 容器作为云厂商容器服务平台的次要差异化之一,其中将产品能力划分为 Serverless 容器实例和 Serverless Kubernetes 两类,这与阿里云 ECI/ASK 的产品定位高度一致。
Gartner 在报告中也谈到 Serverless 容器业界规范未定,云厂商有很多空间通过技术创新提供独特的增值能力,其对云厂商的倡议是:
- 扩大 Serverless 容器利用场景和产品组合,迁徙更多一般容器 workload 到 Serverless 容器服务。
- 推动 Serverless 容器的标准化,加重用户对云厂商锁定的担心。
趋势四:动静、混合、分布式的云环境将成为新常态
上云已是大势所趋。然而对于企业客户而言,有些业务因为数据主权和平安隐衷的思考,会采纳混合云架构。一些企业为了满足平安合规、老本优化、晋升地区覆盖性和防止厂商锁等需要,会抉择多个云供应商。混合云 / 多云架构曾经成为企业上云的新常态。Gartner 指出,“ 到 2021,超过 75% 的大中型组织将采纳多云或者混合 IT 策略 。”
此外,随着 5G 时代的邻近,AIoT 利用疾速倒退,一个万物智联的时代开始到来。边缘计算能够更好地链接物理世界和数字世界,为利用提供更低的网络提早、更高的网络带宽和更低的网络老本。边缘计算将成为企业云策略的重要组成部分,咱们须要有能力将智能决策、实时处理能力从云延展到边缘和 IoT 设施端。
在 Gartner 公布的《2020 年基础架构和经营的十大趋势》中提出了分布式云的趋势。随着云平台曾经成为企业数字化转型的翻新平台,一个变动随之产生——云正在凑近它们。在分布式云中,私有云的服务能力能够位于不同的物理地位,而公共云平台提供者会负责服务的经营、治理、更新和演变。
然而不同环境的基础设施能力、平安架构的差别会造成企业 IT 架构和运维体系的割裂,加大云策略施行的复杂性,减少运维老本。在云原生时代,以 Kubernetes 为代表的云原生技术屏蔽了基础设施的差异性,推动了以利用为核心的混合云 / 分布式云架构的到来。能够更好地反对不同环境下利用对立生命周期治理和对立资源调度。Kubernetes 曾经成为企业多云治理的事实根底。
2019 年 Google 推出 Anthos 多云利用平台,其根底就是 GKE K8s 托管服务。微软在 Build 2020 会议上发表了 Azure Arc 反对 Kubernetes 集群的预览版。微软 CEO 萨蒂亚·纳德拉将 Azure Arc 形容为混合云计算的管制立体,能够对立治理云上、边缘和 IDC 中运行的 Kubernetes 集群,以及 Windows 和 Linux 服务器实例。
阿里云容器服务 ACK 去年 9 月份公布了混合云 2.0 架构,提供了齐备的混合云 K8s 治理能力。
- 首先 ACK 提供了对立集群治理能力,除了能够治理阿里云 K8s 集群之外,还能够纳管用户在 IDC 的自有 K8s 集群和其余云的 K8s 集群。利用对立的管制立体实现多个集群的对立的平安治理、可观测性、利用治理、备份复原等能力,比方利用日志服务、托管 Prometheus 服务,能够无侵入地帮忙用户对线上、线下集群有一个对立的可观测性大盘。利用云平安核心,AHAS 能够帮忙客户在混合云的整体架构中发现并解决平安和稳定性危险。
- 此外,托管服务网格 ASM 提供对立的服务治理能力,联合阿里云云企业网 CEN、智能接入网关 SAG 提供的多地区、混合云网络能力,能够实现服务就近拜访,故障转移,灰度公布等性能。
- ACK 也提供了对立的利用交付能力,通过 GitOps 形式能够将利用平安、统一、稳固地公布在多个不同的云环境中。配合网格 ASM 提供的流量治理能力,能够反对云容灾、异地多活等利用场景,晋升业务连续性。
2019 年 6 月,阿里云 ACK@Edge 边缘容器公布。边缘 K8s 容器集群中能够同时治理云端 ECS 和边缘 ENS 节点、以及 IoT 设施。咱们在 K8s 根底之上,针对边缘计算场景的特殊性,提供了单元化隔离和断连自治、自愈和平安等加强能力。借助 ACK@Edge,咱们能够将一些须要低提早解决的利用部署在边缘节点实现就近拜访,比方,咱们能够把 AI 模型预测和实时数据处理搁置到边缘,进行实时智能决策;而将模型训练,大数据处理等须要海量算力利用放到云端。能够极大简化云边端一体利用协同。
在 2020 年 5 月底,咱们将 ACK@Edge 的外围组件开源 — OpenYurt,该项目标核心理念是『Extending your native Kubernetes to edge.』,在架构上放弃了对原生 K8s 无侵入的设计,通过一系列组件和工具,提供了对边缘计算场景良好的反对能力。推出该开源我的项目,一方面能够把咱们在云原生边缘计算畛域的积攒回馈社区,另一方面咱们心愿减速云计算向边缘延长的过程,并和社区独特探讨将来云原生边缘计算架构的统一标准。
总结
云原生计算减速了利用和根底资源的解耦,充沛开释云的弹性;通过关注点拆散,让开发者关注业务价值,而复杂性下沉到基础设施。对企业而言,云原生计算能够帮忙企业优化云架构,最大化施展云价值。在后续的文章中,咱们将持续介绍云原生利用架构和生命周期治理的进化方向。
阿里云容器平台团队求贤若渴!社招技术专家 / 高级技术专家,base 杭州 / 北京 / 深圳。欢送发简历到:jiaxu.ljx@alibaba-inc.com。
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术畛域、聚焦云原生风行技术趋势、云原生大规模的落地实际,做最懂云原生开发者的公众号。”