蒋江伟 / 文
对于云计算的用户来说,理解什么是云原生尤为重要。不是简单地使用容器来定义自己的系统,而是在设计、开发、部署等周期中,使用原汁原味的云原生系统,这将会带来巨大的竞争优势,充分享受到云计算的红利。
而今,云原生成了耳熟能详的热门词,似乎不提云原生 就落伍了,加入 CNCF(云原生计算基金会,Cloud Native Computing Foundation) 也成了云厂商引以为傲 的技术优势。
我们也看到各种云原生的定义,有来自 CNCF 的“微服 务 + 容器 + 持续交付 +DevOps”,也有来自不同云厂商 的说法。2020 年 9 月,阿里云成立了云原生技术委员会, 今天我就从云计算的初心尝试谈谈什么是真正的云原生。
狭义的云原生
让我们先回顾云原生的由来。
云计算兴起之后,以 Docker 为代表的容器浪潮,席卷业 界,以 DevOps 和标准化交付而广受青睐。在此背景下, Google 创造性地提出了云原生的概念,并发布了开源编 排工具 Kubernetes,从统一部署和标准化的角度切入, 其后更成立了 CNCF 基金会,成功地杀出了一片天地。
2020 年 12 月,CNCF 大使 Ian Coldwater 在社交媒体 上说:“Kubernetes 现已弃用了对 Docker 的支持。您 需要注意这一点,并作好相应的规划。这会搞坏您的集群。” 这说明云原生战略获得了历史性的进展。从这个角度来看, 将云原生等同于容器和服务网格,是早期对云原生狭义的 理解。
广义的云原生
那么,什么是广义的云原生呢?因云而生的软件、硬件、 架构,就是真正的云原生。
我们认为,云原生更多应该从客户应用的视角来看,部署 到云上的应用,必须用到了只有大规模公共云实践才能提 供的三类能力的一类或多类,即弹性、API 自动化部署和 运维等特性;服务化的云原生产品,如 RDS、EMR 等; 因云而生的软硬一体化架构。这,就是云原生。
首先,云原生应用是相对线下传统企业 IT 物理机上的环 境而言,要用云的方式来部署和管理应用,充分利用云的 供应效率,要全球部署、即开即用、按量付费。客户就近 获取云的能力,就是所谓弹性,我们去年出过一本书,书 名叫《弹性计算 无处不在的算力》,讲的就是背后的原 理,要具备这种极致的弹性才是云原生。在云上提供的 Kubernetes,是通过自动化部署和运维的 API 标准化, 实现了云原生。
其次,今天我们已经看到云原生数据库、云原生大数据、 云原生容器、云原生中间件、云原生安全等等概念,这 都是在云上可以随意获取的服务化云原生产品,是传统 线下没有的服务,有助于获得性能和成本上的加强,这 就是云原生。
特别值得一提的是以神龙架构为代表的软硬一体虚拟化。虚 拟化经历了纯软件虚拟化、通用硬件虚拟化、到现在的软硬 一体化虚拟化。通过计算存储的分离,使用专用的神龙芯片, 对虚拟化进行加速,从而达到超越物理服务器的高性能。作 为云计算架构的底层,所有中间件和应用层都能从中获得性 能的收益,而无需进行任何代码和架构的修改。
此外,神龙架构支撑的是同一套资源架构并池的资源能力, 包括 ECI(Serverless 容器)、VM、裸金属等,从而让 所有的资源能够统一调度,进而实现最深的弹性。这也是 业界第一次实现了统一架构和统一资源调度,被视为中国 云厂商的重大技术贡献。
从这种意义上来说,神龙架构就是因云而生,是典型的云 原生。简单而言,如果没有云计算的大规模部署场景,神 龙的优势就不能发挥得淋漓尽致。
所以,云原生的初心是在云上的原生,如果缺乏云的基 本特征,必然不是云原生。极端而言,如果你自己买了 两台服务器,放在办公室,上面部署了容器,然后用 Kubernetes 来管理,那就不是云原生,因为缺乏弹性、
API 自动化部署和运维的能力,连云都不是。
CNCF 更多的是倡导一个系统要用什么组件进行架构, 这样才能实现互联网架构和运维能力,实现快速迭代、 灵活扩展、高效运维。而这些能力的发挥需要这些架构 框架基于云,两者结合则为云原生。很多人会问,某个 开源软件是否是云原生?这个要看它的架构。以开源数 据库为例,如果其架构上还是针对传统的单机和小规模, 那就不是云原生;如果保持开源的接口兼容性,同时做 了云原生改造和重新设计,运维和管控都充分利用了云 的基础能力,那就是云原生的软件和服务,如阿里云的 PolarDB 数据库。
多云和混合云加速了云原生
历史的发展总是曲折的,因为相信所以看见,也总是一波 三折。在盘山公路上前行时,往往眼中只能看到有限的视野。
为达到更高的性价比、容错和效率,业界产生了多云和 混合云。多云是客户将业务负载分别部署到不同的公共 云厂商,而混合云更多是客户将业务负载部署到公共云 和专有云上。
多云是竞争的产物,虽然亚马逊和阿里云一直认为用户用 一家的云就够了。而混合云的产生角度不同,它是为了满足客户分步上云的意愿,同时满足部分行业监管合规的需 求,而构建的一种云架构。无论是多云还是混合云,云厂 商为了降低业务分布式部署的难度,让客户更容易接受, 都会敦促客户对业务进行单元化改造,因为 Kubernetes 解决了标准化部署和迁移的问题。
同时除了 Kubernetes 和容器之外,往往涉及到使用公共 云带来的弹性、加速等等服务能力,以及数据库、大数据、 音视频等系统的云原生改造。可见,Kubernetes 加速了 狭义的云原生能力。
云原生芯片
从计算芯片的角度而言,云计算带来了全新的应用场景, 从而对 CPU 提出了新的需求,也就是云原生芯片。
比如阿里云的神龙芯片,就是云原生芯片。它是整个设备 的核心,因为通过它可以让神龙服务器完完全全具有虚 拟机的特性,包括虚拟机的接口。基于神龙芯片的神龙 MOC 卡在整个架构中具有重要作用,它具备丰富的管理 接口和对外数据接口,可以帮助我们实现弹性裸金属服务 器具备的这些功能。
CPU 的多元化正在逐渐成为现实。首先是英特尔的对手 AMD 的崛起,虽然都是 x86 体系,但其芯片在性价比高 之外,性能和特性也突飞猛进;其次,x86 架构之外的发 展非常迅猛,除 Ampere 的 ARM 服务器芯片外,自研的 ARM 体系正成为很多云厂商的选择。
AWS 的 Graviton 2 自研芯片使用 64 位 ARM Neoverse 内核定制而成,设计思路是多核加每核单 Thread 负载, 每个内核都旨在通过尽可能多的、完全独立的内核来交付 实际工作负载,力图成为最节能的处理器。
微软也在设计一款用于数据中心的 ARM 处理器,这是微 软的重大战略举措,微软认为,自己的芯片更适合某些需 求,更具成本和性能优势。
云原生 CPU 正呈现一些共有的特性:主频不需要特别高功耗要特别低、独立运行的核、多核架构能更好地支持服 务网格的应用、有成熟的软件生态等等。
用云原生的思维,用好云原生架构
对于云计算的用户来说,理解什么是云原生尤为重要。不 是简单地使用容器来定义自己的系统,而是在设计、开发、 部署等周期中,使用原汁原味的云原生系统,将会带来巨 大的竞争优势,充分享受云计算的红利。
云原生不仅是实践,更是一种理念,带来的是时代变革。 开发人员的开发环境也要生在云上、长在云上。使用类 似无影这样的远程工具,让产品设计文档、开发调试环 境、部署工具、测试过程、POC 验证、资源消费等等, 全部基于云来进行。所以,云原生带来的是思维的变 化,是文化的变化,是新时代的生产力,远远超越了 CNCF 定义的 Kubernetes 标准接口,是未来使用云 的标准方式。
什么是真正的云原生
我们很幸运,我们正亲历一个迈入云时代的历史性进程。
多年以后,新一代的新新人类,他们会更幸运,他们接触 的一切计算环境都是云原生的。他们天生就会认为,云计 算资源是无处不在、取之不尽、用之不竭的,他们不会关 心云资源在哪里、有多少。就像今天我们使用自来水一样, 没有人会费劲心思考虑水从哪里来。
因云而生的软件、硬件、架构,就是真正的云原生;因云 而生的技术,就是云原生技术。