1.1.2 官方的定义
1.Pivotal的定义
2015年,Pivotal的高级产品经理Matt Stine在《迁移到云原生应用架构》一书中探讨了云原生应用架构的5个主要特征,即应用符合12要素、面向微服务架构、自服务敏捷架构、基于API的协作和抗脆弱性。
同年,Google作为发起方成立CNCF,并阐述了云原生的定义。
·应用容器化
·面向微服务架构
·应用支持容器的编排调度
2.CNCF的定义
随着云计算的不断发展,云原生的内涵不断丰富和明确,它的定义也经历了几次修正。云原生的拥趸者越来越多,这一体系在反复的修正与探索中逐渐成熟。截至2021年,CNCF官网对云原生的最新[1]定义如下。
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。
CNCF致力于培育和维护一个厂商中立的开源生态系统来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
3.VMware的定义
2019年,VMware以27亿美元的价格收购Pivotal,几乎同一时间,VMware发布新产品Tanzu,基于Kubernetes实现了Tanzu应用现代化战略——帮助客户构建现代化应用程序,使用Kubernetes运行它们,并在单一控制面上进行管理。
VMware官网的VMware Tanzu界面上关于云原生应用的介绍如下。
云原生是一种方法,用于构建和运行充分利用云计算优势的应用。云计算不再将重点放在资本投资和员工上来运行企业数据中心,而是提供无限制的按需计算能力和根据使用情况付费的能力,从而重新定义了绝大多数行业的竞争格局。IT开销的减少意味着入行的壁垒更低,这一竞争优势使得各团队可以快速将新想法推向市场,这就是初创公司正在使用云原生方法来颠覆传统行业的原因。
但是,企业需要一个构建和运行云原生应用和服务的平台,来自动执行并集成DevOps、持续交付、微服务和容器等技术。
下面介绍云原生的4个核心要点——DevOps、持续交付、微服务、容器,如图1-3所示,这4个核心要点被众多开发者看作对云原生的最佳诠释。
图1-3 云原生的4个核心要点
结合CNCF的定义,我认为“不可变基础设施和声明式API”属于云相关的技术,与企业自身的关系不大。同时,微服务更多属于架构升级的层面,大部分企业在微服务架构下才会去尝试新的架构。在我看来,对于企业来说,更重要的是容器化、持续交付(持续交付是DevOps的关键落地,因此这里没有单独来讲DevOps)、服务网格,本书将重点从这3个维度来阐述企业级云原生落地的最佳实战。
[1] 原文链接为https://www.cncf.io/about/who-we-are/。