| name | architecture-assessment |
| description | Architecture quality assessment. 当用户需要评估架构质量、检查系统性能、分析安全风险或评估可扩展性时使用此skill。 |
Architecture Assessment
架构评估技能,从多个维度评估系统架构质量。
评估维度 (ATAM + 更多)
┌─────────────────────────────────────────────────────────┐
│ 架构质量评估 │
├──────────────┬──────────────┬──────────────┬─────────────┤
│ 性能 │ 安全性 │ 可用性 │ 可维护性 │
├──────────────┼──────────────┼──────────────┼─────────────┤
│ 性能测试 │ 安全审计 │ 容错设计 │ 代码质量 │
│ 容量规划 │ 威胁建模 │ 监控告警 │ 文档完整 │
│ 瓶颈分析 │ 合规检查 │ 灾难恢复 │ 测试覆盖 │
└──────────────┴──────────────┴──────────────┴─────────────┘
1. 性能评估
性能指标定义
| 指标 | 定义 | 目标值示例 |
|---|
| 响应时间 (RT) | 请求到响应的时间 | P99 < 200ms |
| 吞吐量 (TPS) | 每秒处理事务数 | > 1000 TPS |
| 并发用户 | 同时活跃用户数 | > 5000 |
| 资源利用率 | CPU/内存/磁盘使用 | CPU < 70% |
| 错误率 | 失败请求占比 | < 0.1% |
性能测试类型
□ 负载测试 (Load Testing)
- 验证预期负载下的性能
- 关注: RT, TPS, 资源利用率
□ 压力测试 (Stress Testing)
- 超过预期负载,探索极限
- 找到系统崩溃点
□ 容量测试 (Capacity Testing)
- 确定最大容量
- 规划扩容依据
□ 尖峰测试 (Spike Testing)
- 突发流量冲击
- 验证弹性伸缩
性能评估报告模板
## 性能评估
### 当前性能状态
| 指标 | 当前值 | 目标值 | 状态 |
|------|--------|--------|------|
| P50 响应时间 | XX ms | < 100ms | ✅/❌ |
| P99 响应时间 | XX ms | < 200ms | ✅/❌ |
| TPS | XXX | > 1000 | ✅/❌ |
| 错误率 | X.X% | < 0.1% | ✅/❌ |
### 瓶颈分析
1. [瓶颈点]
2. [瓶颈点]
### 优化建议
| 优化项 | 预期收益 | 实施成本 | 优先级 |
|--------|---------|---------|--------|
| | | | |
2. 安全性评估
安全评估框架
□ 身份认证 (Authentication)
- 密码策略
- 多因素认证
- 社交登录
□ 访问控制 (Authorization)
- 权限模型 (RBAC/ABAC)
- 最小权限原则
- API 鉴权
□ 数据保护 (Data Protection)
- 传输加密 (TLS)
- 存储加密
- 敏感数据脱敏
□ 安全审计 (Audit)
- 操作日志
- 异常检测
- 合规报告
OWASP Top 10 检查
□ A01: Broken Access Control
□ A02: Cryptographic Failures
□ A03: Injection
□ A04: Insecure Design
□ A05: Security Misconfiguration
□ A06: Vulnerable Components
□ A07: Auth Failures
□ A08: Data Integrity Failures
□ A09: Logging Failures
□ A10: SSRF
威胁建模 (STRIDE)
| 威胁类型 | 描述 | 缓解措施 |
|---|
| Spoofing | 冒充身份 | 强认证 |
| Tampering | 数据篡改 | 完整性校验 |
| Repudiation | 否认操作 | 数字签名/审计日志 |
| Information Disclosure | 信息泄露 | 加密/访问控制 |
| DoS | 服务拒绝 | 限流/冗余 |
| Elevation of Privilege | 权限提升 | 最小权限原则 |
3. 可用性评估
可用性指标
| 可用性级别 | 年停机时间 | 适用场景 |
|---|
| 99.9% | 8.7 小时 | 普通业务 |
| 99.99% | 52 分钟 | 重要业务 |
| 99.999% | 5 分钟 | 关键系统 |
容错设计检查
□ 冗余设计
- 服务多实例部署
- 数据多副本存储
- 跨可用区/区域部署
□ 故障隔离
- 舱壁模式
- 断路器模式
- 限流熔断
□ 故障恢复
- 自动故障转移
- 数据一致性修复
- 服务快速重启
监控告警检查
□ 基础设施监控
- CPU/内存/磁盘
- 网络流量
□ 应用监控
- 请求量/响应时间
- 错误率
- 业务指标
□ 日志监控
- 集中式日志
- 日志分析
- 异常聚合
□ 告警配置
- 告警阈值
- 告警升级
- 告警收敛
4. 可维护性评估
代码质量指标
| 指标 | 优秀 | 良好 | 差 |
|---|
| 测试覆盖率 | > 80% | 60-80% | < 60% |
| 圈复杂度 | < 10 | 10-20 | > 20 |
| 重复代码 | < 3% | 3-10% | > 10% |
| 文档覆盖率 | > 80% | 50-80% | < 50% |
架构可维护性检查
□ 模块化程度
- 模块间耦合度
- 模块内聚力
- 接口稳定性
□ 技术债务
- 已知问题数量
- 遗留代码比例
- 重构需求
□ DevOps 成熟度
- 部署频率
- 变更前置时间
- 变更失败率
5. 可扩展性评估
水平扩展 vs 垂直扩展
| 维度 | 垂直扩展 | 水平扩展 |
|---|
| 扩展方式 | 增加单机资源 | 增加机器数量 |
| 限制 | 硬件上限 | 架构设计 |
| 成本 | 线性增长 | 线性增长 |
| 复杂度 | 低 | 高 |
扩展性设计模式
□ 无状态设计
- Session 外置
- 本地无状态存储
□ 分片策略
- 数据分片
- 服务分片
□ 异步处理
- 消息队列
- 事件驱动
□ 读写分离
- 主从复制
- CQRS
综合评估报告模板
# 架构质量评估报告
## 评估概要
- **系统**: [系统名称]
- **评估日期**: [日期]
- **评估人**: [姓名]
- **总体评级**: [A/B/C/D]
## 维度评分
| 维度 | 评分 | 主要发现 |
|------|------|---------|
| 性能 | X/10 | [简述] |
| 安全性 | X/10 | [简述] |
| 可用性 | X/10 | [简述] |
| 可维护性 | X/10 | [简述] |
| 可扩展性 | X/10 | [简述] |
## 详细发现
### 严重风险 (必须解决)
| 问题 | 影响 | 建议 |
|------|------|------|
| | | |
### 中等风险 (尽快解决)
| 问题 | 影响 | 建议 |
|------|------|------|
| | | |
### 低风险 (持续改进)
| 问题 | 影响 | 建议 |
|------|------|------|
| | | |
## 改进路线图
### Phase 1 (0-3个月)
- [ ] 改进项1
- [ ] 改进项2
### Phase 2 (3-6个月)
- [ ] 改进项1
- [ ] 改进项2
### Phase 3 (6-12个月)
- [ ] 改进项1
- [ ] 改进项2
## 结论
[总结和建议]
快速评估 Checklist
性能
□ 有性能测试报告吗?
□ 响应时间是否满足 SLA?
□ 存在已知的性能瓶颈吗?
安全
□ 做过安全审计吗?
□ 敏感数据是否加密?
□ 有入侵检测机制吗?
可用性
□ SLA 是什么?
□ 当前可用性是多少?
□ 有灾难恢复计划吗?
可维护性
□ 代码质量如何?
□ 有自动化测试吗?
□ 文档是否最新?
可扩展性
□ 系统能承受 10 倍增长吗?
□ 扩展瓶颈在哪?
□ 扩容需要多长时间?