
# 应用层迁移方案
应用层通常部署在物理机、虚拟机或容器内，应用的类型包括有状态和无状态两种。应用的部署方式和应用状态是应用层迁移方案设计时需要考虑的因素，不同的部署方式和应用状态适用的迁移方案不同。
- **平迁部署在主机上的应用**
  传统架构的应用，通常部署在物理机或虚拟机，建议优先通过华为云SMS主机迁移工具进行迁移；如果无法使用华为云SMS进行迁移的，可以采用应用重新部署的方式；对于可停机迁移的应用，也可以考虑采用镜像导出导入的方式进行迁移，详细方案见下表：
  表1主机平迁方案 
  |       **迁移方案**       | **迁移方式** |                                   **特点**                                    |                          **适用场景**                           |
  |---|---|---|---|
  | 使用华为云SMS主机迁移工具迁移（推荐） | 全量+增量    | 1.停机时间短，可持续进行增量同步 2.依赖网络传输，且要求源端操作系统版本在华为云支持列表内 | 适用于所有源端为x86架构的物理机或虚拟机迁移，有增量数据                               |
  | 华为云ECS重新部署           | NA       | 1.不依赖网络传输 2.相比工具迁移工作量较大                         | 所有                                                          |
  | 镜像导出导入               | 全量       | 1.不依赖网络传输 2.停机时间较长，需要源端物理机或虚拟机停机后，制作完整镜像        | 停机窗口较长的场景 （停机窗口至少4小时以上才建议考虑此方案） |
     
  

- **平迁部署在容器中应用**
  部署在容器中应用一般是云原生的应用，通常是微服务架构的应用，可以通过镜像迁移或重新发布两种方式做迁移。
  企业云原生应用系统以微服务架构为主，通常部署在容器中，这种场景，多数企业也同时会拥有自己的开发流水线CI/CD系统，所以，这种场景的应用上云可以使用容器镜像迁移的方式迁移，或者使用CI/CD流水线重新发布的方式迁移。
  表2容器迁移方案 
  |          1. 迁移方案             |       1. 特点         |     1. 适用场景       |
  |---|---|---|
  | 1. CI/CD重新发布（推荐）             | 1. 操作简单，配置可控        | 1. 源端具备CI/CD流水线   |
  | 1. 容器镜像迁移                    | 1. 人工操作，工作量大        | 1. 所有             |
  | 1. 容器迁移工具（Velero或E-Backup）   | 1. 操作简单，可快速还原源端配置   | 1. 所有             |
     
  

- **主机上的应用容器化上云**
  对于部署在主机上的传统应用，如果要迁移到容器，就需要将传统应用进行容器化改造，将主机上的应用改造成容器镜像，部署到K8S或华为云CCE集群。容器化改造上云，属于应用现代化，具体请参考[应用现代化](https://support.huaweicloud.com/usermanual-caf/caf_01_0176.html)。
  
 
