OpenStack基金会近日发布的双年调查报告显示,开源云计算软件OpenStack正在进入主流企业市场,但该项目依然面临较难部署和管理的老问题。
有一点是毫无疑问的,那就是OpenStack保持着高速增长的态势,超过585家企业,接近4万人通过各种方式支持着这个超过2000万行的开源项目的持续发展。
图片:OpenStack
以下是IT经理网整理的报告中的一些数据亮点,方便大家快速了解OpenStack的发展现状:
一、企业规模分布广泛而均匀。OpenStack的企业用户规模覆盖大中小型企业,而且分布非常均匀,受访者企业规模超过10万人的占16%,企业规模在1000-9999人之间占23%,而10-99人的中小企业也占据了17%。
二、IT企业和电信企业更钟爱OpenStack。在用户的行业分布方面,OpenStack在IT业和电信业更受青睐,分别占到68%和14%,学术机构排名第三占据了9%。
三、更多的企业OpenStack云项目进入生产环境阶段。2015年四月份的调查中,只有将近半数的OpenStack云计算项目进入生产环境,而今年的调查中65%的受访者表示他们的OpenStack云项目已经完全进入生产环境阶段。只有21%的受访者表示正处于开发和测试阶段,另外有14%的企业处于概念验证阶段。
四、OpenStack主要被应用于私有云。65%的受访企业用OpenStack搭建私有云。只有16%的受访企业用OpenStack搭建公有云。一个逐渐流行的趋势是托管的私有云:12%的受访企业签约了服务商来托管专门的OpenStack部署,摆脱管理OpenStack的复杂性。
五、选择OpenStack的主要原因是节省成本。OpenStack的开源属性是其流行的主要原因之一。但有趣的是,66%的受访企业表示节省成本是他们选择OpenStack的主要原因。97%的受访企业表示开放API的标准化是选择OpenStack的TOP5原因之一。
六、OpenStack的七大优点和五大缺点。OpenStack基金会统计了受访者对OpenStack优缺点的看法如下:
优点:
- 社区
- 灵活性
- 创新
- 不被厂商锁定
- 生态系统
- 进化
- API驱动的基础设施
缺点:
- 缺乏全面完善的文档
- 糟糕的组件一致性
- 蹩脚的自动化部署
- 特定项目成熟度缺乏透明度
- 专注于核心项目,旁支项目遭受冷落
七、与亚马逊云集成的OpenStack项目最多。虽然OpenStack和亚马逊云的关系很冷淡,但调查显示OpenStack用户更多选择于AWS集成。
八、KVM统治着OpenStack。OpenStack用户倾向使用开源组件,93%的OpenStack云运行KVM(Kernel Virtual Machine hypervisor),排名第二的管理器是QEMU(16%)。虽然VMware致力于将自家工具融入OpenStack生态系统,但是只有8%的用户使用ESX。
九、OpenStack云架构中开源网络、存储和数据库占据主流。网络层最流行的是Open vSwitch,存储方面Ceph平台占据主导地位。MySQL是最流行的数据库,紧随其后的是MariaDB和MongoDB,以上都是开源软件。
十、Ubuntu是最流行的OpenStack操作系统。与其他领域类似,开源操作系统统治着OpenStack操作系统市场,74%的OpenStack云使用开源操作系统,其中Ubuntu最受欢迎,其余依次是RedHat、SUSE和CentOS。
十一、OpenStack最热门的技术趋势有哪些?调查显示容器技术、SDN、Bare Metal、混合云、PaaS、物联网和硬件加速器是OpenStack用户最看好的能够与OpenStack集成的热门技术领域。
十二、最流行的OpenStack软件开发堆栈是LAMP。
十三、OpenStack被用来干什么(运行哪些任务)?软件开发、基础设施云服务和web服务/电商是OpenStack云中运行最多的任务。
十三、接受本次调查的OpenStack专业人士在企业IT部门中的职位。(下图)
了解OpenStack
OpenStack 是最火的开源软件之一,活跃度呈指数级别上升;它是一组开源项目,诞生之初是由两个项目组成,目前十几个项目;它是一个云操作系统,OpenStack is a cloud operating system that …
OpenStack 管理的资源不是单机的而是一个分布的系统,把分布的计算、存储、网络、设备、资源组织起来,形成一个完整的云计算系统;OpenStack 也提供一个 UI,这里包括一个图形化的 UI:Horizon,也提供命令行的界面,还提供了一套 API 支持用户开发自己的软件……
OpenStack 是用 Python 实现的软件。
分布式系统的逻辑非常复杂,所以用更高级的语言去做,可以把精力更多的放在逻辑上,而不是说纠结与底层的细节,因为高级语言的底层机制已经优化的非常好了,C/C++ 写出来的东西性能不一定就真高;事实上在分布式系统这个领域,有很多很好的例证,比方说 OpenStack 用 Python 写的,Hadoop 使用 Java 写的,UC Berkeley 的 Spark 使用 Scala 语言写的,Twitter Storm 是用 Clojure 语言开发的,这些都是很著名的分布式系统,都是用的更高层的语言而不是 C
OpenStack的特点
OpenStack 是一套框架 —— API,它有两个特点:
它是一个中间层,可以创建、管理和销毁虚拟机,但是要完成这些操作需要依赖于第三方的 Hypervisor,通过这个 Hypervisor 去完成虚拟化的工作,OpenStack 并不能自己去提供一个虚拟化的运行环境,OpenStack 有个组件叫 Cinder(用来提供块存储服务的),但是 OpenStack 自己并不能进行数据的存储和读写,它需要依赖一个实际的块存储设备的支持,这个设备可以是一个分布式的存储系统,比如说 Ceph,也可以是一个存储设备,比如说 EMC 的 SAN,也可以是存储服务器的本地硬盘,但是它必须依赖一个存储设备的支持,OpenStack 本身并不具备这个功能。OpenStack 是一个中间层。
框架有一个很重要的特点,那就是它能提供一批 API 去支持应用的开发,这也是我们业内对框架的一个定义,OpenStack 当然也有这个特点,云计算的愿景就是让用户能够像用电一样去使用计算,OpenStack 的设计也是朝着这个愿景去做设计的,但是实际上我们平时是不能直接用电的,我们需要用的是电冰箱、电脑、电视等等这些电器。同理,对于云计算来说,提供 API 去支持开发应用这个事情就合情合理的非常的重要了,具有完备的 API 是 OpenStack 的突出优点。
OpenStack ≠虚拟化软件
第一,它不是虚拟化软件(必须知道这点),OpenStack 虽然管理虚拟机,但不具备虚拟化的功能,它给上层提供一个虚拟化的运行环境,必须得依赖一个第三方的虚拟化软件来实现,比如默认支持的 Linux 内核虚拟机,装完 Linux 之后就自动带了,集成到 Linux 内核里面了(KVM),另外它还支持 Xen,还支持微软的 Hyper-V,支持 VMware 的 Vshpere,还支持像 Linux Container 和 Docker 这样轻量级的虚拟化技术。总之,OpenStack 本身不提供虚拟化,依赖第三方软件。
需要了解的第二层含义:这个云化和虚拟化实际上是不一样的,云 != 虚拟化,云化的目的是为了实现效用计算,弹性计算,动态资源调度,多租户等这样的一些特性;而虚拟化只是实现云计算的这些特性中的一个技术手段而已,而且它不是必需的。比方说 IBM 的 Softlayer 是 IBM 主推的云服务之一,它中间有一个非常大的特点就是,它支持 Bare Metal Server,直译过来就是 “金属裸机”,也就是 Softlayer 在上面不做虚拟化,而是直接用物理服务器来实现云,直接给用户、租户提供的就是物理服务器,Softlayer 也可以在上面来实现多租户 、弹性计算等等特性。总之,Softlayer 没有虚拟化,但是 Softlayer 也做了云。第二个例子是 OpenStack 也有一个项目叫作 Ironic,是为了通过管理 “金属裸机”来实现云从而提出的项目。
OpenStack资源管理
OpenStack 作为一个操作系统,管理资源是它的首要任务;
OpenStack 管理资源主要有三个方面:计算、存储和网络。
OpenStack 对资源进行管理,并且以服务的形式提供给上层应用或者用户去使用。这些资源的管理是通过 OpenStack 中的各个项目来实现的。
其中计算资源管理相关的项目是 Nova(又称为 OpenStack Compute);
存储相关的主要有块存储服务 Cinder、对象存储服务 Swift、镜像存储服务 Glance 这三种;
与网络相关的主要是一个和软件定义网络相关的项目叫作 Neutron;另外,Nova 中间有一个管理网络的模块叫作 Nova Network,作为一个比较稳定的遗留组件仍在 OpenStack 里面和 Neutron 并存,我们在小规模部署里面经常为了追求这种稳定,并且减少工作量会去使用 Nova Network 这样的一个组件来对网络资源进行管理。