Files
my-vault/02_Areas/Personal Development/System Architecture/Architecture-Goals-Architecture-Goals.md
T

89 lines
4.5 KiB
Markdown
Raw 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.
---
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
【目标名称】结算服务端到端可用性
SLO99.95% / 月;滑动窗口:5 分钟
“可用”定义:P95 ≤ 400ms 且 错误率 ≤ 0.2%
Error Budget:≈ 22 分钟/月
数据源:Prometheus / OTelcheckout_end_to_end_*
发布策略:金丝雀 + 自动回滚
韧性参数:依赖超时 800ms;重试指数退避上限 2 次
演练计划:季度混沌、半年度跨 AZ 切流
负责人:结算团队 TL