你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 IoT 解决方案从测试环境移到生产环境

Azure IoT 中心

本文包含将 IoT 解决方案移动到生产环境时应考虑的项的列表。

使用部署标记

标记是核心解决方案组件的离散单元,用以支持定义数量的设备。 每个副本称为一个标记, 或一个缩放单元。 例如,标记可能包含一组设备填充、一个 IoT 中心、一个事件中心或其他路由终结点以及一个处理组件。 每个标记都支持一个定义的设备填充。 你可选择标记可以容纳的最大设备数。 随着设备填充的增长,可以添加标记实例,而不是单独纵向扩展解决方案的不同部分。

如果不添加标记,而是将 IoT 解决方案的单个实例移到生产环境,可能会遇到以下限制:

  • 缩放限制:单个实例可能会遇到缩放限制。 例如,解决方案使用的服务可能对入站连接、主机名、TCP 套接字或其他资源有限制。

  • 非线性缩放或成本:解决方案组件可能不会随发出的请求数或引入的数据量线性缩放。 相反,对于某些组件,一旦达到阈值,性能可能降低或成本可能增加。 相比通过添加标记来横向扩展,纵向扩展增加容量可能不是一种好的策略。

  • 客户分离:可能需要将某些客户的数据与其他客户的数据隔离开来。 同样,可能有些客户需要比其他客户更多的服务系统资源,可以考虑使用不同的标记将他们分组。

  • 单租户实例和多租户实例:你可能有一些需要自己的独立解决方案实例的大型客户。 你可能还有一个可以共享多租户部署的小型客户池。

  • 复杂的部署要求:可能需要有控制地将更新部署到服务,并在不同时间部署到不同的标记。

  • 更新频率:有的客户可能可以接受你的系统频繁更新,而其他客户可能不愿意承受风险,且不希望经常更新你的服务。

  • 地理或地缘政治限制:若要降低延迟或遵守数据主权要求,可以将部分客户部署到特定区域。

若要避免上述问题,请考虑将服务分组到多个标记中。 标记彼此独立运行,且可以独立部署和更新。 单个地理区域可能包含单个标记,也可能包含多个标记,以允许在区域内横向扩展。 每个标记都包含一个客户子集。

发生暂时性故障时使用回退

与远程服务和资源通信的所有应用程序必须对暂时性故障敏感。 对于云中运行的应用程序尤其如此,因为其环境的性质与通过 Internet 建立连接的特点,意味着更容易遇到这种类型的故障。 暂时性故障包括:

  • 暂时失去与组件和服务的网络连接
  • 服务暂时不可用
  • 服务繁忙时出现的超时
  • 设备同时传输时引起的冲突

这些故障通常可自我纠正,如果在适当的延迟后重复操作,则操作可能会成功。 但是,确定重试之间的适当时间间隔很困难。 典型策略会使用以下类型的重试间隔:

  • 指数退让。 应用程序在第一次重试之前短暂地等待,每个后续重试的间隔时间呈指数增加。 例如,在 3 秒、12 秒、30 秒后重试操作。
  • 固定间隔。 应用程序每次尝试的间隔时间相同。 例如,固定每 3 秒重试操作。
  • 立即重试。 有时候暂时性故障很短暂,可能是由于网络数据包冲突或硬件组件流量高峰等事件。 在此情况下,适合立即重试操作,因为如果故障在操作让应用程序组合并发送下一个请求时已清除,则操作可能会成功。 不过,立即重试次数不得超过一次,如果立即重试失败,应改用备用策略,例如指数退让或故障回复操作。
  • 随机化。 任何上述重试策略都可能包含随机化元素,以防止客户端的多个实例同时发送后续重试请求。

另请避免以下反模式:

  • 实现不应包含重复的重试代码层。
  • 切勿实施永不结束的重试机制。
  • 切勿多次执行立即重试。
  • 避免使用固定重试间隔。
  • 防止同一个客户端有多个实例,或不同客户端有多个实例同时发送重试请求。

使用零接触预配

预配是指将设备注册到 Azure IoT 中心的行为。 通过预配,IoT 中心将可以识别设备和设备使用的证明机制。 可以使用 Azure IoT 中心设备预配服务 (DPS) 或直接通过 IoT Hub 注册表管理器 API 进行预配。 使用 DPS 可带来后期绑定的好处,这样,无需更改设备软件即可将现场设备删除和重新预配到 IoT 中心。

下面的示例演示如何使用 DPS 实现测试到生产环境的转换工作流。

显示如何使用 DPS 实现测试到生产环境转换工作流的示意图。

  1. 解决方案开发人员将测试和生产 IoT 云链接到预配服务。
  2. 如果不再预配,设备将实现 DPS 协议来查找 IoT 中心。 最初,设备被预配到测试环境。
  3. 由于设备在测试环境中注册,因此它将在测试环境连接并进行测试。
  4. 开发人员将设备重新预配到生产环境,并将其从测试中心删除。 测试中心会在下次重新连接时拒绝设备。
  5. 设备将连接并重新协商预配流。 现在,DPS 会将设备定向到生产环境,设备将在该环境中进行连接和身份验证。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