《OpenStack实战指南》—— 1.7 OpenStack体系结构

简介:

本节书摘来自华章出版社《OpenStack实战指南》一 书中的第1章,第1.7节,作者:黄 凯 毛伟杰 顾骏杰 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.7 OpenStack体系结构

1.7.1 OpenStack设计原则

在介绍OpenStack体系结构之前,需要先了解一下OpenStack的设计原则,如下:
可扩展性和伸缩性是设计OpenStack的主要目标。
任何影响可扩展性和伸缩性的特性必须是可选的。
一切应该是异步的(如果做不到异步,可参考第二条)。
所有必需的组件必须可水平扩展。
始终使用无共享架构或者分片架构(如果不能实现,可参考第二条)。
一切都是分布式的(尤其应该将业务逻辑与业务状态放在一起)。
接收最终一致性,并在适当条件下使用。
测试一切(我们需要测试已经提交的代码,如果用户需要,我们将会帮助用户测试)。

1.7.2 OpenStack架构

OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合。如图1-24所示,我们看到的是一个标准的OpenStack项目组合的架构。这是比较典型的架构,但不代表这是OpenStack的唯一架构,我们可以选取自己需要的组件项目,来搭建适合自己的云计算平台。
screenshot

OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能,如图1-25所示。通过消息队列和数据库,各个组件可以相互调用,互相通信。这样的消息传递方式解耦了组件、项目间的依赖关系,所以才能灵活地满足我们实际环境的需要,组合出适合我们的架构。每个项目都有各自的特性,大而全的架构并非适合每一个用户,譬如Glance在最早的A、B版本中并没有实际出现应用,Nova可以脱离镜像服务独立运行。当用户的云计算规模大到需要管理多种镜像时,才需要像Glance这样的组件。OpenStack的成长是在生产环境中不断被检验,然后再将需求反馈给社区,由社区来实现的一个过程,可以说OpenStack并非脱离实际的理想化开源社区项目,而是与生产实际紧密结合的,可以复制应用的云计算方案。

screenshot

相关文章
|
网络架构
【openstack】neutron 体系结构
【openstack】neutron 体系结构
134 0
【openstack】neutron 体系结构