1. 资产盘点与依赖梳理:列出应用组件(前端、后端、DB、缓存、队列、外部API)、端口、证书、时区与计划任务。评估跨境流量、合规(个人信息、隐私)、是否需 ICP 备案(迁往台灣后大陆访问仍需考虑 CDN/加速)。
2. 选择带 CN2 的台湾VPS:确认是否为电信 CN2 Premium 专线(减少丢包/稳定性),询问带宽、BGP/Anycast 支持、DDoS 防护与流量计费。预留公网 IP、SSH 密钥管理与快照策略。
3. 系统初始化:更新系统(apt/yum update),创建运维账户与 SSH 公钥登录,禁用 root 密码登录,开启防火墙策略(ufw/iptables),安装 fail2ban,设置 NTP 同步并配置时区为 UTC 或业务时区。
4. 部署运行环境:安装相同版本的语言运行时、库、依赖包。若使用容器,先将镜像推送到私有或公有镜像仓库(Docker Registry/Harbor),在台湾主机上拉取验证并本地运行 smoke test。
5. 建议用主从复制实现零或低停机迁移:在目标服务器上部署 MySQL 并开启 binlog,设置为从库,执行全量备份(mysqldump --single-transaction 或 xtrabackup),加载到目标并启动复制。等待差异同步完毕后,短暂停写、提升目标为主库(切换应用 DB 连接),验证事务完整性。
6. 使用 rsync 增量同步:首次用 rsync -avz --delete --progress 源:/data/ user@taiwan:/data/,对大文件使用 --partial --inplace 减少重复传输。对频繁变更目录可定时执行增量 rsync,最后一次切换前再做一次短暂停机的增量同步。
7. 切换前把旧域名记录 TTL 提前 24-48 小时降到 60-300 秒;切换时先采用加权或灰度策略(负载均衡或 DNS 权重),或使用 GSLB/流量管理逐步把流量从旧机房转到台湾 VPS,监控错误率和延迟。
8. SSL/TLS 证书准备:若使用 Let's Encrypt,提前在目标环境完成 HTTP-01 或 DNS-01 验证。建议在迁移前把证书文件或 ACME 凭据备份并在新主机上部署,避免切换时出现 HTTPS 中断。
9. 联网与链路验证:在迁移完成前对台湾 VPS 做 mtr、ping、tcping、curl 多点探测(大陆多线测试点),并执行压力测试(wrk/ab),评估延迟、带宽与丢包。对跨境延迟敏感的接口考虑做本地缓存或 CDN 加速。
10. 数据合规与访问控制:对涉及个人信息的数据,确认跨境传输是否合法,必要时做脱敏或仅保留元数据。设置最小权限 IAM、加密静态与传输数据(disk encryption、TLS),并开启日志审计与入侵检测(IDS/IPS)。
11. 回滚策略:保留旧环境至少 48-72 小时作为回滚点。在切换前做完整快照与备份(数据库、文件、配置)。验证回滚步骤(DNS 回退、重新把流量导回旧机器)的可执行性与耗时并写入 Runbook。
12. 上线后 24/7 观察期:部署监控(Prometheus+Grafana、Zabbix 或云监控)、应用日志集中(ELK/EFK),设定关键指标的告警(错误率、响应时间、CPU、丢包)。提前演练故障转移流程。
13. 结合 CDN 与双活架构:若面向大陆用户,推荐在大陆部署 CDN 或采用大陆节点做静态加速,并考虑混合云双活(大陆+台湾)以降低单点故障与合规风险。周期性做安全与性能复盘。
14. 问:将服务迁到台湾 CN2 VPS 会影响大陆用户访问吗? 答:可能会有延迟与丢包的变化,但 CN2 能改善跨境稳定性。若用户主要在大陆,建议用国内 CDN 或保留大陆边缘节点,或做双活/异地容灾以保证体验。
15. 问:怎样保证数据库在切换时不丢失写入? 答:用主从复制(实时 binlog)先同步,切换窗口设为短暂停写,做 final sync(停止应用写入或设置只读),确认偏差为零后再提升目标为主;若无法停写,考虑应用层幂等或事务重放机制。
16. 问:迁移最常见的风险是什么,优先缓解哪项? 答:最常见是网络质量问题、数据库一致性和证书/域名中断。优先缓解措施:选择可靠 CN2 链路、实现数据库复制并验证、提前准备证书与 DNS TTL 降低,且保留回滚路径和监控告警。