--- title: 架构目标(Architecture Goals)总结 tags: [architecture, goals, SLO, NFR, governance] created: "<% tp.file.creation_date('YYYY-MM-DD') %>" updated: "<% tp.file.last_modified_date('YYYY-MM-DD HH:mm') %>" --- > 架构目标 = 面向业务的**可度量**NFR 套件 + **清晰边界与取舍** + **工程化落地**(观测、演练、回滚)+ **持续复盘**。 ## 1. 目标框架(Framework) - 业务价值:增长/转化/留存/合规/成本 - 质量属性(NFR):可用性、性能、安全、可维护性、可扩展性、可观测性、韧性、成本、合规 - 约束:预算、交付周期、团队能力、地域/数据主权、遗留系统边界 - 产出:SLO/阈值、数据源、验证方法、Error Budget、ADR/Trade-off 记录 ## 2. 维度与指标(Dimensions & KPIs) | 维度 | 典型指标 | |---|---| | 可用性 | 月度 SLO(如 99.95%)、MTTR、MTBF、Error Budget | | 性能 | P95/P99 延迟、QPS/TPS、并发连接、队列时长 | | 可靠性/韧性 | 错误率、降级成功率、熔断/限流命中、故障演练通过率 | | 安全 | 高危漏洞处置时限、证书/密钥轮换周期、加密覆盖率、审计合规 | | 可维护性 | 变更 Lead Time、变更失败率、回滚时长、代码可测试性 | | 可扩展性 | 扩缩容时间、峰值利用率、容量裕度 | | 可观测性 | RED/USE 覆盖率、追踪采样策略、告警→行动闭环率 | | 成本 | Cost/Txn、成本结构占比(计算/存储/网络/日志/监控) | | 合规 | 数据驻留/留存期/可删除、审计通过率 | ## 3. SMART 化表达(Examples) - 可用性:**99.95%/月**;“可用”定义= P95 ≤ 400ms 且错误率 ≤ 0.2% → Error Budget ≈ 22 分钟/月 - 性能:`/checkout` **P95 ≤ 250ms、P99 ≤ 600ms** @ 5k QPS - 安全:高危漏洞 **≤ 24h** 修复;静态数据加密 **100% 覆盖** - 维护:主干集成 Lead Time **≤ 1 天**;单键回滚 **≤ 15 分钟** - 成本:**Cost/1000 req ≤ $0.08**;监控+日志成本 **≤ 18%** ## 4. 制定流程(Playbook) 1) 业务对齐 → 明确北极星指标 2) 关键路径建模 → C4 + 时序 + 依赖图 3) 设定 SLO 与成本上限 → 基于历史与压测基线 4) 明确约束与非目标(不做/后做) 5) 方案权衡 → Trade-off Matrix + ADR 6) 接入度量/告警/演练 + 灰度/回滚策略 7) 月度/季度复盘 → 目标、成本、事故与技术债 ### Trade-off Matrix(简表) | 方案 | 可用性 | 成本 | 复杂度 | 交付周期 | 结论 | |---|---:|---:|---:|---:|---| | 单 Region 多 AZ | 高 | 中 | 中 | 快 | 先上 | | 多 Region 主备 | 更高 | 高 | 高 | 中 | 次阶段 | | 多 Region 多活 | 最高 | 最高 | 最高 | 慢 | 暂缓 | ## 5. 落地抓手(Engineering Levers) - 变更安全网:金丝雀 + 自动回滚 + 契约测试 + DB 迁移对称脚本 - 韧性底座:超时/重试退避/熔断/隔离舱/限流/降级 **统一库 + 配置化** - 容量模型:峰值 N 倍冗余;弹性扩容 **≤ 5 分钟** - 观测默认开启:RED/USE 指标、端到端追踪、Runbook 与告警绑定 - 数据主权:谁是“真源”、一致性策略(强一致/最终一致/CQRS/Outbox) ## 6. 冲突与解法(Trade-offs) - 可用性 ↔ 成本:分层 SLO + 主备先行,逐步演进多活 - 性能 ↔ 一致性:核心写强一致,读侧 CQRS + 最终一致 - 安全 ↔ 体验:风险分层验证(低风险免验证,高风险二验) - 可观测性 ↔ 成本:追踪采样 + 热点全量;日志冷热分层 ## 7. 评审清单(Checklist) - [ ] 与业务北极星对齐,定义“可用/达成”的**判定条件** - [ ] 每个目标 **可度量**(阈值、数据源、验证方法) - [ ] 明确 **非目标/边界** 与阶段性演进计划 - [ ] 关键链路有端到端观测与 **Runbook/告警** - [ ] 具备 **压测与容量评估**、留足冗余 - [ ] 灰度/回滚/契约测试/DB 迁移流程完备 - [ ] 安全与合规评审通过,关键证据归档 - [ ] 成本上限与分摊模型可视化 - [ ] ADR/Trade-off 文档化并归档 ## 8. 模板(Templates) ### 8.1 SLO 模板 ```text 【目标名称】结算服务端到端可用性 SLO:99.95% / 月;滑动窗口:5 分钟 “可用”定义:P95 ≤ 400ms 且 错误率 ≤ 0.2% Error Budget:≈ 22 分钟/月 数据源:Prometheus / OTel(checkout_end_to_end_*) 发布策略:金丝雀 + 自动回滚 韧性参数:依赖超时 800ms;重试指数退避上限 2 次 演练计划:季度混沌、半年度跨 AZ 切流 负责人:结算团队 TL