1.7 OpenStack的技术发展趋势
OpenStack自诞生起,经历了同期类似项目的竞争,受到了来自新兴技术的挑战,有时其看似缓慢、低效的社区开发模式也会被人诟病,但还是成了如今云计算的中流砥柱。而且在可预期的未来,随着云计算技术需求的进一步拓展,相信OpenStack还会继续扮演越来越重要的角色。
OpenStack在技术上也从未停下创新的脚步,它不停地吸收新的元素,从而更加灵活、高效和健壮。
1.裸机资源的管理
OpenStack在架构设计上最初是以虚拟机的管理为中心的,但随着云计算用户使用场景多元化,对于虚拟机之外的计算资源的管理与编排就显得越发必要,如裸机计算资源。
对于裸机计算资源的管理,目前来看还相当不成熟,虽然Nova社区近来十分重视计算资源模型统一化,但是由于刚刚起步,现在唯一可以做到的是基于Ironic的协助所实现的一种比较僵化的资源调度,这远远达不到实际用户对于裸机资源的灵活管理要求。对于裸机资源特定的功能需求,目前尚处于社区讨论阶段,比如RAID的配置、物理网口资源的细化管理、网卡绑定配置,而日后此任务是由Nova实现还是放在Ironic中处理,甚至新起项目来完成,尚待观察。唯一确定的是,此类用户需求总有一天会出现在OpenStack中。
此外,OpenStack中的资源调度器(现在是Nova的调度器,但有计划独立成一个新的项目),也会逐渐做到根据裸机硬件配置的差异进行更加精准的调度和编排。进一步来看,随着OpenStack对于裸机资源管理的日益成熟,以及Nova和Ironic等项目的进一步发展,纯粹的“裸机云”方案也会大放异彩。
2.容器化
Docker的出现为众多开发者带来了非常多的便利,此后出现的Kubernetes之类的容器集群的管理平台,更是让容器技术在云计算的领域大放异彩,并促进了OpenStack的发展,比如,在OpenStack控制层服务的容器化方面:开发环境的容器化、打包和发布的容器化、部署和升级的容器化、云环境动态伸缩的容器化,等等。
在云计算概念已广为人知的今天,一个新的应用从设计之初就要考虑是否“云原生(Cloud Native)”的问题。而遗憾的是,OpenStack中的众多服务不是云原生的架构,而随着容器化的努力,很多难题都将迎刃而解,比如,在单节点中不同服务运行环境隔离的问题、版本升级和回滚的难题、OpenStack控制面服务的动态伸缩部署和高可用处理。
此外,容器技术降低了对特定操作系统的依赖,同时容器化的部署方案可以提供给使用者一个简单而优雅的界面,大大提升了用户体验。这些努力都集中在OpenStack大帐篷里的Kolla项目(包括Kolla的几个子项目,如Kolla-kubernetes等),以及Stackanetes等独立项目。目前来看,除了技术层面的分析,业界各个OpenStack厂商的产品路线也都印证了此趋势。相信在OpenStack的部署和控制面服务的管理等方面,容器化是不可逆转的方向。
3.多元化的云计算环境
与OpenStack所主导的以虚拟化技术为中心的云计算技术路线相比,以容器为计算资源基础单元的容器云是一股新兴的力量,并以Kubernetes、Mesos和Swarm(Docker)等项目为代表。
这两种不同的云计算路线的未来发展趋势应该是相互渗透、相互借鉴的合作方式,如前文所述的OpenStack部署容器化就是明证之一。再者,OpenStack作为IT基础架构资源(Infrastructure)的成熟管理方案,其对于网络和存储方向的技术积累,可以帮助容器云快速成熟,而容器云的项目也不必再重新构建。
而从云计算环境的最终用户需求来看,根据计算模型的不同,用户希望灵活地申请和调度不同类型的计算资源,包括虚拟机、裸机、容器,这样就势必要把OpenStack和容器云融合在一起才是一个完备的解决方案。
我们可以设想这样一种模式:既然OpenStack可以通过Kubernetes等容器云技术来部署和管理控制面服务,那么OpenStack可以被看作Kubernetes容器云中的一个云原生的应用,随之而来的就是如同云原生应用般的灵活管理,而直接面对裸机资源的Kubernetes又可以通过集成Ceph、Swift、Cinder、Neutron等项目来完善对网络和存储资源的池化管理。
4.更加彻底的资源池化
在云计算概念中,被大家所熟知的一个概念就是资源的池化,包括技术资源的池化、网络资源的池化(SDN)和存储资源的池化(SDS),概括来说就是所谓的SDI(Software Defined Infrastructure,软件定义基础架构)。
众所周知,主流的服务器硬件配置基本上是固定的,但以英特尔为主导的RSD(Rack Scale Design)整机柜服务器技术,则可以实现动态调配整个机柜中的CPU、内存、存储、网口等硬件资源,灵活地组成不同配置的服务器。此项技术把资源池化的概念实现得更加彻底,所带来的好处也不言而喻。
5.边缘计算
边缘计算的发展与云计算的发展有着千丝万缕的联系。云计算用户迟早会遇到网络拥挤、延迟高、实时性差和性能瓶颈,从而逐渐无法满足其对业务的需求。边缘计算可以被认为是云计算的扩展和延伸。简单来说,边缘计算把计算移到了用户那一端,即移到了靠近数据产生的地方,可以避免或减少数据在网络中从数据产生的地方到数据中心的传输。有人甚至把云计算和边缘计算的区别形象地比喻成,云计算把数据移到代码那一端,而边缘计算把代码移到数据那一端。
以OpenStack为代码基础的StarlingX项目可以为在虚拟机和容器中运行的电信运营商级应用程序提供边缘计算服务,可以满足高可靠性和高性能的要求。目前,StarlingX在OpenStack基金会下进行试点和孵化,为边缘和IoT用例提供集成和优化的平台。它是一个可部署的、高度可靠的边缘基础架构软件平台,它基于更多的开源组件,如OpenStack、Kubernetes、Ceph等,此外还提供了增强的功能,如主机管理、故障管理、软件管理等。
除此之外,该平台还实现了多种加速技术,包括OVS-DPDK和SR-IOV。这些功能使StarlingX可以改善可管理性及平台的可靠性,因此可以为边缘用例提供超低延迟、较小的占用空间和可扩展性。StarlingX可以被认为是OpenStack为边缘计算而量身定做的特制版本,现在还处于发展早期阶段。