.
业务背景

随着物流业务的不断发展,业务对资源的需求不断上升。同时由于物流业务波动性非常大,峰值和谷值之间的差距可以达到数十倍。如果使用常规的线下机房投入,需要购买大量的资源,而这些资源日常利用率非常低,带来大量的资源浪费。 在这种情况下,把物流企业的信息系统云化,利用云的弹性来实现资源的高效利用,可以有效的降低企业信息系统TCO,提高企业的信息服务水平和质量。 在云化的过程中,需要把云下的已有数据和业务逐步平滑转移到云上,减少服务中断时间或者做到服务不中断。因此我们提出了以下平滑上云方案。

.
架构特点
  • 用户数据无缝迁移
  • 用户业务平滑过渡
  • 上云过程中服务不中断
.
限制条件

为了做到平滑迁移,我们把整个迁移过程分为三个部分:业务迁移、数据迁移、数据升级。先迁移验证业务部分,在业务完成上云后,再开始数据部分的上云,完成后数据存储本身还是使用云下的模式,很难利用起云上的弹性,因此最后需要做一次数据升级,把基于普通的数据库的模式改为使用分布式数据库。

.
架构描述

为了做到平滑迁移,我们把整个迁移过程分为三个部分:业务迁移、数据迁移、数据升级。先迁移验证业务部分,在业务完成上云后,再开始数据部分的上云,完成后数据存储本身还是使用云下的模式,很难利用起云上的弹性,因此最后需要做一次数据升级,把基于普通的数据库的模式改为使用分布式数据库。

.
业务迁移

业务迁移的目标是把业务平滑无缝的从线下迁移到线上,迁移过程如下:

  • a) 在云上部署业务系统,业务系统访问云下的数据库
  • b) 修改IDC中的前端负载均衡设置,把部分流量导入到云上,比如1%
  • c) 观察用户使用情况有无异常,有则切流量回云下,对云上系统进行调整并跳转到步骤a,无则继续下一步
  • d) 继续增加云上流量,比如5%,10%,30%直到100%,持续增加流量并观察,发现异常则把流量切回云下系统并跳转到步骤a
  • e) 流量100%切换完成后,把入口域名绑定到SLB上
  • f) 如果业务系统比较庞大复杂,则可以分模块或子系统重复步骤a~e直到所有业务模块上云

业务迁移中场景:

业务迁移完成场景:

注:业务迁移也是系统架构升级的契机,用户可以使用更稳定更容易维护的云上组件来代替云下组件,比如用云数据库Redis版或者云数据库Memcache版来做缓存,使用MQ来做消息服务等等。因为云上服务自带集群、热备、监控、调度等功能,用户可以把更多的精力放在业务本身上。

.
数据迁移

在业务迁移完成后,就可以进行数据的迁移。迁移过程如下:

  • a) 在云上使用RDS部署数据库系统
  • b) 部署使用数据迁移服务DTS,迁移数据库结构和数据到云上
  • c) 数据迁移完成后,配置DTS为数据同步模式
  • d) 切换业务系统访问云上数据库

数据迁移中场景:

数据迁移后场景:

.
数据库架构升级

经过上面两个步骤的操作,整个系统已经迁移到云环境下,但此时架构还需优化,主要的原因是原先云下用数据库集群模式来提高性能,云上用的是高性能数据库来代替,这样无法高效利用云上的弹性做伸缩。我们建议用户继续改进系统,使用分布式数据库+多台普通性能的RDS来代替高性能的RDS,以改进提高弹性和资源使用率。

数据库升级后架构图: