1.
迁移前的规划与风险评估
- 确认业务范围:包括Web、API、邮件与数据库等;
- 资源清单:列出物理/虚拟主机、IP、域名、证书和SSL到期日;
- 性能基线:记录当前QPS、平均响应时间(例如:1000 QPS、平均响应200ms);
- 风险点识别:单点故障、带宽瓶颈、数据库写入一致性;
- 制定回滚窗口与SLA:例如计划维护窗口 02:00-04:00,最大容忍停机10分钟;
- 权限与联系人:列出运维、开发与客户支持联络表。
2.
托管机房与服务器配置示例
- 机房选择:台北/台中/高雄,多节点优先避免单点;
- 示例主机配置:VPS-A:4 vCPU / 8GB RAM / 120GB NVMe / 带宽1Gbps;
- 数据库主机:DB-主:8 vCPU / 32GB / RAID1 NVMe;从库同步延迟<1s;
- 防火墙与路由:边界防火墙使用ACL、BGP Anycast(如托管商支持);
- 证书与域名:域名注册商与WHOIS信息核对,准备DNS托管权限;
- 费用估算:每台月租约 NT$2,500-8,000,带宽按流量或峰值计费。
3.
数据备份与同步具体操作
- 全量备份:mysqldump --single-transaction 或 xtrabackup,保留3个备份周期;
- 增量同步:使用rsync -aHAX --delete 对 /var/www/ 进行初次全量同步;
- 实时复制:数据库启用主从或GTID,测试延迟与一致性(目标延迟<2s);
- 大文件处理:对象存储或分块同步,避免一次性传输导致带宽拥塞;
- 验证校验:对比校验和(md5sum)或应用层校验,确保文件一致;
- 时间估算示例表格(迁移窗口预测)如下:
| 步骤 |
预计耗时 |
备注 |
| 全量备份(200GB) |
约 40 分钟(5MB/s) |
受带宽影响 |
| 初次rsync(200GB) |
约 1.5 小时(40MB/s) |
并发连接可加速 |
| 增量同步与验证 |
约 15 分钟 |
切换前最后一次增量 |
4.
DNS切换、域名与CDN配置要点
- 提前降低TTL:迁移前48小时将A记录TTL从3600降至300;
- CDN回源与缓存策略:设置Cache-Control与Grace以减少回源压力;
- 域名证书部署:在新机房预装Let's Encrypt或商业证书并测试;
- 切换步骤:最后一次增量完成后更新A记录并观察DNS传播(预计TTL内生效);
- 验证方法:使用dig +trace、curl --resolve 测试不同节点的访问;
- 实例:使用Cloudflare作为前置CDN,当攻击流量超过200Mbps时启用“I'm Under Attack”模式。
5.
DDoS防御与应急响应
- 流量基线:记录常态峰值(如 250Mbps),用于触发防护阈值;
- 多层防护:边缘CDN过滤大流量,机房防火墙处理应用层攻击;
- 黑洞与过滤:与ISP协商黑洞或流量清洗服务,保证正常流量优先;
- 监控告警:设置Netflow/Prometheus告警,流量突增时自动通知值班;
- 演练与回滚:定期演练切换到备机与清洗管道,验证RTO/RPO;
- 真实案例:某电商在双11遇到UDP放大攻击,启用Cloudflare Spectrum与托管商清洗后,峰值流量从1.2Gbps降至正常300Mbps,业务中断控制在6分钟内。
6.
切换后验收与经验总结
- 性能回归测试:压力测试QPS、95%响应时间应与基线相近;
- 日志与审计:集中日志(ELK/Graylog)检查错误率与异常请求;
- 清理与优化:移除旧IP的DNS绑定,回收不再使用的资源;
- 知识传递:撰写迁移报告,记录问题与解决步骤供团队学习;
- 建议与常见坑:提前沟通业务窗口、注意数据库写入延迟、备份验证必须完成;
- 案例结论:一次完整迁移(包含两台Web、1主1从DB、CDN前置)实测无感切换,最大停机时间<8分钟,整体迁移耗时含准备约 6 小时。