深度 | 阿里云蒋江伟:什么是真正的云原生?
作者 | 阿里云原生
来源|阿里巴巴云原生公众号
而今,云原生成了耳熟能详的热门词,似乎不提云原生就落伍了,加入 CNCF 也成了云厂商引以为傲的技术优势。
我们也看到各种云原生的定义,有来自 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 标准接口,是未来使用云的标准方式。
什么是真正的云原生
我们很幸运,我们正亲历一个迈入云时代的历史性进程。
多年以后,新一代的新新人类,他们会更幸运,他们接触的一切计算环境都是云原生的。他们天生就会认为,云计算资源是无处不在、取之不尽、用之不竭的,他们不会关心云资源在哪里、有多少。就像今天我们使用自来水一样,没有人会费劲心思考虑水从哪里来。
因云而生的软件、硬件、架构,就是真正的云原生;因云而生的技术,就是云原生技术。
更多企业落地实践内容,可下载云原生架构白皮书了解详情!