2、决策记录(ADR)基础:什么是架构决策记录,其在数据治理中的角色
2.1 架构决策记录(ADR)的定义与核心要素
架构决策记录(Architecture Decision Record, ADR)是一种轻量级的文档化实践,用于捕获在软件或数据架构演进过程中做出的重要决策及其背后的上下文与后果。在项目组合管控的多项目视图中,ADR 充当了“决策的原子单元”,确保每个架构选择都有据可查、可追溯、可复用。
一个标准的 ADR 通常包含以下核心字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| 标题 | 决策的简短描述,通常包含决策编号 | ADR-004:采用事件溯源作为项目A的数据同步方案 |
| 状态 | 决策的生命周期阶段 | 已提议 / 已接受 / 已废弃 / 已取代 |
| 上下文 | 触发该决策的问题、约束或业务驱动因素 | 多项目间数据延迟超过30分钟,需实时同步 |
| 决策 | 明确的选择,以及选择该方案的理由 | 选择事件溯源,因其支持按序重放与审计 |
| 后果 | 决策带来的正面/负面影响、风险与迁移成本 | 增加消息中间件运维成本,但降低数据不一致风险 |
| 关联 | 与其他 ADR、项目或数据资产的链接 | 关联 ADR-002(数据标准定义) |
实践提示:在项目组合管控中,建议为每个 ADR 分配全局唯一编号(如 ADR-{项目代号}-{序号}),以便在多项目视图中快速定位决策来源。
2.2 ADR 在数据治理中的角色定位
数据治理的核心目标是确保数据的可用性、完整性、安全性与合规性。ADR 在数据治理体系中扮演了以下四个关键角色:
- 决策溯源器:记录“为什么选择这个数据模型/同步策略/存储方案”,避免人员流动导致的知识断层。
- 合规证据链:在审计或合规检查时,ADR 提供架构层面的决策依据,证明数据管控措施有据可循。
- 变更影响分析器:当数据标准或法规更新时,通过关联的 ADR 快速评估受影响的项目与数据流。
- 多项目协调器:在项目组合视图中,ADR 暴露不同项目间的数据架构冲突,促进跨项目协商与统一。
关键洞察:在数据传输优化场景中,ADR 不仅记录“如何传输”,更记录“为何选择该传输协议/频率/压缩算法”,这些决策上下文直接影响多项目视图中的数据质量与传输成本。
2.3 ADR 生命周期与数据治理流程的融合
ADR 的生命周期通常包含五个阶段,每个阶段都与数据治理的具体活动紧密耦合:
| ADR 阶段 | 数据治理活动 | 输出物 |
|---|---|---|
| 1. 识别 | 数据质量监控发现异常,或新项目提出数据接入需求 | 问题描述 + 候选方案列表 |
| 2. 评估 | 数据治理委员会评审候选方案对数据标准/安全策略的影响 | 影响分析矩阵 |
| 3. 决策 | 确定最终方案,更新数据字典与数据流图 | 已接受的 ADR |
| 4. 实施 | 开发团队按 ADR 实现数据传输逻辑,并配置监控 | 代码/配置 + 测试报告 |
| 5. 回顾 | 定期审计 ADR 的实际效果,评估是否需更新或废弃 | ADR 状态变更记录 |
2.4 ADR 在数据传输优化中的典型应用场景
在项目组合管控的多项目视图中,数据传输优化涉及多个维度的决策。以下表格展示了 ADR 如何覆盖这些决策点:
| 优化维度 | 典型决策问题 | ADR 记录内容 |
|---|---|---|
| 传输协议 | 选择 REST、gRPC 还是消息队列? | 延迟要求、吞吐量、现有技术栈兼容性 |
| 数据格式 | 使用 JSON、Avro 还是 Parquet? | 序列化效率、Schema 演进支持、压缩比 |
| 同步策略 | 全量同步、增量同步还是事件驱动? | 数据一致性级别、网络带宽、源系统负载 |
| 安全管控 | 传输加密、字段脱敏还是令牌化? | 合规要求、性能开销、密钥管理方案 |
| 监控告警 | 传输延迟阈值、失败重试策略如何设定? | SLA 指标、告警通道、自动恢复机制 |
常见误区:不要将 ADR 写成“技术选型报告”。ADR 的核心价值在于记录决策上下文与权衡过程,而非单纯罗列技术特性。例如,选择 Avro 不是因为“它比 JSON 快”,而是因为“项目 A 需要 Schema 兼容性,且团队已有 Kafka 基础设施”。
2.5 ADR 与数据治理元数据的关联模型
在数据治理体系中,ADR 不是孤立存在的。它与数据字典、数据血缘、数据质量规则等元数据共同构成治理知识网络。下图展示了 ADR 在元数据模型中的位置:
通过这种关联模型,项目组合管理者可以在多项目视图中快速回答以下问题:
- “项目 B 的数据传输延迟问题,是否与 ADR-003 中关于压缩算法的决策有关?”
- “新出台的数据安全法规,会影响哪些 ADR 中的传输加密决策?”
- “当数据字典中的某个字段类型变更时,哪些 ADR 需要重新评估?”