交付现场 · P3 · :18082

LightApollo

声明「这个环境应该长什么样」,目标机上的 Agent 主动来拉、自己验签、自己应用。控制台永不反向连入客户网络

期望状态 拉取式部署 国密验签 漂移收敛 审批制自愈

它是谁,给谁用

运维工程师、FDE、安全合规团队的交付控制平面

13
个后端模块
19
个功能页面
4
步验签顺序
4
种部署拓扑
☃

LightApollo 做什么

用 YAML 声明环境「应该长什么样」;目标机 Agent 主动拉取、验签、应用;DAG 分批推进、失败自动回滚;检测配置漂移并收敛;监控告警与审批制自愈。

☐

LightApollo 不做什么

不替代你的代码仓库(GitHub / GitLab / 本地 Git);不自己实现监控系统(指标可直接接入 Prometheus);不需要 Kubernetes——单机就是一等公民;不引入消息队列与服务注册中心。

纯「只出不进」模型——部署由目标机的 Spoke Agent 主动发起拉取和上报,控制平面不需要能连进客户网络。这对物理隔离、专网环境是决定性的能力。 —— 拉取式(Pull)部署

拉取式部署:控制台永不反向连入

期望状态声明 + Spoke Agent 主动拉取,只出不进

① 声明YAML 描述
环境应该长什么样
→
② 分发制品打包
签名 bundle
→
③ 拉取Spoke Agent
主动发起
→
④ 验签多重校验
通过才应用
→
⑤ 上报实际状态回传
形成差异报告
Spoke Agent

装在目标机上的拉取端,拉取和上报都是它主动发起——控制台永远不需要连进客户网络。

离线 bundle

完全断网时,签名包手工带入(U 盘 / 内网文件服务器),Spoke Agent 拉取验签部署。隔离环境不再是智能化的禁区。

供应链安全:发布包的四重身份

一份发布包 = 文件清单 + 国密哈希 + 整体签名 + 签名者身份

① 逐文件校验

按清单逐文件比对 SM3 哈希,任何一个文件被改过都会被发现。

② 整体验签

用 SM2 对整包做签名验证——保证「这份包确实来自它声称的构建」。

③ 签名者白名单

只有白名单内的签名者产出的包才允许落地——防止用合法工具签出未授权的包。

④ 版本单调递增

版本号必须严格递增,杜绝回滚攻击与「用旧包覆盖新包」。

国密算法纯 Go 实现

SM3 做内容哈希、SM2 做签名验签、SM4 做对称加密,全部纯 Go 实现、无 CGO 依赖——这既满足密评合规,也让信创环境下的跨平台编译不成为障碍。

DAG 门控与自动回滚

组件按依赖分批推进,就绪探针不过就超时、超时就回滚上一稳定版

依赖排序组件按 DAG
确定推进顺序
→
分批推进一批就绪
才进入下一批
→
就绪探针通过则继续
不通过则等待
→
超时回滚回到上一稳定版
联动告警事件单
交付的成败标准不是「发出去了」,是「跑起来了」

部署推进由就绪探针决定,而不是由「命令返回 0」决定。这决定了客户自己接得住升级——一个月后客户完成第一次升级,失败自动回滚,全程没给 FDE 打一个电话。

漂移检测与收敛:「服务器被谁改过」从此有答案

实际状态偏离声明即为漂移——可检测、可忽略、可自动收敛

字段级差异(JSON Patch)

有人手改了服务器配置?系统产出字段级差异,精确到哪个键从什么值变成了什么值。

可配忽略路径

有些字段本来就该由现场决定(如本机路径、节点名),可配置忽略路径,避免无意义的漂移告警。

自动收敛

可配置自动收敛回声明状态——把「应该长什么样」重新变成现实,而不是靠人肉巡检。

保留还是收敛由你决定

事故期间的手工改动会被记录并询问:保留(并更新声明)还是收敛(恢复声明)。机制拦住错误,也把决策留给人。

制品与配置

统一制品库 + 多环境配置管理,让「一份定义、多环境部署」真正可用

▶

统一制品库

二进制包、镜像、本体 YAML、指标定义、评测集统一登记管理,每个制品带国密签名与签名者身份。

☉

Base + Overlay 多环境配置

公共部分写在 Base,环境差异写在 Overlay——不复制粘贴配置,也不会出现「三个环境三份不一样的文件」。

