声明「这个环境应该长什么样」,目标机上的 Agent 主动来拉、自己验签、自己应用。控制台永不反向连入客户网络
运维工程师、FDE、安全合规团队的交付控制平面
用 YAML 声明环境「应该长什么样」;目标机 Agent 主动拉取、验签、应用;DAG 分批推进、失败自动回滚;检测配置漂移并收敛;监控告警与审批制自愈。
不替代你的代码仓库(GitHub / GitLab / 本地 Git);不自己实现监控系统(指标可直接接入 Prometheus);不需要 Kubernetes——单机就是一等公民;不引入消息队列与服务注册中心。
期望状态声明 + Spoke Agent 主动拉取,只出不进
装在目标机上的拉取端,拉取和上报都是它主动发起——控制台永远不需要连进客户网络。
完全断网时,签名包手工带入(U 盘 / 内网文件服务器),Spoke Agent 拉取验签部署。隔离环境不再是智能化的禁区。
一份发布包 = 文件清单 + 国密哈希 + 整体签名 + 签名者身份
按清单逐文件比对 SM3 哈希,任何一个文件被改过都会被发现。
用 SM2 对整包做签名验证——保证「这份包确实来自它声称的构建」。
只有白名单内的签名者产出的包才允许落地——防止用合法工具签出未授权的包。
版本号必须严格递增,杜绝回滚攻击与「用旧包覆盖新包」。
SM3 做内容哈希、SM2 做签名验签、SM4 做对称加密,全部纯 Go 实现、无 CGO 依赖——这既满足密评合规,也让信创环境下的跨平台编译不成为障碍。
组件按依赖分批推进,就绪探针不过就超时、超时就回滚上一稳定版
部署推进由就绪探针决定,而不是由「命令返回 0」决定。这决定了客户自己接得住升级——一个月后客户完成第一次升级,失败自动回滚,全程没给 FDE 打一个电话。
实际状态偏离声明即为漂移——可检测、可忽略、可自动收敛
有人手改了服务器配置?系统产出字段级差异,精确到哪个键从什么值变成了什么值。
有些字段本来就该由现场决定(如本机路径、节点名),可配置忽略路径,避免无意义的漂移告警。
可配置自动收敛回声明状态——把「应该长什么样」重新变成现实,而不是靠人肉巡检。
事故期间的手工改动会被记录并询问:保留(并更新声明)还是收敛(恢复声明)。机制拦住错误,也把决策留给人。
统一制品库 + 多环境配置管理,让「一份定义、多环境部署」真正可用
二进制包、镜像、本体 YAML、指标定义、评测集统一登记管理,每个制品带国密签名与签名者身份。
公共部分写在 Base,环境差异写在 Overlay——不复制粘贴配置,也不会出现「三个环境三份不一样的文件」。
密钥密文入库,明文只在运行时短暂出现——配置文件可以进 Git,而不必担心把口令一起提交上去。
生产 / 测试 / 隔离网多环境统一纳管;断网与信创环境走离线 bundle,与联网环境用同一套机制。
健康探针 → 告警事件单 → 审批制自愈 → 恢复确认
重启服务、清理临时文件这类低风险动作可直接执行;高危动作先停在待审批状态,由人按下确认。自愈不是无条件的。
第二天在控制台看到的是一条完整链路:故障时间点、告警内容、自愈动作、审批记录、恢复确认,以及一条漂移报告。
SBOM + 漏洞扫描 + 部署前策略门禁——不合规的包,门都进不去
每个制品附带软件物料清单,清楚知道这个包里有哪些组件、什么版本——供应链问询时不用现挖。
部署前对制品做已知漏洞扫描,命中高危策略时直接阻断,不靠人工检查。
密钥安全、镜像来源、签名者白名单、版本单调——以策略形式内建在交付路径上。
完整的部署 / 回滚 / 自愈 / 审批审计日志;控制台侧 RBAC 权限控制,API Key 只存哈希。
路径是连续的,不需要推倒重来——大多数客户从 ① 走到 ③ 只用一两周
工作坊与概念验证
数十人规模的数据化
四产品全开
完全断网运行
隔离内网里的一周交付 · 运维工程师的深夜自愈
也可浏览 LightApollo 界面介绍 或 场景故事站;平台本身的部署形态见首页 交付与上手 一节。