天天看点

《OpenStack实战指南》—— 1.2 OpenStack的结构

本节书摘来自华章出版社《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(消息队列)进行数据持久化、通信。