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

将基于 IoT 中心的解决方案从测试移动到生产环境

Azure IoT 中心

本文提供了将基于 Azure IoT 中心的解决方案转换为生产环境的关键注意事项列表。

使用部署标记

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

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

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

  • 非线性缩放或成本。 解决方案组件可能不会随请求数或引入的数据量线性缩放。 相反,某些组件可能会在达到阈值后遇到性能下降或成本增加的情况。 在这种情况下,通过添加印章进行横向扩展可能是比增加容量更有效的策略。

  • 客户隔离。 可能需要将特定客户的数据与其他客户的数据隔离开来。 可以将资源需求较高的客户分组到不同的邮票上。

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

  • 复杂的部署要求。 可能需要以受控方式将更新部署到服务,并在不同的时间部署到不同的戳记。

  • 更新频率。 你可能有客户能够容忍频繁的系统更新,而其他客户可能是风险厌恶的,并且希望不经常更新你的服务。

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

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

有关详细信息,请参阅 部署标记模式

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

与远程服务和资源通信的所有应用程序都必须设计为处理暂时性故障。 在云环境中,这种需求尤其重要,在这些环境中,连接会增加遇到这些故障的可能性。 暂时性故障包括:

  • 与组件和服务建立网络连接的瞬间丢失。
  • 服务暂时不可用。
  • 服务繁忙时发生的超时。
  • 设备同时传输时发生的冲突。

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

  • 指数退避。 应用程序在第一次重试前等待一小段时间,然后逐渐增加后续尝试之间的等待时间。 例如,它可能会在 3 秒、12 秒或 30 秒后重试该作。

  • 定期。 应用程序每次尝试的间隔时间相同。 例如,它可能会每隔 3 秒重试一次作。

  • 立即重试。 有时暂时性故障是短暂的,可能会因为网络数据包冲突或硬件组件中的峰值等事件而发生。 在此方案中,立即重试作是适当的。 如果错误在应用程序组装并发送下一个请求时清除,则作可能会成功。 不过,立即重试次数不得超过一次。 如果立即重试失败,请切换到备用策略,例如指数退避或回退作。

  • 随机化。 上述任何重试策略都可能包括随机化元素,以防止客户端的多个实例同时发送后续重试尝试。

避免以下反模式:

  • 不要在实现中包含重复的重试代码层。

  • 切勿实施永不结束的重试机制。

  • 永远不要多次执行立即重试。

  • 避免使用固定重试间隔。

  • 防止同一客户端的多个实例或不同客户端的多个实例同时发送重试。

有关详细信息,请参阅临时故障处理

使用零接触预配

预配是将设备注册到 IoT 中心的过程。 预配会将设备注册到 IoT 中心,并指定其使用的证明机制。 可以使用 IoT 中心设备预配服务(DPS) 或通过 IoT 中心注册表管理器 API 直接进行预配。 使用 DPS 可提供后期绑定的优势,这样就可以在不更改设备软件的情况下将现场设备删除和重新预配到 IoT 中心。

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

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

  1. 解决方案开发人员将测试和生产 IoT 云链接到预配服务。

  2. 设备实现 DPS 协议以查找 IoT 中心(如果不再预配)。 设备最初预配到测试环境。

  3. 设备注册到测试环境,因此它会连接到该环境并进行测试。

  4. 开发人员将设备重新预配到生产环境,并将其从测试中心中删除。 测试中心下次重新连接时会拒绝设备。

  5. 设备连接并重新协商预配流。 DPS 将设备定向到生产环境,设备连接并在那里进行身份验证。

有关详细信息,请参阅 IoT 中心设备预配服务的概述

作者

Microsoft维护本文。 以下参与者撰写了本文。

主要作者:

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

后续步骤