1.
项目准备与目标评估
- 确定业务目标:SLA 99.95%、RTO ≤ 1 分钟、RPS 峰值预估 5,000 qps。
- 流量模型:平均 300 qps、峰值 5,000 qps、并发会话 25,000。
- 合规与地域:越南境内部署以降低延迟,考虑数据驻留法规(如本地用户隐私要求)。
- 预算约束:初期月成本目标 2,000-5,000 美元,支持弹性扩缩。
- 团队与运维:DevOps 2 人负责日常发布,SRE 1 人负责 7x24 告警处理。
- 成功指标:95 百分位响应时间 < 300 ms、故障自动切换时间 < 10 s。
2.
高可用架构总体设计
- 采用三层架构:边缘 CDN + 负载均衡层 + 业务层(Web/APP)+ 后端数据库层。
- 多可用区部署:至少在胡志明市(HCMC)与河内(Hanoi)部署两套副本,实现跨区热备。
- 无单点:采用双负载均衡(HAProxy/云LB)、Keepalived VRRP 虚拟 IP。
- 数据层 HA:主从复制或 Galera/主主复制+自动故障转移(如 Patroni/Orchestrator)。
- 缓存与队列:Redis Sentinel/Cluster 作缓存,消息队列采用 Kafka 或 RabbitMQ 多副本。
- 监控与告警:Prometheus + Grafana + Alertmanager,关键指标:CPU、内存、延迟、错误率。
3.
选择越南云服务商与实例规格
- 可选厂商:Viettel IDC、FPT Telecom、VNPT 云、或在越南设点的国际厂商。
- 实例类型示例:Web 节点:4 vCPU / 8 GB / 80 GB SSD;DB 主节点:8 vCPU / 32 GB / 500 GB NVMe。
- 负载均衡器:2 x 2 vCPU / 4 GB(HA 模式),或使用厂商云 LB。
- 缓存节点:Redis 2 vCPU / 4 GB,每个主从复制;消息队列 4 vCPU / 16 GB。
- 存储策略:热数据放本地 NVMe,备份与归档放对象存储(S3 API 兼容)。
- 可扩展性:使用 auto-scaling 策略,CPU > 60% 或 qps > 1,000 时触发扩容。
| 角色 |
配置 |
实例数(初期) |
| Web / App |
4 vCPU / 8 GB / 80 GB SSD |
4 |
| 负载均衡 |
2 vCPU / 4 GB(HA) |
2 |
| 数据库主/从 |
8 vCPU / 32 GB / 500 GB NVMe |
1 主 + 2 从 |
| Redis |
2 vCPU / 4 GB |
3(主从+哨兵) |
4.
域名与网络配置细节
- DNS:使用 Anycast DNS,TTL 设置为 60s 左右以便快速切换。
- 域名解析:主记录指向 CDN(CNAME),回源记录为云 LB 的虚拟 IP。
- BGP 与线路:优先使用本地运营商回程,跨区流量走云内部骨干。
- 健康检查:LB 健康检查间隔 5-10s,失败阈值 3 次;HTTP 200 检查 /health。
- TCP/UDP 超时:保留连接超时设 300s,短连接服务设 60s,避免长连接耗尽端口。
- SSL/TLS:边缘使用 TLS 1.2/1.3,证书采用 Let's Encrypt 自动更新或云证书管理。
5.
高可用组件部署与配置范例
- Keepalived:VRRP advert_int 1,priority 主 100,备 90,notify 脚本用于切换流量。
- HAProxy:health check interval 2000ms,rise 2,fall 3,timeout connect 5s。
- NGINX upstream:least_conn 或 ip_hash 视 session 策略,keepalive 64。
- DB 自动切换:使用 Patroni + Etcd,心跳 10s,故障转移时间目标 < 15s。
- Redis Sentinel:quorum=2,down-after-milliseconds=30000,failover-timeout=180000。
- 演练计划:每月一次故障演练,包含主库切换、AZ 故障、负载高并发压测。
6.
安全、CDN 与 DDoS 防护策略
- CDN:采用 Anycast CDN 缓存静态资源,降低源站带宽与延迟。
- WAF:在 CDN 层或云 LB 前启用 WAF,拦截 SQLi、XSS、扫描与爬虫。
- DDoS 防护:门槛阈值示例:突发流量 > 500 Mbps 时触发清洗,攻击流量曾达 1.2 Gbps,清洗后回落到 < 80 Mbps。
- 速率限制:对登录、支付接口实行 10 qps/IP 限流并启用 CAPTCHA。
- 日志与追踪:ELK/EFK 集中日志,开启请求追踪(Jaeger)用于故障定位。
- 权限与加固:实例仅开放必要端口(80/443/22 管控),SSH 使用密钥并限制来源 IP。
7.
真实案例:某越南电商高可用实战
- 背景:某电商在越南本地上线促销,日常流量 300 qps,促销峰值达 5,000 qps。
- 架构:采用 Viettel 云,跨 HCMC 与 Hanoi 双可用区,Web 4 节点、DB 主+2 从、CDN+WAF。
- 攻击与防护:促销期间遭遇 1.2 Gbps DDoS,CDN+云清洗在 30s 内自动接手,源站带宽占用降至 6%。
- 可靠性指标:促销期间 99.97% 可用,主库故障切换耗时 8s,页面 95p 响应 240 ms。
- 成本与效益:通过边缘缓存与自动缩放,单次促销峰值月度折算成本降低约 35%。
- 经验教训:预先演练流量模型与清洗策略,提前申请云厂商的抗 DDoS 资源配额。
8.
上线检查清单与运维建议
- 上线前检查:DNS TTL、证书有效期、LB 健康检查路径、备份策略生效。
- 灾备与恢复:定期快照(建议每天),异地冷备或热备,恢复演练每季度一次。
- 监控阈值:关键告警示例:CPU > 85% 持续 3 分钟、响应错误率 > 1% 即触发。
- 成本控制:监控带宽与存储增长,使用对象存储归档冷数据,按需扩容实例。
- 文档与权限:保持详细 runbook,运维角色分离,关键操作双人审批。
- 下一步:实现自动化部署(Terraform + Ansible/Helm),将可重复步骤纳入 CI/CD。
来源:从零开始在越南云服务器搭建高可用架构的实施步骤