本节书摘来自华章出版社《openstack实战指南》一 书中的第1章,第1.2节,作者:黄 凯 毛伟杰 顾骏杰 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
openstack包含了许多组件。有些组件会首先出现在孵化项目中,待成熟以后进入下一个openstack发行版的核心服务中。同时也有部分项目是为了更好地支持openstack社区和项目开发管理,不包含在发行版代码中。
openstack的核心服务包括:
nova计算服务(compute as a service)
neutron网络服务(networking as a service)
swift对象存储服务(object storage as a service)
cinder块存储服务(block storage as a service)
openstack的公共服务包括:
glance镜像服务(image as a service)
keystone认证服务(identity as a service)
horizon仪表盘服务(dashboard as a service)
openstack的依赖库项目包括:oslo基础设施代码共享依赖库(common lab as a service)。
openstack的孵化项目包括:
ceilometer计费&监控服务
heat编排服务
ironic物理设备服务(bare metal as a service)
marconi消息队列服务(message queue as a service)
savanna大数据处理(mapreduce as a service)
trove数据库服务(database as a service)
openstack的其他项目涉及:
infrastructure openstack社区建设项目
documentation openstack文档管理项目
tripleo openstack部署项目
devstack openstack开发者项目
qa openstack质量管理项目
release cycle management版本控制项目
这些openstack项目有一些共同点,比如:
openstack项目组件由多个子组件组成,子组件有各自的模块。
每个项目都会选举ptl(project technical leader)。
每个项目都有单独的开发人员和设计团队。
每个项目都有具有优良设计的公共api,api基于restful,同时支持json和xml。
每个项目都有单独的数据库和隔离的持久层。
每个项目都可以单独部署,对外提供服务,也可以在一起协同完成某项工作。
每个项目都有各自的后端驱动,所有的驱动都可以以plugin方式加载。
每个项目都有各自的client项目,如nova有nova-client作为其命令行调用restful的实现。
除了以上项目,openstack的其他项目或多或少也会需要database(数据库)、message queue(消息队列)进行数据持久化、通信。