41 lines
2.5 KiB
Markdown
41 lines
2.5 KiB
Markdown
# 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 的范围 |