简介:云原生架构本质上也是一种软件架构,最大的特点是在云环境下运行,也算是微服务的一种延伸。
起源
1.云原生(CloudNative)的由来
云原生的概念最早开始于年,在当时PaulFremantle的一篇博客中被提及,他一直想用一个词表达一种架构,这种架构能描述应用程序和中间件在云环境中的良好运行状态。因此他抽象出了CloudNative必须包含的属性,只有满足了这些属性才能保证良好的运行状态。当时提出云原生是为了能构建一种符合云计算特性的标准来指导云计算应用的编写。
后来到年MattStine在推特上迅速推广云原生概念,并在年《迁移到云原生架构》一书中定义了符合云原生架构的特征:12因素、微服务、自服务、基于API协作、扛脆弱性。而由于这本书的推广畅销,这也成了很多人对云原生的早期印象,同时云原生也被12要素变成了一个抽象的概念。MattStine认为在单体架构向CloudNative迁移的过程中,需要文化、组织、技术共同变革。解读:**云原生架构本质上也是一种软件架构,最大的特点是在云环境下运行,也算是微服务的一种延伸**。
2.CNCF基金会成立及云原生概念的演化
年由Linux基金会发起了一个TheCloudNativeComputingFoundation(CNCF)基金组织,CNCF基金会的成立标志着云原生正式进入高速发展轨道,Google、Cisco、Docker各大厂纷纷加入,并逐步构建出围绕CloudNative的具体工具,而云原生这个的概念也逐渐变得更具体化。因此,CNCF基金最初对云原生定义是也是深窄的,当时把云原生定位为容器化封装+自动化管理+面向微服务:
TheCNCFdefines“cloud-native”alittlemorenarrowly,tomeanusingopensourcesoftwarestacktobecontainerized,whereeachpartoftheappispackagedinitsowncontainer,dynamicallyorchestratedsoeachpartisactivelyscheduledandmanagedtooptimizeresourceutilization,andmicroservices-orientedtoincreasetheoverallagilityandmaintainabilityofapplications.
这主要因为CNCF基金会在当时的核心拳头软件就是K8s,因此在概念定义上主要是围绕着容器编排建立起来的生态。其实这也是为什么我们可以看到CNCF定义云原生的时候有时感觉就是再说容器生态。
到了年,云原生应用提出者之一的Pivotal在其