架构与设计

分层架构体系

Architecture

接口层(Interface Layer)

  • 功能模块
    • REST API:提供符合 OpenAPI 3.0 规范的HTTP接口
    • Web UI:基于 Vue 3 的交互式管理界面
  • 交互协议:所有接口请求均通过 HTTP 传输

核心层(Core Layer)

模块职责描述
Server集群元数据管理、Job调度、全局状态维护
Agent主机级服务生命周期管理(部署/启停/配置)
LLM基于自然语言处理的智能运维建议生成
Stack组件栈定义
gRPC实现 Server 与 Agent 间的双向通信协议
Job任务执行单元,记录操作状态与日志

组件层(Component Layer)

  • 支持组件:包括但不限于: ZooKeeper/Hadoop/Kafka 等
  • 扩展机制:通过 Stack 模块定义新组件的安装脚本与配置模板

集群拓扑规则

Cluster

部署约束

  • 服务实例
    • Server 以单实例模式运行于 Host
    • 每个 Host 最多部署一个 Agent 实例
  • 资源分配
    • 每个 Host 仅可加入一个集群
    • Agent 负责管理 Host 内的所有组件
  • 通信路径
graph TD
    Server-->|Management|Cluster-A
    Server-->|Management|Cluster-B
    Cluster-A-->|Agent|Host-1
    Cluster-A-->|Agent|Host-2
    Cluster-B-->|Agent|Host-3

任务处理流程

Command

指令执行阶段

  • 请求接收
    • 用户通过 REST API 或 Web UI 发起操作请求(如启动 Kafka)
    • Server 验证权限后创建对应Job记录
  • 任务调度
graph LR
    A[Job Enqueue] --> B(Job Queue)
    B --> C{Scheduling Strategy}
    C -->|FIFO| D[Split Task]
    D --> E[Distribute to Agent via gRPC]
  • 脚本执行
    • Agent 加载 Stack 中对应的脚本
    • 执行日志实时写入本地 Log 文件

状态管理机制

状态类型触发条件处理策略
PENDINGTask 创建未调度等待调用
RUNNINGTask 已下发 Agent监听超时阈值
SUCCESSFUL/FAILEDAgent 返回执行结果更新组件状态
CANCELED前置任务失败取消后续任务