java|云上系统迁移系列(一):概览

前言

1.在上家公司,国外业务(亚马逊云部署)发展一段时间,我们在评估成本时发现亚马逊服务器成本占了很大的比重;
2.业务发展之初(18年初)为啥选择亚马逊云?东南亚业务刚开始发展时调研各大云平台发现亚马逊云是最稳定的;
3.后来调研发现阿里云在东南亚发展迅速,服务器不但可以打折而且稳定性也符合我们要求;
4.在评估后从亚马逊云迁移至阿里云成本可节省三分之二,最终我们决定进行将所有数据及服务从亚马逊迁移至阿里云;
亚马逊云—>阿里云
  • 目的节省成本(大约节省三分之二成本)
  • 迁移过程中示意图
    java|云上系统迁移系列(一):概览
    文章图片

  • 迁移统计
    • 微服务个数:30
    • 中间件
      • mongodb(三台两两互备,数据有冗余)
      • mysql
      • redis
      • rabbitmq
      • kafka
      • zk
      • xxl-job
  • 数据恢复策略
    • MongoDb(约3TB);总条数对比验证,每个数据库及表条数的对比
    • 文件资源 S3->OSS 并对历史记录[mysql,mongodb]进行清洗 ; 大小:3.48T 个数:897w+
    • MySQL数据迁移;执行时间1小时10分钟; 大小40G+; 总条数对比验证
    • Redis数据迁移;Rdb备份及恢复 总执行时长30分钟;验证条数比对 784w+
  • 迁移方案
    • 提前新环境的部署及验证
      • 数据恢复
      • 服务、中间件、负载均衡、脚本的部署
      • 测试验证
    • 演练验证预估时间
    • 执行方案总共花费4小时(凌晨3点-凌晨7点)
    • 【java|云上系统迁移系列(一):概览】回滚策略
总结
  • 整个迁移方案进行了三轮的验证及预案演练;会在以后的博文中为大家分享迁移过程中各个环节点的方案及实施情况;
  • 技术部的所有同学(后端研发,APP端研发,前端研发,运维,测试)均参与其中;
  • 经过这场硬战不仅对系统进行了系统性的梳理,而且使得我们团队在系统迁移这块儿具备了丰富实战经验;

    推荐阅读