一.以资源编排为主体的云计算时代
这个时代主要解决资源分配和管理的问题,这是资源维护者的核心诉求,而众多的资源中(计算、存储和网络等),又以虚拟机为主体,所以这个时代的云计算,简化点就是现在大家理解的围绕虚拟机构建的IaaS资源管理体系,所有的资源管理以虚拟机为核心配套设计。在私有云为主的时代,完美地匹配了用户的需求,所以这个时代各种IaaS管理软件出现,OpenStack也在这个时代达到了空前的繁荣,VMWare在这个时代取得了巨大的发展,推出了各种资源管理产品(vSphere、vCloud等)。这个时代,用户是比较单一的,诉求也是比较原始的,就是作为IT的Operator或者Maintainer,要把资源的管理做到极致。这个时代其实也在尝试去解决更高级的用户需求,但是理念还是以虚拟机为主体,比如早期基于虚拟机的PaaS平台Cloudfoundry,比如基于虚拟机的应用编排项目Murano等等。
二.以应用编排为主体的云计算时代
随着公有云的普及和私有云的极致发展,云计算的主要矛盾变成了日益增长的多元化用户需求与落后的以资源编排为主体理念之间的矛盾。公有云用户更想以应用为主体来构建IT软件栈和IT系统,希望以更加敏捷、更细粒度的控制来适应应用的快速迭代,甚至是私有云的IT管理员也更加希望资源编排更加的敏捷。此时,云计算的核心理念就很自然的进入到了以应用编排为主体的云计算时代。很显然,满足这个理念的Docker、Kubernetes等技术,必将会在这个时代实现空前的繁荣。
三.新时代下容器编排与IaaS层的关系和定位
基于上述对云计算核心理念变化的分析,下面就来讲讲,新时代下应该如何去规划一朵云。
IaaS层的价值在于资源的编排(调度),假设抛弃IaaS层,那么K8S就必须要重新实现资源管理相关的功能,比如裸机(包括纯物理机)管理、虚拟机的管理(必然还会存在),存储的管理(集中式存储、各种分布式存储等),网络的管理(各种SDN的对接或者功能实现,underlay和overlay网络),安全组件的管理(安全设备、安全虚拟化设备)等等,此时,K8S还是在做以应用为主体的管理吗?K8S还是K8S吗?甚至K8S在IaaS管理方面,会比OpenStack等IaaS管理项目实现的更好吗?除非你认为在以应用编排为主体的时代,不需要资源管理,很显然,这都是不对的,K8S的重点应该围绕应用和服务,而不是过多关注底层硬件资源的管理。
再回到IaaS层上,正确的理念就应该是“分层”的理念,OpenStack在最火爆的时候,忘了初心,做了很多以应用为中心的工作,现在就应该回归初心,专心做好自己的资源管理部分(IaaS资源管理),但是与以前不同的是,此时已经不是以OpenStack(虚拟机)为中心的时代,OpenStack必然要交出整个平台的控制权,交给以应用为中心的K8S,但是,不以你为中心,并不代表不需要OpenStack,更不存在K8S替代OpenStack。VMWare是这个理念的先行者,推出了虚拟机和容器深度结合的项目Project Pacific,在这个项目中并没有用K8S替代vCenter、vSAN等,只是把控制权从vCenter转交给了K8S。
综上分析,K8S与IaaS层应该结合使用,发挥各自优势。