bk-cmdb - 蓝鲸智云配置平台


BSD
跨平台
Python

软件简介

蓝鲸配置平台(蓝鲸 CMDB)是一个面向资产及应用的企业级配置管理平台。蓝鲸智云体系的平台之一。

蓝鲸配置平台提供了全新自定义模型管理,用户不仅可以方便地实现内置模型属性的拓展,同时也能够根据不同的企业需求随时新增模型和关联关系,把网络、中间件、虚拟资源等纳入到
CMDB 的管理中。除此之外还增加了更多符合场景需要的新功能:机器数据快照、数据自动发现、变更事件主动推送、更加精细的权限管理、可拓展的业务拓扑等功能。

在技术构建上,架构的核心聚焦于资源,把 CMDB
管理的原子资源分为主机、进程和通用对象三种类型,并构建了对这些资源的原子操作层。在这些原子操作之上,我们构建了更贴近用户操作的场景层,场景层通过对不同资源的组合操作来完成用户的请求。

架构设计

蓝鲸智云配置平台(以下简称配置平台)整体为分层的微服务设计,可以分为以下四层:

  1. 资源层(store) :提供系统所需的资源存储、消息队列以及缓存系统服务

  2. 服务层(service layer) : 服务层划分为两大模块

    1. 资源管理模块 : 在配置平台中我们把资源类型进行了抽象,目前划分为主机、进程、通用对象三大类,支持横向扩展,每一类资源由一类微服务进程来管理。

    2. 业务场景模块 : 业务场景模块是基于资源管理模块的原子接口对应用场景的封装,基于操作的相关度,目前划分出【admin、event、host、topo、process、datacollection】几个微服务,admin服务 负责系统的配置刷新、初始化数据写入等操作;event服务负责系统的事件订阅与推送服务;process、topo、host分别负责系统进程、拓扑模型、主机数据的使用场景; datacollection 服务负责系统快照数据的接收与写入。

  3. 接口层(api) : 这一层是系统的api服务网关。

  4. web层(web) : web层是系统提供的web服务。通过配置平台提供的web服务界面,用户可以进行资源的操作。

在架构图中有一点未体现出来的就是连接所有系统微服务的服务发现功能,基于zookeeper node watch
机制,我们构建了系统的服务注册与发现功能,从而使系统能保持高可用。

为了规避微服务部署中配置文件的管理问题,基于 zookeeper 构建了系统的配置中心服务,所有的配置文件在系统启动之初就通过 admin-server
刷入 zookeeper ,每个进程只需要在 zookeeper 中取自己需要的配置文件。 这两个模块的存在保证了系统的高可用以及服务的易用性。

特性

  • 拓扑化的主机管理:主机基础属性、主机快照数据、主机归属关系管理
  • 组织架构管理:可扩展的基于业务的组织架构管理
  • 模型管理:既能管理业务、集群、主机等内置模型,也能自定义模型
  • 进程管理:基于模块的主机进程管理
  • 事件注册与推送:提供基于回调方式的事件注册与推送
  • 通用权限管理:灵活的基于用户组的权限管理
  • 操作审计:用户操作行为的审计与回溯