架构评估
00:00
ATAM评估方法、CBAM成本收益分析与架构评审实践。
1. 架构评估概述
1.1 为什么需要评估
| 原因 | 说明 |
|---|---|
| 早期发现缺陷 | 架构缺陷修复成本极高 |
| 质量属性验证 | 确认架构满足质量需求 |
| 决策支持 | 为架构选择提供依据 |
| 风险识别 | 提前发现技术风险 |
| 利益相关者对齐 | 统一各方期望 |
1.2 评估时机
| 时机 | 说明 |
|---|---|
| 架构设计完成后 | 验证设计决策 |
| 重大变更前 | 评估变更影响 |
| 迭代结束时 | 验证架构演进 |
| 系统出现问题时 | 诊断根因 |
2. ATAM方法
2.1 ATAM概述
ATAM(Architecture Tradeoff Analysis Method)通过质量属性场景评估架构的权衡点。
2.2 ATAM步骤
第1步: 介绍ATAM方法
第2步: 介绍业务驱动
第3步: 介绍架构
第4步: 识别架构方法
第5步: 生成质量属性效用树
第6步: 分析架构方法
第7步: 头脑风暴和优先级排序场景
第8步: 分析架构方法
第9步: 报告结果
2.3 效用树
效用
├── 性能
│ ├── P1: 99%请求响应<200ms (高)
│ └── P2: 吞吐量>10000 QPS (中)
├── 可用性
│ ├── A1: 年停机<52分钟 (高)
│ └── A2: 故障恢复<5分钟 (高)
├── 安全性
│ └── S1: 防止SQL注入 (高)
├── 可修改性
│ ├── M1: 新增支付方式<2周 (中)
│ └── M2: 数据库迁移<1月 (低)
└── 可测试性
└── T1: 自动化测试覆盖>80% (中)
2.4 ATAM输出
| 输出 | 说明 |
|---|---|
| 敏感点 | 影响质量属性的架构决策 |
| 权衡点 | 影响多个质量属性的决策 |
| 风险 | 可能导致不良结果的决策 |
| 非风险 | 已验证的架构决策 |
示例:
| 类型 | 描述 |
|---|---|
| 敏感点 | 缓存策略对响应时间的影响 |
| 权衡点 | 数据冗余提高可用性但降低一致性 |
| 风险 | 单点数据库可能成为瓶颈 |
| 非风险 | 已验证的负载均衡策略 |
3. CBAM方法
3.1 CBAM概述
CBAM(Cost Benefit Analysis Method)在ATAM基础上加入经济分析,帮助选择最具成本效益的架构策略。
3.2 CBAM步骤
1. 从ATAM效用树中选择关键场景
2. 为每个场景确定架构策略
3. 评估每个策略的收益和成本
4. 计算ROI
5. 选择最优策略
3.3 ROI计算
| 策略 | 收益 | 成本 | ROI |
|---|---|---|---|
| 读写分离 | 8 | 3 | 167% |
| 缓存层 | 7 | 2 | 250% |
| 微服务化 | 9 | 8 | 12.5% |
| CDN加速 | 6 | 1 | 500% |
4. 架构评审实践
4.1 评审清单
| 维度 | 检查项 |
|---|---|
| 功能性 | 是否满足核心功能需求 |
| 性能 | 是否满足响应时间和吞吐量要求 |
| 可用性 | 是否满足可用性SLA |
| 安全性 | 是否满足安全合规要求 |
| 可扩展性 | 是否支持未来业务增长 |
| 可维护性 | 是否易于理解和修改 |
| 可测试性 | 是否便于测试 |
| 可部署性 | 是否支持持续交付 |
4.2 评审流程
1. 准备: 收集架构文档和评审材料
2. 预审: 评审者独立阅读材料
3. 评审会议: 集体讨论和评审
4. 输出: 评审报告和改进建议
5. 跟踪: 确保改进措施落实