跨平台应用迁移的真实案例概述迁移具体要求迁移方案的提出具体流程与趟过的坑后记
概述
前段时间,我作为Rainbond官方交付工程师,受一家企业级客户所托,要将一批正在生产环境上运行的应用,完整的迁移到一个新平台上。这项工作完成后,在征得了客户同意的情况下,我把整个过程形成文档,发到社区供大家探讨。
迁移具体要求
- 基于阿里云ecs搭建新集群
- 应用迁移时要附带数据一起迁移(数据量级为几十G)
- 迁移速度要保证
- 允许业务短时间中断
迁移方案的提出
获悉客户的具体迁移要求后,我们梳理了客户的真实环境,发现具备一个关键条件:
客户的新旧两套环境间网络可互通。
鉴于此,我们决定使用Rainbond的云端备份迁移功能来实现这次迁移。
具体流程分为:
- 新集群搭建
- 利用旧集群已有的Rainbond管理后台(企业服务)将新集群纳入
- 在Rainbond部署一个 sftp 服务,建议在新集群中部署,以后可以接着用
- 管理后台对接 sftp 服务,为云端备份做准备
- 对旧平台上的目标应用,执行应用的云端备份功能
- 备份完毕后,启动旧平台应用,恢复业务(如备份过程中关闭了应用的话)
- 对完成的备份执行迁移操作,目标集群选择为新的数据中心
- 迁移完成后,在新的平台会出现迁移过去的新应用,绑定访问域名后启动
- 验证业务后,切换域名解析地址到新平台
- 关闭原应用
- 不断重复 5 - 10 直至所有的应用迁移完成
- 将旧平台的 console 数据库导入新平台
具体流程与趟过的坑
- 新集群搭建:参考阿里云部署快速搭建1管理、2计算、1网关的集群。 需要指出的是,当前最新版本支持 grctl node add --role gateway 来指定增加网关节点,非常方便
- 使用Rainbond管理后台纳管新集群。
获取截图的时候,旧数据中心已经下线
- 对接 sftp 服务。
- 开始云端备份操作。
在这里有些点要注意:如果当前应用包含类型为有状态服务的服务组件,那么开始备份前要关闭应用;如果当前应用包含了第三方服务,那么要事先将与第三方服务的依赖去除;点击 备份&迁移
选择云端备份,开始备份
- 再次点击
迁移&备份
, 将在列表中找到成功的备份记录,原应用可以启动并恢复业务访问了。接下来点击迁移,就可以向新数据中心迁移应用了。
- 默默的等待业务迁移完成,就可以启动了。当然,业务需求的第三方服务要提前准备好。 如果有条件,记得将旧平台的管理节点、新集群的网关节点的网络带宽加大,这将有利于数据的快速传输,大幅度缩减迁移耗时。
- 做一些个性化的设置,比如为不同的应用绑定域名,验证新应用的功能与数据完整性后,就可以切换域名解析上线了。
- 完成所有的迁移,耗时为一个工作日,但是鉴于只有备份过程中可能引起服务中断,所以真正对业务有影响的时间会更短。
- 业务迁移完成后,需要将原平台的 console 数据库导入到新的平台,这样访问新平台的控制台页面,也能正常显示所有的应用了。
后记
后续将一些企业版组件安装到新的平台里,就彻底完成了一次平台级别的迁移。
在这里特别鸣谢 北京红亚华宇科技有限公司
,作为我们的企业级用户,在产品完善方面给予了我们大力的支持;也感谢其同意我将这次操作流程作为帖子写出来和大家交流。
如果您想进一步了解企业版本,请在原文链接留言,我们会第一时间联系您~