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