1.3 了解OpenStack
2010年7月,Rackspace和NASA合作,分别贡献出Rackspace云文件平台代码和NASA Nebula平台代码,并以 Apache 许可证开源发布了 OpenStack,OpenStack 由此诞生。经过几年的发展, OpenStack现已发展成为一个广泛使用的业内领先的开源项目,提供部署私有云及公共云的操作平台和工具集,并且在许多大型企业支撑核心生产业务。
1.3.1 什么是OpenStack
OpenStack示意图如图1-6所示。OpenStack是一个云操作系统,通过数据中心控制大型的计算、存储、网络资源池,并可以使用Web界面和API进行管理。
图1-6 OpenStack示意图
OpenStack项目旨在提供开源的云计算解决方案以简化云的部署过程,实现类似AWS EC2和S3的IaaS服务。其主要应用场合包括Web应用、大数据、电子商务、视频处理与内容分发、大吞吐量计算、容器优化、主机托管、公共云、计算启动工具包(Compute Starter Kit)和DBaaS(数据库即服务,DateBase-as-a-Service)等。
Open意为开放,Stack意为堆栈或堆叠,OpenStack是一系列开源软件的组合,包括若干项目。每个项目都有自己的代号(名称),包括不同的组件,每个组件又包括若干服务,一个服务意味着运行的一个进程。这些组件部署灵活,支持水平扩展,具有伸缩性,支持不同规模的云平台。
OpenStack最初仅包括Nova和Swift两个项目,现在已经有数十个项目,其中主要的项目如表1-1所示。这些项目之间相互关联,协同管理各类计算、存储和网络资源,提供云计算服务。
表1-1 OpenStack的主要项目
作为免费的开源软件项目,OpenStack由一个名为OpenStack Community的社区开发和维护,来自世界各地的云计算开发人员和技术人员共同开发、维护OpenStack项目。与其他开源的云计算软件相比,OpenStack具有以下优势。
(1)模块松耦合。OpenStack模块分明,容易添加独立功能的组件。往往无须通读OpenStack整个源代码,只需了解其接口规范及API使用,就能添加一个新的模块。
(2)组件配置灵活。OpenStack的组件安装非常灵活,可以全部集中装在一台主机上,也可以分散安装到多台主机中,甚至可以把所有的节点都部署在虚拟机中。
(3)二次开发容易。OpenStack发布的OpenStack API是RESTful API,所有组件采用这种统一的规范,加上模块松耦合设计,二次开发较为简单。
1.3.2 OpenStack项目的组成
OpenStack是由众多项目组成的,每个项目均由一系列进程、命令行脚本、数据库和其他脚本组成。这些进程是分布式的,通过数据库和中间件耦合到一起。这些项目包括OpenStack服务和库等类型,而服务是最主要的OpenStack项目。OpenStack的Queens版本的项目如表1-2所示。
表1-2 OpenStack的Queens版本的项目组成
续表
1.3.3 OpenStack基金会与社区
2012年7月,RackSpace公司将OpenStack转交给OpenStack基金会进行管理。OpenStack基金会是一家非营利性组织,旨在推动OpenStack云操作系统在全球的发展、传播和使用。它在全球范围内服务开发者、用户及整个生态系统,提供共享资源,以扩大OpenStack公共云与私有云的发展,帮助技术厂商选择平台,助力开发者开发出行业最佳的云软件。
OpenStack 基金会分为个人会员和企业会员两大类。OpenStack 基金会个人会员是免费无门槛的,可凭借技术贡献或社区建设工作等参与到OpenStack社区中。而企业会员则根据赞助会费的情况,分成白金会员、黄金会员、企业赞助会员及支持组织者,其中,白金会员和黄金会员的话语权较大。
OpenStack社区是世界上较大、较完善的开源社区之一,拥有来自全球近200个国家及地区的数万名成员。技术委员会负责总体管理全部OpenStack项目,而项目技术负责人(Project Technical Lead)则管理项目内事务,对项目本身的发展进行决策。OpenStack社区由技术专家负责技术,提供专门资源创建社区和整个生态系统,对各种贡献进行鼓励和奖励。
社区对于个人会员而言是非常开放的。个人只有加入基金会,才能享有会员权益,可对OpenStack的诸多事项进行投票表决,获取更多的技术和市场信息。
1.3.4 OpenStack版本演变
2010年10月,OpenStack的第1个正式版本发布了,其代号为Austin,RackSpace公司计划每隔几个月发布一个全新的版本,并且以26个英文字母为首字母,从A~Z顺序命名后续版本。到2011年9月第4个版本Diablo发布时,又改为每半年发布一个版本,分别是当年的春秋两季发布新版本。每个版本都在不断改进,吸收新技术,实现新概念,具体的版本演变过程如表1-3所示。
表1-3 OpenStack版本演变
续表