这是《计算机网络 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 网络架构评审是在方案进入生产前,系统性检查流量路径、容量、故障域、安全边界、可观测性和演进成本。评审的目标不是否定新方案,而是让风险提前暴露,并让每个取舍有记录。
33.1 评审输入
方案必须提供:
- 业务场景和流量模型;
- 峰值 QPS、带宽和连接数;
- 用户地域分布;
- SLO 和错误预算;
- 网络拓扑图;
- IP 和端口规划;
- DNS 和证书方案;
- 安全边界;
- 监控指标;
- 失败场景;
- 回滚方案;
- 成本估算。
没有流量模型的架构评审容易变成画框图游戏。
33.2 流量路径评审
南北向路径:
User
-> DNS / HTTPDNS
-> CDN / WAF
-> Cloud LB
-> Ingress / Gateway
-> Service
-> Dependency
东西向路径:
App -> Order -> MySQL
-> Redis
-> Kafka
-> External API
检查:
- 每一跳协议;
- 超时和重试;
- 连接复用;
- 加密方式;
- 真实 IP 传递;
- 请求 ID 传递;
- 熔断降级;
- 单点;
- 容量;
- 故障传播。
33.3 故障域设计
| 层级 | 故障域 |
|---|---|
| 机架 | 电力、交换机 |
| 可用区 | 网络分区、机房故障 |
| 地域 | 大面积灾难 |
| 云账号 | 权限、配额、管控 |
| DNS | 解析服务 |
| 证书 | CA、轮换流程 |
| 专线 | 单链路 |
| 依赖 | 第三方 API |
要求:
- 至少两个入口;
- 后端多可用区;
- 数据层主备或多数派;
- 客户端重试和本地降级;
- 跨地域方案明确 RPO / RTO;
- 切换流程可演练;
- 避免所有副本同时进入维护。
33.4 容量评审
估算:
入口带宽 = 峰值 QPS × 平均请求响应大小 × 重试系数
并发连接 = 峰值 QPS × 平均处理时间
TLS 握手 = 新建连接速率
NAT 连接 = 外呼并发和新建速率
DNS QPS = 客户端数量和缓存策略
预留:
- 峰值系数;
- 故障接管;
- 重试放大;
- 发布窗口;
- 攻击余量;
- 一年增长;
- 监控和日志流量。
容量不满足时的方案:
- CDN 和缓存;
- 压缩和分页;
- 连接复用;
- 水平扩容;
- 分区域接入;
- 限流降级;
- 升级带宽。
33.5 安全评审
检查:
- 数据库和中间件是否暴露公网;
- 安全组是否最小授权;
- 管理入口是否经过堡垒机;
- 是否强制 HTTPS;
- 证书如何轮换;
- 内部高敏链路是否 TLS / mTLS;
- 服务身份和授权;
- WAF 和 Anti-DDoS;
- 日志是否泄露敏感数据;
- 网络变更是否有审计。
网络可达不等于应该可达。每个端口都应有 owner 和业务理由。
33.6 可观测性评审
每个组件必须能回答:
我是谁?
流量从哪里来?
去向哪里?
成功率多少?
延迟多少?
当前容量水位?
失败原因是什么?
如何回滚?
数据源:
- DNS 解析日志;
- CDN / WAF 日志;
- LB 访问日志;
- Gateway 访问日志;
- 应用 trace;
- VPC Flow Log;
- conntrack 指标;
- TCP 状态和重传;
- 证书监控;
- 带宽和包量。
告警要覆盖:
- 可用性;
- P99 延迟;
- 错误率;
- DNS 失败率;
- 证书有效期;
- 后端健康;
- 带宽水位;
- 连接耗尽;
- 安全事件;
- 切换事件。
33.7 变更与回滚
网络变更要求:
- 变更单;
- 影响面;
- 前置检查;
- 分步执行;
- 验证命令;
- 停止条件;
- 回滚脚本;
- 负责人;
- 通知对象;
- 变更后观察期。
高风险变更:
- DNS 切换;
- 证书更换;
- 防火墙规则;
- 路由表;
- LB 配置;
- CNI 升级;
- 专线切换;
- 安全组批量调整。
33.8 评审清单
[ ] 有完整流量路径图
[ ] 南北向和东西向协议明确
[ ] 峰值 QPS、带宽、连接数已估算
[ ] DNS TTL 和切换方案明确
[ ] CDN 缓存和刷新策略明确
[ ] LB 健康检查和 draining 明确
[ ] 超时、重试、幂等、熔断闭环
[ ] 无单点
[ ] 多可用区部署
[ ] 安全组最小授权
[ ] TLS / mTLS 策略明确
[ ] 证书自动轮换
[ ] 客户端真实 IP 可信
[ ] 全链路 trace ID 贯通
[ ] VPC Flow Log / 访问日志留存
[ ] 带宽和连接告警就绪
[ ] 故障切换演练计划
[ ] 回滚方案和负责人明确
33.9 评审结论
结论应包含:
| 结论 | 含义 |
|---|---|
| 通过 | 满足要求,可进入实施 |
| 有条件通过 | 补齐指定项后可实施 |
| 不通过 | 存在重大容量、安全或可用性风险 |
| 需要降级方案 | 先小范围灰度 |
每项风险应记录:
风险描述:
影响:
概率:
缓解措施:
验证方式:
负责人:
截止时间:
本章小结
架构评审应从流量模型和完整路径出发,检查容量、故障域、安全、可观测性、变更和回滚。高质量评审输出的是风险清单、取舍记录和可执行改进项,而不是简单批准或否决。网络方案的最终标准是:故障时可控,增长时可扩,攻击时有边界,排障时有证据。
思考题
- 架构评审为什么必须先看流量模型?
- 如何识别网络路径上的单点?
- 容量估算为什么要包含重试放大和故障接管?
- 网络变更的停止条件应如何设计?
- 为一个新公网 API 服务写完整网络架构评审单。