aps-agent/docs/adr/0009-delivery-shape.md

2.5 KiB
Raw Blame History

ADR-0009:交付形态——纯平台包 + APS 单独部署

  • 状态:已接受
  • 日期:2026-09-24
  • 决策人:技术负责人
  • 相关:任务表 A0(决策 D14);ADR-0008;实施设计第 3、7 节

背景

平台把 APS 作为外部业务系统接入。首版交付有两种做法:把 APS 打进桌面安装包(同机一体化交付),或只交付平台、APS 单独部署。这个选择影响安装包内容、本地守护范围、发版节奏与联调方式。

选项

选项 做法 代价 不选的理由
A 纯平台包,APS 单独部署 安装包只含桌面端 + 平台服务;APS 由现场单独部署,平台按 Provider 配置指向它 现场要装两套、维护两个地址 选定
B 同机一体包 安装包里带 APS 现场只装一次 APS 是独立系统:独立发版节奏、独立库、独立界面。打进平台包会把两者的升级与回滚绑死,平台安装包还要多背一个 Python 运行时
C 两种都做 同时提供 灵活 首版维护两套打包与两套验收,成本翻倍

结论

选 A:首版只交付纯平台包,APS 单独部署(同机或异地都行)。

项 结论
平台包内容 桌面端 + 平台服务 + 平台库(SQLite)+ Provider 契约;不含 APS 运行时与 APS 库
APS 位置 由 Provider 实例配置指向:地址、账号、健康状态都在平台侧配置,不在安装包里
未接入时的行为 平台必须能正常启动,并把「未接入 / 不可用」作为明确状态呈现(健康探测见 A5.5)
APS 的运维 安装、升级、备份、回滚归 APS 自己(B7 / B-G)

影响

  • 对代码:平台不假设 APS 在同机;Provider 配置里的 APS 地址就是普通外部地址
  • 对任务:A1.5 一键启动只拉起平台(含本地库),不拉 APS;A10.5 本地守护只管平台服务;A10.8 只验收纯平台包;A5 联调需要 APS 单独部署的环境(依赖 B5)
  • 对文档:术语表已写明「单机版不含 APS」(ADR-0008);本文补齐交付形态这一维
  • 不这么做的后果:把 APS 塞进平台包,两者升级与回滚被绑死,平台安装包多背一个 Python 运行时,故障面也变大

遗留

  • 平台包与 APS 的版本兼容矩阵:A5 联调时按 Provider manifest 的「兼容平台版本」字段落
  • 开发期 APS 用旧网关还是 B5 之后的新接口:A5 开工前定,属 B0 的范围