Computer NetworkNotes

第 33 章:架构评审

zjc 于 2026-02-02 发布

这是《计算机网络 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 网络架构评审是在方案进入生产前,系统性检查流量路径、容量、故障域、安全边界、可观测性和演进成本。评审的目标不是否定新方案,而是让风险提前暴露,并让每个取舍有记录。

33.1 评审输入

方案必须提供:

  1. 业务场景和流量模型;
  2. 峰值 QPS、带宽和连接数;
  3. 用户地域分布;
  4. SLO 和错误预算;
  5. 网络拓扑图;
  6. IP 和端口规划;
  7. DNS 和证书方案;
  8. 安全边界;
  9. 监控指标;
  10. 失败场景;
  11. 回滚方案;
  12. 成本估算。

没有流量模型的架构评审容易变成画框图游戏。

33.2 流量路径评审

南北向路径:

User
  -> DNS / HTTPDNS
     -> CDN / WAF
        -> Cloud LB
           -> Ingress / Gateway
              -> Service
                 -> Dependency

东西向路径:

App -> Order -> MySQL
             -> Redis
             -> Kafka
             -> External API

检查:

  1. 每一跳协议;
  2. 超时和重试;
  3. 连接复用;
  4. 加密方式;
  5. 真实 IP 传递;
  6. 请求 ID 传递;
  7. 熔断降级;
  8. 单点;
  9. 容量;
  10. 故障传播。

33.3 故障域设计

层级 故障域
机架 电力、交换机
可用区 网络分区、机房故障
地域 大面积灾难
云账号 权限、配额、管控
DNS 解析服务
证书 CA、轮换流程
专线 单链路
依赖 第三方 API

要求:

  1. 至少两个入口;
  2. 后端多可用区;
  3. 数据层主备或多数派;
  4. 客户端重试和本地降级;
  5. 跨地域方案明确 RPO / RTO;
  6. 切换流程可演练;
  7. 避免所有副本同时进入维护。

33.4 容量评审

估算:

入口带宽 = 峰值 QPS × 平均请求响应大小 × 重试系数
并发连接 = 峰值 QPS × 平均处理时间
TLS 握手 = 新建连接速率
NAT 连接 = 外呼并发和新建速率
DNS QPS = 客户端数量和缓存策略

预留:

  1. 峰值系数;
  2. 故障接管;
  3. 重试放大;
  4. 发布窗口;
  5. 攻击余量;
  6. 一年增长;
  7. 监控和日志流量。

容量不满足时的方案:

  1. CDN 和缓存;
  2. 压缩和分页;
  3. 连接复用;
  4. 水平扩容;
  5. 分区域接入;
  6. 限流降级;
  7. 升级带宽。

33.5 安全评审

检查:

  1. 数据库和中间件是否暴露公网;
  2. 安全组是否最小授权;
  3. 管理入口是否经过堡垒机;
  4. 是否强制 HTTPS;
  5. 证书如何轮换;
  6. 内部高敏链路是否 TLS / mTLS;
  7. 服务身份和授权;
  8. WAF 和 Anti-DDoS;
  9. 日志是否泄露敏感数据;
  10. 网络变更是否有审计。

网络可达不等于应该可达。每个端口都应有 owner 和业务理由。

33.6 可观测性评审

每个组件必须能回答:

我是谁?
流量从哪里来?
去向哪里?
成功率多少?
延迟多少?
当前容量水位?
失败原因是什么?
如何回滚?

数据源:

  1. DNS 解析日志;
  2. CDN / WAF 日志;
  3. LB 访问日志;
  4. Gateway 访问日志;
  5. 应用 trace;
  6. VPC Flow Log;
  7. conntrack 指标;
  8. TCP 状态和重传;
  9. 证书监控;
  10. 带宽和包量。

告警要覆盖:

  1. 可用性;
  2. P99 延迟;
  3. 错误率;
  4. DNS 失败率;
  5. 证书有效期;
  6. 后端健康;
  7. 带宽水位;
  8. 连接耗尽;
  9. 安全事件;
  10. 切换事件。

33.7 变更与回滚

网络变更要求:

  1. 变更单;
  2. 影响面;
  3. 前置检查;
  4. 分步执行;
  5. 验证命令;
  6. 停止条件;
  7. 回滚脚本;
  8. 负责人;
  9. 通知对象;
  10. 变更后观察期。

高风险变更:

  1. DNS 切换;
  2. 证书更换;
  3. 防火墙规则;
  4. 路由表;
  5. LB 配置;
  6. CNI 升级;
  7. 专线切换;
  8. 安全组批量调整。

33.8 评审清单

[ ] 有完整流量路径图
[ ] 南北向和东西向协议明确
[ ] 峰值 QPS、带宽、连接数已估算
[ ] DNS TTL 和切换方案明确
[ ] CDN 缓存和刷新策略明确
[ ] LB 健康检查和 draining 明确
[ ] 超时、重试、幂等、熔断闭环
[ ] 无单点
[ ] 多可用区部署
[ ] 安全组最小授权
[ ] TLS / mTLS 策略明确
[ ] 证书自动轮换
[ ] 客户端真实 IP 可信
[ ] 全链路 trace ID 贯通
[ ] VPC Flow Log / 访问日志留存
[ ] 带宽和连接告警就绪
[ ] 故障切换演练计划
[ ] 回滚方案和负责人明确

33.9 评审结论

结论应包含:

结论 含义
通过 满足要求,可进入实施
有条件通过 补齐指定项后可实施
不通过 存在重大容量、安全或可用性风险
需要降级方案 先小范围灰度

每项风险应记录:

风险描述:
影响:
概率:
缓解措施:
验证方式:
负责人:
截止时间:

本章小结

架构评审应从流量模型和完整路径出发,检查容量、故障域、安全、可观测性、变更和回滚。高质量评审输出的是风险清单、取舍记录和可执行改进项,而不是简单批准或否决。网络方案的最终标准是:故障时可控,增长时可扩,攻击时有边界,排障时有证据。

思考题

  1. 架构评审为什么必须先看流量模型?
  2. 如何识别网络路径上的单点?
  3. 容量估算为什么要包含重试放大和故障接管?
  4. 网络变更的停止条件应如何设计?
  5. 为一个新公网 API 服务写完整网络架构评审单。