Apollo · 声明式部署与编排平台
对标 Palantir Apollo 的轻量版交付运维底座:用"期望状态声明 + Spoke 拉取"把软件与配置安全分发到任何环境,控制面永不主动连入客户环境。本页用场景故事带你认识它怎么部署、怎么防漂移、怎么保供应链安全。
能 / 不能速览
- 声明式期望状态:YAML 定义组件 / 依赖 DAG / 探针 / 策略,登记后激活即可部署
- DAG 分批部署:依赖分层放行 + 就绪门控推进 + 超时失败自动回滚
- 漂移检测与调和:JSON Patch 路径级 diff + ignore_paths 忽略规则 + reconcile 收敛
- bundle 供应链安全:SM3 清单 + SM2 签名 + 签名者白名单信任锚 + 单调版本防回滚
- 安全合规:SBOM 物料清单 + 内置漏洞扫描 + 安全策略门禁(部署前拦截)+ 合规报告
- 任意版本回滚、部署策略(policy-as-code)、发布通道、Spoke Agent 拉取式部署
- 当前 YAML 手工登记到 Hub,"Git 即真相源 + 自动 PR"属 P2
- 演示 Poller 仅拉取 / 上报,不真实部署进程(ProcManager 未挂载时不应用)
- 监控 / 告警 / 自愈(Prometheus / Loki / Jaeger)属 V2;gRPC / mTLS 属 V2
- 指标门控渐进发布、真实 Trivy/Syft 扫描器、OPA(Rego) 策略引擎、敏感配置 SM4 加密属后续阶段
常见角色
- 应用开发工程师:把服务写成期望状态 YAML(组件 / 依赖 / 探针),登记与演进版本。
- 运维工程师 / SRE:激活、发起部署、手动推进、处理漂移与回滚——部署编排核心使用者。
- 安全合规工程师:bundle 验签、签名者白名单信任锚、SBOM / 漏洞扫描 / 策略门禁、合规报告与审计留痕。
- 平台管理员:权限(RBAC)、审计、系统健康与配置。
核心能力(能做什么)
期望状态管理
YAML 声明应用该长什么样:组件、依赖 DAG、探针、策略;状态机 draft → active → deprecated 受控流转。
DAG 部署编排
Kahn 分层分批放行 + 就绪门控(依赖全 ready 才推进)+ 就绪超时 + 失败自动回滚(auto_rollback 默认开启)。
漂移检测与调和
期望 vs 实际做 JSON Patch 路径级 diff,ignore_paths 忽略动态字段,reconcile 收敛回期望状态。
bundle 供应链安全
SM3 逐文件清单 + 不可变 digest + SM2 签名 + 签名者白名单信任锚,堵住"任意有效签名"。
回滚引擎
任意历史版本回滚(生成新期望状态行)+ 部署失败自动回滚 + 同一 Agent 部署锁串行化。
Spoke 拉取式部署
Agent 出向拉取期望状态并上报实际状态,控制面永不主动连入客户环境,适配内网 / 离线 / 信创。
发布通道与策略
release_channels 指向期望状态(stable 等),部署策略 policy-as-code(auto_rollback / 超时 / 并发 / 忽略路径)。
快速上手(5 分钟跑通一次部署)
- 登录:启动 Apollo 后端(端口 18082),用 admin / admin1 登录
- 看期望状态:进入"期望状态"页,demo-app 已预置并激活(v1.0.0、web→db 依赖 DAG、tcp 探针)
- 看声明:点"查看声明"导出 YAML,理解 components / depends_on / probes / policy
- 发起部署:到"部署"页发起部署 demo-app 到 agent=spoke-01,看 DAG 首批放行 db
- 推进:在组件状态里手动"推进"直到 synced,再去"漂移检测"体验一次 detect → reconcile
主题列表
与 Palantir Apollo 的价值差异
- 轻量可单机:Palantir Apollo 部署需要专业团队;LightApollo 单机可运行,10 分钟启动(admin / admin1 即可体验)。
- 拉取式 Pull 通信:Agent 全程出向拉取 / 上报,控制面永不主动连入客户环境——内网、离线、信创场景天然可用。
- 国密供应链安全:SM3 清单 + SM2 签名 + 签名者白名单信任锚 + 单调版本防回滚,契合国产化与合规要求。
- 开放 API 与跨产品分发:REST API 直白可调试;bundle 组件类型支持 config / llm_route / eval_set / ontology_yaml,可为 AIP / Foundry 做分发载体。
常见问题
Apollo 和 Kubernetes / Argo CD 是什么关系?
Apollo 是它们之上的"控制平面",不替代 K8s:它用期望状态管理异构环境(含非 K8s 的虚拟机 / 裸金属 / 单机),K8s 是 V2 的目标环境之一。Argo CD 只覆盖 K8s,Apollo 覆盖 K8s + 非 K8s。
控制面怎么访问目标机?
不访问。Spoke Agent 主动出向拉取期望状态(GET)并上报实际状态(POST),控制面永不主动连入客户环境,因此生产环境无需开放入向端口,也天然适配内网与离线场景。
为什么用国密 SM2 / SM3?
SM3 做内容摘要(逐文件清单 + digest)、SM2 做签名与验签、签名者指纹 = SM3(公钥)。国密算法契合信创与国产化要求,且离线可验、不依赖第三方证书中心。
怎么体验?
启动 Apollo 后端(18082),用 admin / admin1 登录。演示数据自动就绪:demo-app 期望状态(已激活)、demo-signer 签名者、stable 发布通道、default 部署策略。建议先看"GitOps 入门:声明式部署"。