★

Sealed-Secret 密文管理

密钥密文入库,明文只在运行时短暂出现——配置文件可以进 Git,而不必担心把口令一起提交上去。

☐

多环境与断网形态

生产 / 测试 / 隔离网多环境统一纳管;断网与信创环境走离线 bundle,与联网环境用同一套机制。

监控与自愈:凌晨不再靠电话轰炸

健康探针 → 告警事件单 → 审批制自愈 → 恢复确认

发现健康探针
30 秒内捕获异常
→
告警事件单自动创建
Webhook 推值班群
→
自愈低危策略直接执行
高危策略待审批
→
确认指标回稳
事件单自动关闭
审批制自愈

重启服务、清理临时文件这类低风险动作可直接执行;高危动作先停在待审批状态,由人按下确认。自愈不是无条件的。

完整时间线

第二天在控制台看到的是一条完整链路:故障时间点、告警内容、自愈动作、审批记录、恢复确认,以及一条漂移报告。

安全与合规门禁

SBOM + 漏洞扫描 + 部署前策略门禁——不合规的包,门都进不去

SBOM 物料清单

每个制品附带软件物料清单,清楚知道这个包里有哪些组件、什么版本——供应链问询时不用现挖。

漏洞扫描

部署前对制品做已知漏洞扫描,命中高危策略时直接阻断,不靠人工检查。

策略即门禁

密钥安全、镜像来源、签名者白名单、版本单调——以策略形式内建在交付路径上。

审计与权限

完整的部署 / 回滚 / 自愈 / 审批审计日志;控制台侧 RBAC 权限控制,API Key 只存哈希。

四种部署拓扑:从一台笔记本到离线信创

路径是连续的,不需要推倒重来——大多数客户从 ① 走到 ③ 只用一两周

01

单机演示

工作坊与概念验证

  • 一台笔记本即可
  • 内嵌 SQLite + 本地规则兜底
  • 五个进程一条命令拉起
  • 用于 Bootcamp 现场跑真实问题
02

部门级单机生产

数十人规模的数据化

  • 一台 Windows / Linux 服务器
  • PostgreSQL 主库
  • 单机环境下几乎无运维量
  • 覆盖一个部门的高频数据问题
03

企业级全量

四产品全开

  • 四个产品进程 + 网关统一纳管
  • 主库配备份策略
  • 监控指标接入 Prometheus
  • Apollo 统一管理多环境升级与回滚
04

离线信创交付

完全断网运行

  • 麒麟 OS / 统信 UOS
  • 本地化模型(昇腾一体机 + 离线推理)
  • Apollo 离线 bundle 分发
  • 控制台永不反向连入客户网络

最典型的瞬间

隔离内网里的一周交付 · 运维工程师的深夜自愈

一家制造业客户的机房物理隔离,禁止任何外联。FDE 进场第一天拉起平台(单二进制,无外部服务依赖),注册数据源并导入元数据;第二、三天与客户一起建本体、定口径;第四天打标敏感字段、配置授权矩阵;第五天把建好的本体导出 YAML、连同网关路由和 NLQ 评测集打成签名 bundle,登记进 Apollo 的期望状态,现场部署 Spoke Agent。FDE 撤场后,客户运维在控制台看到的是每个环境「应该长什么样」的声明、实际状态的漂移报告,以及一条铁律——任何升级包必须通过国密验签、签名者在白名单、版本号单调递增才能落地。 轻交付的本质是:靠制品和机制留在现场,而不是靠人。
晚上 11 点 40 分,一个服务进程异常退出。30 秒内健康探针发现故障,事件单自动创建并推送到值班群。值班工程师还没打开电脑,低风险自愈策略已经执行完毕;配置了「审批制」的高危动作停在待审批状态。凌晨 0 点 15 分服务恢复,系统检测到指标回稳,事件单自动关闭。第二天看到的是一条完整时间线,以及一条漂移报告:事故期间有人手工改过一个配置项,系统已产出字段级差异,问他是要保留还是收敛回声明状态。 运维的凌晨不再靠电话轰炸,而是靠机制兜底。
拉取式交付 国密验签 DAG 门控 漂移收敛 审批制自愈
相关资源

也可浏览 LightApollo 界面介绍 或 场景故事站;平台本身的部署形态见首页 交付与上手 一节。