OpenStack之体系设计

OpenStack作为一个最广泛使用的开源云计算管理平台,除了它本是开源的,由开源社区驱动,它本身的架构设计也是非常开放的。 这里我们来聊一下关于OpenStack的软件架构设计

开放的设计

如上图所示,OpenStack包含了大量的组件以及服务,除去这些组件和服务我们会发现OpenStack几乎所有组件之间通讯以及内部逻辑都高度依赖于消息服务。

基于消息的架构设计使得OpenStack具有更好的开放性和扩展性,实施时可根据企业环境的具体情况进行安装和配置,同时也方便后期通过增加硬件的方式提高OpenStack的能力。

抛开上图的逻辑部分,我们可以发现openstack所有的服务基本可以分为以下3大类:

  • 基于WSGI的Web服务,用于提供相应API接口与服务(如nova-api,cinder-api等);
  • 守护进程,用于处理API请求同时与数据库以及消息服务器器交换信息,以及资源生命周期管理(如nova-compute,cinder-volume等);
  • 基于消息服务的业务逻辑处理;

OpenStack围绕“计算,存储以及网络”3大服务展开,分别提供nova,cinder和swift以及neutron4个项目提供相应的基础服务。同时使用glance提供基础的镜像管理,keystone提供3A以及service catalog服务。

OpenStack目前主要服务以及项目代号和说明

服务 项目代号 说明
Dashbord Horizon 提供基于Web的管理控制台和管理界面
Compute Nova 提供计算实例的生命周期管理,同时包含祖如资源调度(nova-scheduler)的服务保证硬件资源使用的均衡
Network Neutron 提供网络及服务,容许用户定义自己的私有网络,定义基本网络结构等
Storage
Block Storage Cinder 为虚拟机实例提供永久存储服务,可以基于多种Backend实现存储服务,诸如:iscis
Object Storage Swift 提供类似于AWS S3的对象存储服务
Shared Service
Identity Service Keystone 为OpenStack提供核心的3A服务,以及服务Endpoint列表
Image Service Glance 存储和管理OpenStack的基础镜像,提供镜像存储服务,Nova依赖于该服务
Telemetry Ceilometer 提供资源使用的监控,计量,统计以及计费服务
Orchestration Heat 类似于AWS的CloudFormation服务,提供通过模板的方式定义和创建OpenStack资源管理服务
Database Service Trove 数据库既服务

开放的接口

OpenStack为开发者提供了开放的API,可以方便企业用户按自己的业务需求对OpenStack进行二次开发,目前基于OpenStack的公有云服务包括如国外的RackSpace,以及诸如国内的联通沃云,以及华为云皆是基于OpenStack的云服务供应商。