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

41 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 的范围