2015年Google主导成立了云原生计算基金会(CNCF),起初CNCF对云原生(Cloud Native)的定义包含以下三个方面:1. 应用容器化 2.面向微服务架构 3.应用支持容器的编排调度。到了2018年,随着近几年来云原生生态的不断壮大,所有主流云计算供应商都加入了该基金会,且从Cloud Native Landscape中可以看出云原生有意蚕食原先非云原生应用的部分。CNCF基金会中的会员以及容纳的项目越来越多,该定义已经限制了云原生生态的发展,CNCF为云原生进行了重新定位。
以下是CNCF对云原生的重新定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
从2015年至今,云原生究竟发生了哪些变化呢?
第一个阶段是计算机资源划分成逻辑组的技术。注意,由此生成的仅仅是一个逻辑的视图。通过虚拟化技术,我们就可以在同一台物理机器上运行多个虚拟机,进而发挥物理硬件的最大效用。比如VMWARE、微软HyperV技术。
第二个阶段出现了AWS、阿里云虚拟机的市场化应用,针对不同的消费者提供了不同的针对性的服务。服务分为三种:LaaS、PaaS和SaaS,LaaS是云服务的最底层,提供了基础的资源,比如CPU、内存、硬盘,PaaS是平台服务,它在LaaS的基础上抽象了硬件和操作系统,用户不需要关心硬件底层和操作系统底层,只需要关注业务逻辑,SaaS是软件服务,也就是在PaaS的基础上做进一步的封装,把开发、管理和部署都交给专业的第三方去做,消费者拿来即用。
第三个阶段出现了容器化的技术,主要得益于Docker和Kubernetes的成熟,它是虚拟化的改进版本,允许多个应用程序驻留在同一个服务器中,另程序的开发、测试、运维更加便利和快捷,更加适合当今敏捷的开发模式。
总的来说,云原生并不是一种具体的技术或者框架,而是一类思想的集合,其中的技术要点包括服务网格、微服务和容器化(如容器化 Docker)等;管理要点则包括 DevOps、康威定律等。因此,可以说云原生在一定层面上重构了互联网产品的开发模式。
参考文献:
1. 云原生历史与定义:https://jimmysong.io/kubernetes-handbook/cloud-native/cloud-native-definition.html
网友评论