首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》12.4.3 逻辑架构

关灯直达底部

图12-11展示了Barbican的逻辑架构。

图12-11 Barbican的逻辑架构

外部请求首先到达API节点,对于可以同步响应的请求(如GET请求),API节点可以直接与数据库交互并返回,否则API节点需要通过队列,将请求交由工作者节点进行异步处理。异步处理模式则可以与第三方组织如数字证书认证机构进行交互。如图12-11所示,在Barbican架构中,可以通过网络添加和删除多个API和工作者节点,以此支持自动伸缩等高级特性。数据库需要跨数据中心部署多份,以支持对用户屏蔽区域获取保密信息,同时减少数据同步带来的时延。

Barbican系统中使用了一些Oslo公共项目组件,如配置、消息和日志等。图12-12展示了Barbican内部组件间的交互。

图12-12 Barbican内部组件间的交互

图12-12中覆盖了一些潜在的REST接口客户端,包括Castellan。Castellan向其他OpenStack项目提供通用密钥管理接口,而Barbican是Castellan的一个插件。

API节点是WSGI服务器。和Glance相同,Barbican利用Paste模块支持可配置中间件,如与Keystone交互进行认证。Pecan是受CherryPy、TurboGears和Pylons启发研发出的一个轻量级Python Web框架。Barbican采用Pecan将资源路由并映射到Rest请求。这些资源包括控制业务逻辑,以及与通过Crypto组件与加密、解密进程交互,通过Repository组件与数据存储交互,通过Queue组件执行异步任务等。

Crypto组件中以插件形式,包含了密钥管理互操作协议(KMIP)和硬件安全模块(HSM)等。通过多种加密机制和解密后端,Crypto提供对信息的加解密。

Repository组件提供数据存储接口以及数据库会话上下文。Repository中还包含了表征实体的模型组件,例如Secrets用于存储数据加密密钥等加密后的信息。Repository用SQLAlchemy作为数据库的对象关系模型层,包括MySQL和PostgreSQL。

Barbican引入Oslo Messaging与RabbitMQ等队列交互,执行异步处理。工作者节点处理来自队列的任务。任务组件与API资源类似,执行业务逻辑的同时,与数据存储进行交互。异步任务可以与数字证书认证机构等外部系统进行交互。