如果您的应用已经部署到生产环境并处于正常运行状态,为了保持业务不中断运行,并且不发生数据丢失,您可以采用平滑迁移的方式将应用迁移至 SAE。

迁移到 SAE 的价值

  • SAE 为应用部署提供了启动参数灵活配置、流程可视化、服务优雅上下线和分批发布等功能,让您的应用发布可配、可查、可控。
  • SAE 提供了服务发现与配置管理功能,您无需再自行运维 Eureka、ZooKeeper、Consul 等中间件组件,可以直接使用 SAE 提供的商业版服务发现与配置管理。
  • SAE 控制台提供了统一的服务治理,目前支持查询发布和消费的服务详情。
  • SAE 提供了动态扩、缩容功能,可以根据流量高峰和低谷实时地为您的应用扩容和缩容。
  • SAE 提供了高级监控功能,除了支持基本的实例信息查询外,还支持微服务调用链查询、系统调用拓扑图、慢 SQL 查询等高级监控功能。
  • 对于Spring Cloud 框架应用 SAE 提供限流降级功能,保证您的应用高可用。
  • 对于Spring Cloud 框架应用 SAE 提供了全链路灰度功能,满足您的应用在迭代、更新时通过灰度进行小规模验证的需求。

什么是平滑迁移

如果您的 Spring Cloud 集群及应用已经部署在生产环境并处于正常运行状态中,现场需要将集群迁移到 SAE 享受完整的 SAE 功能,在迁移过程中,业务需要平稳运行而不中断,而保证应用平台运行不中断迁移到 SAE 即为平滑迁移。
说明 如果您的集群尚未在生产环境中运行,或者您可以接受停机迁移,则无须参考本文进行平滑迁移,可直接将应用在本地开发完再部署到 SAE,详情请参见如下章节内容。

迁移流程



  1. (必选)迁移应用

    迁移的应用通常是无状态的,需要先进行应用迁移。

  2. (可选)迁移 SLB 或修改域名配置

    在应用迁移完成后,您还需要迁移 SLB 或修改域名配置。

    • SLB
      • 如果您的应用在迁移之前已经使用 SLB,应用迁移后可以复用该 SLB。您可以根据您的实际需求选择绑定 SLB 的策略,详情请参见 SLB 绑定概述
      • 如果您的应用在迁移之前没有使用 SLB,建议在迁移完入口应用(如上图所示的 API Gateway)后,为该应用创建并绑定一个新的 SLB。
      • 迁移应用的方案中,推荐使用双注册和双订阅方案,以节约ECS 成本。如果由于某种原因(如原 ECS 端口被占用)不能复用之前的 ECS,则需要采用切流迁移方案,添加新的 ECS用于应用迁移。在应用迁移完成后,依据迁移前应用是否使用SLB,选择复用 SLB 或创建 SLB 并绑定到迁移后应用。
    • 域名

      • 如果迁移后的应用可以复用 SLB,则域名配置无需修改。
      • 如果迁移后的应用需要创建新的 SLB 并绑定,则需要在域名中添加新的 SLB 配置,详情请参见域名 DNS 修改,并删除原来不再使用的 SLB。
  3. (可选)迁移存储和消息队列

    • 如果应用迁移前已经部署在阿里云上,同时存储和消息队列同样使用了阿里云相关产品(如 RDS、MQ 等),则应用迁移完成后,迁移前的存储和消息队列无需迁移。
    • 如果应用迁移前没有部署在阿里云上,请提交工单或联系 SAE 技术支持人员为您提供完整的上云及迁移到 SAE 方案。

本文以 Demo 应用演示平滑迁移。Demo下载 Provider Demo , Consumer Demo

迁移方案

迁移应用有两种方案,切流迁移、双注册和双订阅迁移方案。两种方案均可保证应用正常运行不中断情况下完成平滑迁移。
说明 本文将主要介绍双注册和双订阅方案。
  • 切流迁移方案

    使用 Dubbo 将原有的服务注册中心切换到 SAE ConfigServer,开发新的应用部署到 SAE,最后通过 SLB 和域名配置来进行切流。

    如果选择此方案,请参考微服务场景指引 开发应用。

  • 双注册和双订阅迁移方案

    双注册和双订阅迁移方案是指在应用迁移时同时接入两个注册中心(原有注册中心和 SAE 注册中心)以保证已迁移的应用和未迁移的应用之间的相互调用。

    本方案实现架构图如下:

    • 已迁移的应用和未迁移的应用可以互相发现,从而实现互相调用,保证了业务的连续性。
    • 使用方式简单,仅需添加依赖,并修改极少的代码,可以实现双注册和双订阅。
    • 支持查看消费者服务调用列表的详情,实时地查看到迁移的进度。
    • 支持在不需要重启应用的情况下,动态地变更服务注册的策略和服务订阅的策略,只需要重启一次应用就可以完成迁移。