阿里云首页 阿里云物联网平台 相关技术圈

实例迁移的最佳实践

物联网平台提供实例迁移功能,可助您将旧版公共实例下产品、设备和规则引擎数据迁移到企业版实例中使用。本文以某共享服务企业为例,介绍实例迁移的业务改造和迁移方案。

背景信息

A公司的用户共享服务平台,采用阿里云物联网提供的设备管理能力,聚焦智慧园区、智慧校园等场景提供共享洗衣机、烘干机、按摩椅等共享服务。

物联网平台提供的企业版实例服务,与旧版公共实例服务相比,功能更丰富、扩展性更好、性能更稳定,更适合用户的业务模式。实例对比详细说明,请参见公共实例与企业版实例区别

采用不同类型的企业版实例,可区分不同用户交付的共享服务平台项目,实现资源隔离,使共享服务平台更稳定,同时降低项目评估成本。企业版实例类型的详细说明,请参见企业版实例类型说明

由于物联网平台是在旧版公共实例之后提供的企业版实例服务,存量设备是在旧版公共实例下运行的。从资源隔离、稳定性和项目成本考虑,可将设备相关数据从公共实例迁移到企业版实例中使用。

业务场景介绍

业务场景

序号

说明

1~1.2

将共享设备联网接入阿里云物联网平台,然后上报数据。

您的应用通过物联网平台的AMQP订阅或数据流转,接收设备上报的数据、状态等消息。

您的数据库实时存储已订阅或流转的设备数据。

2~2.2

消费者通过共享服务平台提供的App扫码认证授权后,可查看共享设备状态,然后通过App下发指令,控制共享设备提供服务。

说明

鉴权成功后,App连接到共享服务平台,开始计费。

您的应用接收到消费者下发的指令,调用阿里云物联网平台提供的设备控制服务,控制设备开始工作。

设备运行过程中和服务完成后,均上报设备状态,并通过数据流转功能同步给您的应用,存储在数据库中。服务完成后,共享服务平台会推送PUSH消息给App,提示消费者服务结束和计费等信息。

迁移方案

实例迁移的整体流程说明,请参见使用前必读。根据迁移流程说明,您需对共享设备相关业务进行评估,然后制定迁移方案。

系统改造

针对业务场景评估后,以下业务场景配置需要改造,以保证设备迁移后正常通信。

业务项

改造方案

相关文档

AMQP服务端订阅

对于AMQP客户端接入的SDK,需要复制新的企业版实例ID和接入域名,配置新的AMQP客户端,然后在灰度迁移时,复制更新消费组ID,启动新的AMQP客户端。

您需启动两个AMQP客户端,保证公共实例和企业版实例同时存在AMQP客户端接收数据,防止数据丢失。

AMQP客户端接入

云产品流转

在公共实例下,配置流转数据:

  • 设置实例迁移事件流转全部任务,订阅实例迁移任务状态变更消息。

    实例迁移过程中,设备迁移成功后的消息中会流转设备成功的消息。

  • 流转设备信息并存储到数据库中。

    实例迁移过程中,会迁移数据流转,更新数据库中设备所属实例信息为目标企业版实例的实例ID。

云端API调用

您需自行开发应用,在调用云端接口时,先查询数据库表中实例ID信息(企业版实例ID),然后设置接口请求参数IotInstanceId为该企业版实例ID,最后发起接口调用。

实例迁移

完成系统改造后,应用发布上线,即可通过物联网平台的实例迁移功能迁移公共实例下共享设备,如下图所示。迁移流程

序号

操作

说明

1~1.2

调试公共实例下待迁移共享设备。

消费者通过App使用共享服务平台提供的设备共享服务时,应用系统查询设备信息仍在公共实例中。

此时,调用服务相关接口,无需传入实例ID,即可通过阿里云网关使用物联网平台服务,控制待迁移设备。

2~2.5

开始实例迁移:

  1. 步骤一:创建迁移任务

  2. 步骤二:灰度迁移

在物联网平台控制台创建并发起实例迁移任务,进行灰度迁移:

  • 将公共实例下指定产品、规则引擎和灰度设备的数据迁移到企业版实例中。此时,在线设备被迫下线。

  • 设备重连时自动接入企业版实例。设备迁移完成,会同时将迁移数据流转到业务服务器中,业务服务器更新数据库中存储的设备信息。

  • 灰度验证完成后,对于新的AMQP消费端,需复制灰度迁移中产生的新消费组ID,重启新AMQP消费端,用于接收数据。

3

步骤三:全量迁移

在物联网平台控制台发起全量迁移任务:将公共实例下指定产品下全量设备迁移到企业版实例中。设备迁移流程与灰度设备迁移流程相同。

说明

全量迁移设备不再包含已灰度迁移的设备。

4~4.2

验证企业版实例下已迁移共享设备。

消费者对设备所属实例不感知,仍通过App使用共享服务平台提供的设备共享服务,应用系统查询设备信息在企业版实例中。

此时,调用服务相关接口,必须传入实例ID,才可通过阿里云网关使用物联网平台服务,控制已迁移设备。

说明

设备全量迁移完成,验证业务结果正确,表示实例迁移完成且成功。

若验证业务有问题,可通过回滚功能,将设备从企业版实例中迁移到公共实例,其他数据保持不变。具体内容,请参见可选:回滚迁移任务