腾讯开源的配置平台

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

特征

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

设计理念

可扩展性

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

易于监控

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

系统热更新

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

架构设计

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

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

代码结构

腾讯开源的配置平台

网络服务器和用户界面

web-server 是基于 gin 构建的 web 服务器, ui 目录基于 vue.js 构建

测试与工具

test 目录为系统服务的调用示例,tools 目录为客户端管理工具和辅助脚本工具

API 服务器

api-server 基于 go-restful 开源框架构建

场景服务器

scene_server 基于 go-restful 框架构建,以下为划分的微服务目录:

  • 管理服务器
  • 认证服务器
  • 云服务器
  • 数据采集
  • 事件服务器
  • 主机服务器
  • 操作服务器
  • 进程服务器
  • 同步服务器
  • 任务服务器
  • 拓扑服务器

源控制器

source_controller 基于 go-restful 框架构建,提供原子接口服务

常用&存储

common Directory 为项目的公共依赖库,storage 为项目对仓储接入的封装,thirdpartyclient 为项目对第三方客户端接入的封装


原文始发于微信公众号(开源技术专栏):腾讯开源的配置平台

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/200871.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!