GitHub 4.7k标星,这个腾讯开源的一站式配置管理平台最近火了

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。

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

特征

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

设计理念

业务场景层中有各种贴近业务的场景服务,每个服务都有清晰的边界。场景服务与场景服务之间没有直接的耦合,并且每个场景服务都是无状态的,去中心化部署的。

资源管理层中有各种管理资源的抽象控制器,我们称之为controller,这个controller代理了对该资源的所有操作。

对每个场景层的服务而言,服务的逻辑是对各种资源的操作组合;对资源管理层的服务而言,服务的调用方都是各种不同的场景。

采用这种基于资源的分层设计,充分发挥了微服务架构中服务复用的特点,在实际应用中有几个好处:

  • 可扩展性强
  • 易于监控
  • 系统热更新

可扩展性

如果业务场景需要扩展,只需要重新开发新的场景层服务,并复用资源管理层的服务和接口。新增的服务并不影响现有各服务的功能。 同样如果需要增加新的管理资源类型,只需要新开发对应的资源管理服务,并不影响既有资源管理服务的运行和场景层服务的功能。

易于监控

将资源的原子管理和复杂的场景分开,可以将资源操作的情况标准化、流程化,资源变更的捕获和推送也更精确。同时,场景层只聚焦于专有场景的业务逻辑,在链路监控上的处理也更明确清晰。

系统热更新

得益于微服务架构的特点,资源管理和场景类服务分层处理后,新增的场景服务,和新增的资源管理服务都可以在不影响线上环境既有部署的情况下增量发布,并通过类似蓝绿发布或金丝雀发布的方式控制灰度的过程。

架构设计

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

  • 资源层(store):提供系统所需的资源存储、消息队列以及缓存系统服务
  • 服务层(service layer): 服务层划分为两大模块

资源管理模块: 在配置平台中我们把资源类型进行了抽象,提供原子接口服务,支持横向扩展,每一类资源由一类微服务进程来管理

业务场景模块: 业务场景模块是基于资源管理模块的原子接口对应用场景的封装,基于操作的相关度,目前划分出【admin、auth、cloud、datacollection、operation、host、process、synchronize、task、topo】几个微服务。

  • 接口层(api): 这一层是系统的api服务网关
  • web层(web): web层是系统提供的web服务。通过配置平台提供的web服务界面,用户可以进行资源的操作

蓝鲸智云配置平台的代码结构

社区版

  • BK-CI:蓝鲸持续集成平台是一个开源的持续集成和持续交付系统,可以轻松将你的研发流程呈现到你面前。
https://github.com/Tencent/bk-ci
  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。
https://github.com/Tencent/bk-bcs
  • BK-PaaS:蓝鲸PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。
https://github.com/Tencent/bk-PaaS
  • BK-SOPS:标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类SaaS产品。
https://github.com/Tencent/bk-sops


—END—

开源协议:MIT

开源地址:https://github.com/Tencent/bk-cmdb

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章