把业务从本地机房或其他云平台搬到阿里云,看起来是个技术动作,真做起来会碰到业务连续性、成本和团队分工的问题。很多团队出问题,症结往往出在前期:没盘清楚家底,切换时间挑得不好,回滚路径也没想过。下面按项目实际推进的顺序,讲讲阿里云迁移各阶段要注意什么,中间穿插一个电商团队的例子。

迁移前先盘清家底
第一步先把现状列出来,别急着买资源。可以从三件事入手。
- 资产清单,逐项登记服务器、数据库、中间件、存储、域名、证书和第三方服务,每项写上负责人。证书和域名最容易被忽略,到期日最好一并记下。
- 依赖关系,弄清哪些服务互相调用。调不通就直接挂的是强依赖,降级一下能扛过去的是弱依赖。必须同步迁移的服务,这一步就要定下来。
- 性能基线,至少收集两周的 CPU、内存、磁盘 IO、带宽和高峰 QPS。上云之后拿它来对比,没有基线,很难说清新环境是快了还是慢了。
实际排查中,隐性依赖最容易漏。比如代码里写死的 IP 地址,依赖本地 NFS 挂载的定时任务,或者只在内网能访问的老系统。这些问题如果拖到切换当天才暴露,修起来通常很被动。建议在评估阶段就把全部定时任务和内网调用单独拉一张表。
选迁移策略,看停机容忍度和改造成本
常见做法大致有三种。选哪种,主要看两点,一是业务能停多久,二是团队有没有余力改代码。
- 整体迁移(Lift and Shift),基本不改代码,把虚拟机或服务器镜像直接搬上云。周期短,适合时间卡得紧的场景,但弹性和托管服务带来的收益拿不全。
- 平台化迁移(Replatform),应用架构不变,把自建 MySQL 换成阿里云 RDS,把自建缓存换成 Redis 版。改动集中在中间件层,运维负担通常会明显下降。
- 重构迁移(Refactor),把单体应用拆成微服务,用容器服务 ACK、函数计算等原生能力重新搭建。改造量最大,周期也最长,但长期收益最高,适合已有明确架构演进计划的团队。
多数团队的实际做法是混合。核心系统先整体迁移,尽快离开旧机房;之后按优先级,一块一块做平台化。这样风险可控,也不会一次性把人压垮。
电商团队的四段迁移
某中型电商的业务原本部署在自建机房,有订单、商品、用户三个核心服务,数据库是一套 MySQL 主从,缓存是两台 Redis。大促流量波动越来越大,而机房扩容要等六周,团队于是决定迁到阿里云。
项目分四个阶段推进,每一段都有各自的验收标准。
- 网络打通,用专线连接本地机房和阿里云 VPC,先统一 IP 规划,避免两边网段冲突。这一步用了约两周,但后面每一步都依赖它。
- 无状态服务先上。商品和用户服务没有本地状态,打包成容器镜像部署到容器服务 ACK,通过 SLB 逐级切流,依次放到 5%、20%、50%。每一级都盯着错误率和响应时间,稳定了再往上加。
- 数据库切换,MySQL 用数据传输服务 DTS 做增量同步,业务低峰期完成数据校验后,安排 30 分钟停写窗口切换。切换前演练了三次,每一步的耗时都记下来,正式切换时才有底。
- 缓存和周边系统,Redis 迁到云数据库 Redis 版,日志采集和监控告警对接阿里云 SLS、云监控,旧机房对应的服务随后下线。
整个项目大约三个月。上线之后,大促前的扩容从原来的数周缩短到几分钟,运维人力也减少了约三分之一。复盘时团队有两点体会。一是灰度比例要慢慢推,前期顺利也别跳步;二是数据库的回滚方案必须提前验证,出了问题再摸索,很难在短时间内恢复。
切换与回滚要有退路
切换当天最怕没有退路。下面几件事最好在正式切换前做完。
- 切换清单,每一步写明执行人、预计耗时、检查项,以及什么情况算失败。清单上没写的操作,当天最好不做。
- 回滚触发条件,提前定好阈值,比如错误率超过多少、核心接口超时多久就回滚。回滚路径还要确认数据是否一致,尤其是切换窗口里产生的新写入。
- 监控覆盖,应用、数据库、网络三层的监控和告警要在切换前全部生效,否则切换后等于蒙眼开车。
- 决策与沟通,约定固定的同步节奏,并写清楚谁有最终拍板权。切换现场最耗时间的,往往是几个人对同一件事各说各话。
上线之后的优化
迁完不等于结束。上线头两个月是调整的好时机,几件事可以集中处理。按真实负载调整实例规格,长期超配只是白花钱;按量付费和包年包月搭配使用,把稳定负载的成本压下来;定期检查安全组规则和 RAM 权限,回收不再需要的授权;按项目或部门拆分账单,建一块成本看板,谁用了多少资源一目了然。
几个常踩的坑
- 迁移前核对数据库版本和字符集。版本或字符集不一致时,报错往往不会立刻出现,而是在某个特殊字段上隐性出问题。
- 域名解析的 TTL 提前调低。切换时记录才能快速生效,否则旧缓存可能拖上几个小时。
- 证书、密钥和第三方白名单要逐一确认哪些需要在新环境重新配置。第三方 IP 白名单最容易被忘掉。
- 定时任务和消息队列的消费位点要单独核对,防止切换后重复执行,或者漏掉一段数据。
- 迁移期间冻结非必要的变更。同时改动多项,出了问题很难分清是哪一项引起的。
阿里云迁移通常不靠一次做完,关键是每一步都留有退路。先摸清家底,选对策略,靠灰度和演练压住风险,上线后再慢慢调优。文中的案例可以当作参考框架,不同行业和团队的情况差别很大,套用时还要结合自己的业务去调整。