
# 整体方案说明
为满足企业多云容灾和第三方云IoT迁移至华为云IoT的需求，华为云IoT从设备端、平台端、应用端提供了低成本、零改造的迁移方案，可以支持设备端完全不用改造或最小成本改造从原有IoT平台迁移到华为云IoT平台。
图1整体方案   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001922561677.png "点击放大")
迁移总体方案分为下面四个步骤：
#### 1.设备接入地址切换
IoT场景设备量大，设备能力弱。IoT的迁移需尽量减少对设备侧的改动。华为云IoT提供多种技术方案来解决这个问题。
- 对于自建IoT平台设备，设备连接平台使用的是原有IoT平台域名，则设备侧可以不用做任何修改，将域名通过DNS解析到华为云IoT平台接入地址即可完成迁移。
- 对于存量第三方平台的设备，如果设备支持修改接入平台地址，则可以将设备侧地址切换为华为云IoT平台接入地址完成迁移。
- 对于设备能力比较强，可以进行OTA升级的设备，华为云提供[Device SDK](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0178.html)支持设备通过OTA完成接入地址切换。
 
#### 2.设备接入鉴权适配
当前各个云厂商都会定义自己的鉴权方式，导致设备迁移时，需要在设备端做各种适配。华为云IoT在平台端提供多种鉴权能力，把鉴权适配的动作移到云端，减少设备改动带来的风险。
- 自定义鉴权：针对存量设备设备鉴权参数无法修改的场景，平台提供自定义鉴权能力，支持在平台自定义配置设备的鉴权逻辑，实现设备鉴权方式免改动接入华为云IoT。
- 系统鉴权：华为云[Device SDK](https://support.huaweicloud.com/sdkreference-iothub/iot_02_0178.html)提供了[系统默认的鉴权能力](https://support.huaweicloud.com/usermanual-iothub/iot_01_0019.html)，对于支持修改代码的设备，可以集成SDK通过轻量化改动就可以实现设备的接入。
对于存量设备信息的迁移，华为云也提供了多种迁移能力满足不同的应用场景：
- 设备迁移服务：华为云IoTDA提供自动化，高效的迁移能力，支持第三方云平台的存量产品和设备信息全量同步到华为云IoT，实现设备信息无感自动迁移。迁移流程如下：
  图2设备迁移
  ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001910693117.png "点击放大")
  
- 设备自注册：通过在自定义鉴权中开启自注册功能，支持设备在连接到平台时自动注册设备到平台，而不需要提前进行设备的迁移。
- 批量注册设备：通过华为云提供的SDK调用[创建设备](https://support.huaweicloud.com/api-iothub/iot_06_v5_0046.html)接口，进行批量的设备注册。
 
#### 3.消息通信适配
- 自定义Topic通信：华为云IoT支持[自定义Topic的策略](https://support.huaweicloud.com/usermanual-iothub/iot_01_1111.html)，存量设备可以依据现有的Topic来自定义Topic策略，不要求Topic固定前缀，实现存量设备的Topic免改动。
- 物模型通信：华为云IoT提供[设备迁移服务]，支持物模型平滑迁移转化。
 
#### 4.数据开放适配
- 4.1 API调用：应用侧集成[应用端SDK](https://support.huaweicloud.com/sdkreference-iothub/iot_10_1002.html)，快速对接实现设备管理和指令下发。
- 4.2 订阅推送：支持AMQP/HTTP平滑流转到应用侧以及无缝对接华为云服务。
 
