立项原因:传统大数据平台部署运维存在严重痛点——Hadoop、Hive、Kafka等组件安装步骤繁琐、依赖关系复杂、配置繁冗,运维人员需手动处理每个节点的环境搭建与配置下发,效率低下且易出错。Captain旨在解决大数据集群全生命周期管理的自动化与可视化问题。
行业场景:企业级大数据基础设施管理平台,面向大数据运维团队、IaaS/PaaS平台建设者,覆盖大数据平台的快速交付、多集群统一管控、组件版本管理与灰度升级等场景。
点击空白处退出提示
立项原因:传统大数据平台部署运维存在严重痛点——Hadoop、Hive、Kafka等组件安装步骤繁琐、依赖关系复杂、配置繁冗,运维人员需手动处理每个节点的环境搭建与配置下发,效率低下且易出错。Captain旨在解决大数据集群全生命周期管理的自动化与可视化问题。
行业场景:企业级大数据基础设施管理平台,面向大数据运维团队、IaaS/PaaS平台建设者,覆盖大数据平台的快速交付、多集群统一管控、组件版本管理与灰度升级等场景。
功能模块:
1. 主机管理 — 添加/删除被管主机、Agent部署启停、组件状态查看
2. 应用商店 — 浏览/搜索26款预定义应用(Hadoop、Hive、Kafka、MySQL、JDK等),一键触发安装
3. 安装管理 — 批量安装任务创建、依赖检查、进度追踪(下载/解压/配置百分比实时展示)、重试与取消
4. 服务管理 — 已安装服务的启停、配置下发与热更新、组件卸载
5. 全局配置 — 平台级参数设置(包路径、下载地址前缀、部署家目录、状态采集模式等)
6. 集群管理 — 集群逻辑分组的创建、编辑、删除
7. 许可管理 — 基于RSA-2048签名的激活码激活、机器绑定、授权信息查看
我负责的任务:全栈开发——前端Vue 3界面实现(主机/应用商店/安装管理/服务管理等8个核心视图)、后端Go API开发(30+ REST端点)、Go Agent开发(命令执行/文件传输/状态采集)、应用包元数据定义、构建脚本与跨平台打包。
技术栈与架构:
- 前端:Vue 3 + TypeScript + Vite + Element Plus + Monaco Editor + Pinia
- 后端:Go + Gin + SQLite(WAL模式,单写连接)
- Agent:Go + Gin,独立部署于每台被管主机(port 8871)
- 通信协议:SSH仅用于初始Agent部署,所有运维操作走Agent REST API(Bearer认证)
亮点与难点:
1. 控制端-Agent双层架构:后端通过ExecuteCommandOnHost()统一入口自动路由Agent API或SSH,业务层无需感知通信方式
2. 异步进度追踪:安装过程分解为下载→解压→配置→启动四个阶段,前端通过状态轮询实现实时进度条
3. 应用包系统:26款组件统一通过metadata.json+Go template配置模板+manager.sh脚本抽象,支持跨服务变量引用({{.service.X.host}})
4. 许可体系:RSA-2048签名验证,激活码格式CAPTAIN-v2-{Base64(payload+签名)},公钥编译进二进制
5. Pull/Push双状态采集:控制端定时拉取或Agent主动上报组件运行状态
6. 前端嵌入后端:通过//go:embed将Vue构建产物嵌入Go二进制,最终发布为单文件可执行程序






评论