Skip to content

平台概览与架构 ​

ECMDB 是一套模块化、高内聚的企业级运维微服务套件,涵盖配置资产(ECMDB)、流程工单(EFlow)、自动化作业(ETask)、统一身份(EIAM)与告警通知(EAlert)等独立子系统。

各系统完全独立部署、解耦演进、无固定上下游流水线顺序;在综合协同场景下,通过标准 RPC 契约与异步事件总线按需进行微服务间网状调用。

平台全景架构与调用流转 ​

ECMDB 平台系统全景架构与调用流转

系统采用现代微服务矩阵架构,统一在 ECMDB-Web 控制台聚合管理,各子系统既可按需单独交付使用,也可在企业混合云环境中组网联动。

核心架构层级与组件 ​

1. 接入层与安全控制面 ​

  • ECMDB-Web 控制台:基于 Vue 3 + TypeScript 构建的现代化响应式统一工作台与聚合操作入口。
  • EIAM 统一身份与权限基座:面向全生态的身份与访问控制中枢,负责 SSO 统一认证、Casbin + OPA 动态策略裁决(PBAC/AccessScope)与 API 契约守门。

2. 核心业务能力矩阵 ​

模块职责定位核心能力说明仓库地址
ECMDB配置中枢与资产拓扑Schema-less 动态模型引擎、自定义属性分组与格式校验、多维资产关系拓扑与影响分析、敏感凭据透明加解密、高性能 Excel 批量处理。ecmdb
EFlow工单与审批流转引擎低代码可视化拖拽表单设计、多级条件分支与审批流转矩阵、支持会签/或签与撤回重申、节点流转全过程留痕与合规审计。eflow
ETask分布式自动化作业引擎跨主机多节点高并发批量执行、内置 Shell / Python / Ansible 剧本调用、支持按需扩展自定义执行器、SSE 流式终端日志逐帧回显。etask
EAlert告警、消息通知与排班引擎告警接入与分组抑制降噪、统一多通道消息通知(飞书卡片/邮件)、工单与系统事件触达、On-Call 可视化轮值排班。暂未开源 (规划中)

关于 EAlert 开源计划

EAlert(告警、统一通知与排班引擎)目前已在实际生产环境中稳定运行,暂未对外开放源码。如果平台在社区反响良好、大家对开箱即用的告警降噪、统一消息通知与轮值排班诉求较高,后续我会积极抽时间推进代码整理与脱敏,择期正式开源出来。欢迎大家提出建议或与我交流!

3. 微服务插件体系 (ECMDB Plugins) ​

采用控制面 (Control Plane) 与数据面 (Data Plane) 分离的独立微服务矩阵,提供微前端 UMD 热插拔与全链路凭证零泄露架构:

  • 源码仓库:ecmdb-plugins
  • WebSSH 终端与 SFTP 管理 (builtin.ssh):xterm.js 终端仿真、全屏编辑、目录树可视化与拖拽传输。
  • 开放插件架构:提供声明式 Go DSL 与微前端基座,支持面向任何专用设备或数据库快速扩展插件。详情参考 微服务插件体系。

4. 基础设施与存储底座 ​

在微服务矩阵架构下,各子系统保持高度数据自治与技术选型解耦,按需插拔装配底层组件,绝非所有微服务强绑定全套基础设施:

基础设施组件ECMDB (配置资产)EFlow (流程工单)ETask (作业执行)EIAM (身份与权限)
Percona MongoDB 7.0+⭐️ 核心独享 (模型定义、资产分表 + ngram 检索)❌ 无依赖❌ 无依赖❌ 无依赖
MySQL 8.0+❌ 无依赖 (全面基于 Mongo 文档模型)⭐️ 核心存储 (流程步骤、审批实例与快照)⭐️ 核心存储 (任务模版与作业执行历史)⭐️ 核心存储 (多租户隔离、组织树与 PBAC)
Redis 7.x资产查询缓存、插件在线会话状态审批防重锁与草稿暂存实时终端日志滑动缓冲 (SSE)⭐️ 核心广播 (redisWatcher 内存图同步)
Kafka异步事件通知总线⭐️ 事件生产端 (流程审批后异步派发作业)⭐️ 任务消费端 (Agent 异步拉取任务削峰)❌ 无依赖
Etcd 3.5+微服务注册与发现微服务注册与发现⭐️ 核心调度 (Worker 自动注册、租约心跳与选主)微服务注册与发现
MinIO / 对象存储Excel 批量导入导出与离线附件❌ 无依赖⭐️ 制品仓库 (不可变代码包与执行归档)❌ 无依赖

各子系统组件职责划分 ​

  • ECMDB (配置资产与拓扑):完全依托 Percona MongoDB 作为核心存储底座(无需 MySQL),通过 Schema-less 动态集合统一管理元模型定义与异构 CI 资产,借助原生 ngram 插件实现免引入 ES 的高性能全文模糊检索;使用 MinIO 保存批量导入导出文件。
  • EFlow (流程工单引擎):以 MySQL 驱动强事务状态机、可视化表单定义、审批全栈快照与字段合并,完全不依赖 MinIO;若工单审批包含自动化任务节点,作为生产端向 Kafka 投递异步执行事件,实现流程流转与后台作业彻底解耦。
  • ETask (分布式作业引擎):依托 Etcd 实现分布式 Worker 算力节点的自动发现、Lease 租约心跳保活与调度选主;利用 Kafka 缓冲海量并发作业,以 MinIO 作为 S3 协议制品仓库持久化存储不可变代码包,并通过 Redis 承载流式终端执行日志的高速滑动缓冲与 SSE 实时回显。
  • EIAM (身份治理与统一权限):纯控制面轻量设计,仅依赖 MySQL 管理多租户隔离数据、组织部门树与 PBAC 策略文档;依托 Redis(redisWatcher)秒级广播刷新集群节点内存中的 Casbin DAG 图,实现鉴权读请求“零查 SQL、纯走内存”。

架构设计与工程准则 ​

  1. 微服务松耦合独立演进:业务子系统按需插拔装配,禁止隐式跨服务强耦合,所有通信依托 Protobuf / gRPC 与明确的 API 契约。
  2. 生产安全与合规审计:敏感凭据字段 AES-256 加密落库,关键运维操作与工单流转金融级快照留痕。
  3. 开箱即用交付:单套 Docker Compose 编排,5 分钟内即可在本地或私有云拉起全套微服务套件。

基于 MIT 许可发布