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

IoT 工作负荷中的卓越运营

鉴于 IoT 解决方案要求的复杂性,组织的运营能力对于推动可持续业务价值非常重要。 本指南重点介绍 IoT 设备和服务的操作方面,这些方面可唯一地满足 IoT 解决方案的核心要求。

IoT 工作负荷中的卓越运营需要完全可见性和控制解决方案的所有硬件和软件组件。 设计、开发、预配、监视、支持和维护做法必须敏捷且交付业务价值,而不会增加运营风险。

在 IoT 解决方案中,设备多样性和规模、不同的网络类型和地理分布位置显著将云和混合 共享责任模型 从云提供商转移开。 云服务使组织能够更轻松地自行运行 IoT 设备和网络,或使用第三方操作,但组织本身对 IoT 工作负载的这些关键要素负责。

卓越运营可确保 IoT 解决方案能够成功:

  • 支持不同的用户角色。
  • 管理所有设备生命周期阶段。
  • 高效缩放以满足按需更改。
  • 使用自动化进行管理和监视。
  • 与其他后端系统集成。

评估 IoT 工作负荷中的卓越运营

若要通过良好架构框架运营卓越支柱的镜头评估 IoT 工作负荷,请在 Azure 良好架构评审完成 IoT 工作负载的卓越运营问题。 评估确定 IoT 解决方案的关键卓越运营建议后,请使用以下内容来帮助实施建议。

设计原理

体系结构卓越 五大支柱支撑了 IoT 工作负荷设计方法。 这些支柱充当跨关键 IoT 设计领域的后续设计决策的指南针。 以下设计原则扩展了 Azure 精心构建的框架 - 卓越运营的质量支柱。

设计原则 注意事项
接受持续操作和缩放 确保 IoT 解决方案可以成功管理自动化设备预配、与其他后端系统集成、支持不同的角色(例如解决方案开发人员、解决方案管理员和操作员),并根据需要(例如部署的新 IoT 设备或更高的引入吞吐量)进行高效调整和缩放。
优化生成和发布过程 任何成功的企业 IoT 解决方案都需要一种策略来建立和更新设备或设备的配置群。 设备的配置包括设备属性、连接设置、关系和固件。 IoT 操作员需要简单可靠的工具,使它们能够在设备生存期内的任何时间点更新设备配置或设备群。
了解运营的健康状况 使用 IoT 解决方案日志记录、监视和警报系统来确定解决方案是否按预期运行,并帮助解决解决方案整个生命周期中的问题。
使用自动化和 DevOps IoT 设备本质上是具有专用硬件和软件的小型计算机。 IoT 设备通常受硬件限制,例如内存或计算容量有限。 自动化和 DevOps 至关重要,可确保正确上传和部署 IoT 设备和网关的 OS 和软件,以最大程度地减少运营停机时间。 自动化和 DevOps 对于监视和管理 IoT 设备的生命周期至关重要。

IoT 体系结构层

卓越运营设计原则有助于阐明注意事项,以确保 IoT 工作负载满足基础 IoT 体系结构层的要求

IoT 核心层:设备和网关、设备管理和建模,以及引入和通信,识别特定于 IoT 的解决方案。 其他层和交叉活动也是常见的,通常与其他工作负荷共享。 DevOps 跨领域活动对于支持卓越运营支柱尤为重要。

显示 IoT 体系结构中层和跨领域活动的关系图。

设备和网关层

此层表示在边缘或本地部署的物理或虚拟设备和网关硬件。

IoT 运营卓越的关键因素是组织能够计划、预配、配置、监视和停用 IoT 设备。 组织必须选择满足业务和技术要求的 IoT 硬件,并定义适当的测试过程以确保操作可靠性。

使用新硬件的绿地项目在设备类型、固件和连接功能和技术规范方面通常具有更大的灵活性。 可能需要选择符合区域认证要求或法规的设备,例如 CE、FCC、UL、PCI 或 FDA。

已部署硬件的 Brownfield 项目通常具有更多的硬件限制。 可能需要查找其他类型的硬件,例如协议或标识转换设备,或蓝牙到 MQ 遥测传输(MQTT)网关等连接网关。

Azure 认证设备计划认证验证设备是否可以连接到Azure IoT 中心,并通过IoT 中心设备预配服务(DPS)安全地进行预配。 Azure 认证设备目录可帮助你查找并选择经过认证的合作伙伴硬件。 设备目录具有搜索和筛选功能,可用于查找满足解决方案要求的硬件。

在 Azure IoT 认证的硬件中查找的重要功能是 Azure 即插即用和数字孪生定义语言(DTDL)兼容性。 这些功能可确保设备与 Azure 数字孪生等服务无缝集成。 对于 Azure IoT Edge 方案,必须查找具有 IoT Edge 托管 认证的目录设备。 此认证保证设备可以运行 IoT Edge 运行时,并支持支持边缘处理和分析工作负载的 IoT Edge 模块的部署和管理。

设备组件和备用组件必须可用于涵盖解决方案生存期的维护和支持合同。 确保项目开始时及时且安全的设备供应,因为以后引入这一要求可能很昂贵。 使用受信任的供应商链,并考虑双重或多个供应源。

引入和通信层

组织的网络运营团队通常与电信运营商合作,以处理 IoT 工作负荷的通信网络技术堆栈。 与电信运营商协调,以设置和操作 IoT 解决方案和操作的有线和无线通信网络组件。

容量缩放

配置 IoT 云解决方案的引入和其他后端层,以便能够缩放以处理预期和意外的容量需求。 如果解决方案与连接的产品相关联,则必须处理预期负载的波动。 负载可能会受到市场营销计划(如销售或促销)或季节性事件(如假日)的影响。 应在事件之前测试负载变化,包括意外事件,以确保 IoT 解决方案可以缩放。

随着业务的发展,Azure 提供多种选项来满足容量要求。 IoT 解决方案的容量规划和缩放取决于是构建 IoT Central 还是基于 IoT 中心 的解决方案。

  • IoT Central 是一个托管应用程序平台,可用于快速评估 IoT 方案并评估业务机会。 但是,IoT Central 负责大多数基础结构元素,它仅存储 30 天的数据。 由于大多数 IoT 解决方案将数据导出到其他服务,因此应专注于确保在评估解决方案期间,其他服务能够处理预期和意外的容量需求。

  • 借助基于IoT 中心的解决方案,你有责任纵向扩展以处理引入的消息数的增长,并横向扩展以处理区域需求。 了解设备将发送到IoT 中心的消息数以及持续吞吐量对于选择正确的IoT 中心层以支持预测的需求至关重要。

    如果即将达到IoT 中心消息限制,系统应能够自动纵向扩展IoT 中心到下一个容量单元。 IoT 解决方案中的任何后端服务(例如 Azure 流分析、Azure Cosmos DB 和 Azure 数据资源管理器)都必须支持可伸缩性,以确保解决方案数据流中没有任何瓶颈。

还应规划边缘设备容量需求和要求。 无论是使用 IoT Edge 管理基于实时操作系统(RTOS)的设备还是大型计算设备,请确保计算和内存大小调整足以满足特定的用例。

设备管理和建模层

实现集中式设备管理解决方案,以管理、监视和操作 IoT 设备的生命周期,以及管理 IoT 解决方案的整体配置。 请考虑实施集成 UI,以帮助运营团队进行设备机群管理。

设备预配

定义远程设备预配策略,以便在无需人工干预的情况下,在现场对 IoT 设备进行零接触实时预配。

对于 IoT 设备的远程预配,Azure IoT 中心设备预配服务(DPS)允许连接远程设备并将其配置为IoT 中心。 DPS 可在工厂中实现零接触预配,无需对工厂进行硬编码信息,并可在多个 IoT 中心之间对设备进行负载均衡。

尽管 DPS 支持对称密钥证明,但在生产环境中,应使用 X.509 证书或 TPM 证明机制。 如果使用 X.509 证书,则应将根证书或根证书签名的中间证书部署到 DPS,以允许字段中的设备对服务进行正确身份验证,并分配到其正确的 IoT 中心。

IoT 解决方案生命周期的一部分包括重新预配字段中的设备或在 IoT 中心之间移动设备。 DPS 支持重新预配策略的配置 ,这些策略 确定 IoT 设备提交新的预配请求时的预期行为。 设备应编程为在重新启动时发送预配请求,并应实现手动触发按需预配的方法。 此机制可确保每次设备启动时,都会联系 DPS 以重定向到相应的 IoT 中心。

设备配置和更新管理

建立更新设备或设备群配置的策略。 设备的配置包括设备属性、固件、连接设置和关系。 IoT 操作员需要简单可靠的工具,以便他们在设备生存期内随时更新设备或设备群的配置。

IoT 解决方案的规模和设备配置的特定用途会影响配置管理策略的设计。 请务必尽可能自动执行此策略,并确保可以有效地设置和更新配置。

配置管理策略应支持:

  • 在字段中部署的 IoT 设备和 IoT Edge 设备的清单。
  • 通过设备分组逐步推出更新。
  • 可复原更新以支持测试和回滚。
  • 现有或新设备的自动更新。
  • 更新了状态报告和警报。

支持这些配置管理要求的 Azure 功能包括IoT 中心自动设备管理、IoT Edge 自动部署、IoT 中心计划作业以及用于IoT 中心的设备更新。

  • 若要持续更新现有或新设备和 IoT Edge 设备配置(例如属性、应用程序特定的设置或关系),请使用IoT 中心自动设备管理或 IoT Edge 自动部署。 这两项功能都提供了一种高效、安全且可靠的方法来自动执行机队或特定设备组的配置部署。 服务会持续监视所有新的和现有的目标设备及其基于标记的配置,以确保设备始终具有指定的配置。 这些功能之间的主要区别在于,自动设备管理仅适用于非 IoT Edge 设备,而 IoT Edge 自动部署仅适用于 IoT Edge 设备。

  • 若要根据一次性或定期计划更新现有设备或 IoT Edge 设备配置,请使用IoT 中心计划作业。 此功能是一种高效、安全且可靠的方法,用于在计划时间内为车队或特定设备组提供配置更新。

  • 若要更新现有设备或 IoT Edge 设备固件、应用程序或包更新(OTA),请使用设备更新进行IoT 中心。 此服务是更新机群或特定设备组的安全、安全且可靠的方法。

最好为 IoT 设备提供手动更新方法。 由于根证书更改或连接问题,可能需要通过物理连接到本地计算机或使用蓝牙等本地连接协议来手动更新设备。

若要了解有关设备管理的详细信息,请参阅:

管理用户界面

解决方案操作员和管理员需要一个界面来与 IoT 解决方案交互,例如预配设备、添加或删除用户、将命令发送到 IoT 设备或管理设备更新。

IoT Central 具有内置的易于使用的管理界面,使操作员和管理员能够专注于添加行业知识,并评估解决方案。

使用平台服务(如 IoT 中心 和 Azure 数字孪生)生成企业解决方案时,可以使用IoT 中心 REST API 和 Azure 数字孪生 REST API 中公开的 REST API 生成自定义管理 UI。

集成层

典型的 IoT 解决方案由多个组件组成,例如引入、路由、数据存储和数据处理。 请务必记录并充分了解 IoT 解决方案的整个数据流。 制定测试过程,以确保解决方案的不同部分按预期工作,并满足组织的技术和操作要求。 实现自动化,以便在设备连接到 IoT 解决方案时大规模识别设备功能,并轻松与后端服务集成。

配置并测试与其他支持 IoT 应用程序的后端和前端服务的 Azure 和第三方服务的可靠集成。 成功的 IoT 实现需要将 IoT 服务(如 IoT 中心 和 DPS)与其他 Azure 和第三方服务集成。

例如,DPS 使用自定义代码和 Azure Functions 支持自定义分配策略,因此请务必确认 Azure 函数允许来自 DPS 和IoT 中心的流量。 另一个示例是IoT 中心与后端服务之间的集成,以启用消息路由和文件上传等功能。 IoT 中心需要正确向这些 Azure 服务进行身份验证。 应使用托管标识来消除手动管理这些凭据的需求。

DevOps 层

DevOps 包括角色和用户管理、指标收集、监视和自动化。

角色和用户管理

解决方案设计阶段的早期关键决策是定义实现和管理解决方案的角色。 确定负责大规模开发、管理和操作 IoT 解决方案的角色,以及分配给这些角色的用户。

理想情况下,解决方案应信任集中式标识提供者(例如 Microsoft Entra ID),并且只允许这些角色中的相应用户执行管理或操作活动,例如创建和预配新设备、将命令发送到字段中的硬件、部署更新和修改用户权限。

在基于IoT 中心的解决方案中,可以使用Microsoft Entra ID 对IoT 中心服务 API 的请求进行身份验证,例如创建设备标识或调用直接方法。 可以为解决方案操作员和管理员开发自定义管理 UI,以针对 Microsoft Entra ID 对用户进行身份验证,并代表这些用户对 IoT 解决方案后端执行 API 请求。

IoT Edge 指标收集器

Azure IoT Edge 在 IoT Edge 模块市场中提供可用于 IoT Edge 的 IoT Edge 模块的 IoT Edge 指标收集器 。 将此模块添加到 IoT Edge 部署,以收集指标并将其发送到 Azure Monitor。 开源模块代码是支持 Linux x64、ARM32 和 ARM64 版本 1809 的多体系结构 Docker 容器映像。

指标收集器模块可以从可以使用 Prometheus 数据模型发出指标的所有模块收集日志。 虽然 内置指标 默认可实现广泛的工作负荷可见性,但也可以使用自定义模块发出特定于方案的指标,以增强监视解决方案。

有两个选项可用于将指标从指标收集器模块发送到云:

  • 将指标发送到 Log Analytics。 使用固定本机表(名为 InsightsMetrics)将收集到的指标引入指定的 Log Analytics 工作区。

  • 将指标发送到IoT 中心。 可以将收集器模块配置为通过边缘中心模块将收集的指标作为 UTF-8 编码的 JSON 设备到云消息发送。 此选项可解锁对仅允许外部访问IoT 中心终结点的锁定 IoT Edge 设备的监视。

AllowedMetricsBlockedMetrics 配置选项用于使用以空格或逗号分隔的指标选择器列表。 如果指标与任一列表中的一个或多个指标匹配,则与列表匹配并包含或排除。

可使用 Azure Monitor 工作簿直观地浏览从 IoT Edge 设备收集的指标。 特选工作簿使用从 IoT Edge 运行时引入到 Log Analytics 工作区的内置指标。 这些视图不需要工作负载模块提供的任何指标检测结果。

Azure 门户将 IoT Edge 设备的特选监视工作簿作为公共模板提供。 若要访问工作簿,请从Azure 门户中的IoT 中心IoT Central 页面导航到“监视”部分中的“工作簿”页

显示Azure 门户中的 IoT Edge 监视工作簿的动画。

监视

使用 IoT 解决方案日志记录、监视和警报系统来确定解决方案是否按预期运行,并帮助排查和缓解问题。 监视和日志记录有助于确定设备或系统是否处于错误状态、正确配置、生成准确的数据和满足定义的服务级别目标。

IoT 日志记录和监视系统比标准业务线应用程序更为复杂。 由于 IoT 解决方案通常跨越以下情况,因此会出现复杂性:

  • 与环境交互的物理传感器。
  • 边缘上的应用程序执行数据整形和协议转换等活动。
  • 基础结构组件,例如本地网关、防火墙和交换机。
  • 引入和消息传送服务。
  • 持久性机制。
  • 见解和报告应用程序。
  • 在云中独立运行和缩放的子系统。

以下简化的日志记录和监视体系结构演示了典型的 IoT 解决方案组件示例及其使用推荐技术的方式。

显示示例日志记录和监视系统的关系图。

如果关键应用程序和业务流程依赖于 Azure 资源,则应监视这些资源的可用性和性能。 可以使用 Azure Monitor 执行以下监视活动:

监视 IoT 中心

Azure IoT 中心收集与其他 Azure 资源相同的监视数据类型,如前所述监视 Azure 资源中的数据。 每个 IoT 中心的Azure 门户“概述”页包括提供一些使用情况指标的图表,例如所使用的消息数和连接到中心的设备数。 “ 概述” 页上的信息非常有用,但仅表示可用于 IoT 中心的少量监视数据。

自动收集某些监视数据,并可在创建 IoT 中心后立即进行分析。 可以配置其他类型的数据收集。 若要详细了解IoT 中心创建的指标和日志,请参阅监视Azure IoT 中心数据参考

监视更新

与任何部署或更新一样,应监视部署和设备更新状态。 DevOps 提供了一种持续交付全新软件更新的方法。 用于IoT 中心的设备更新通过测量安装了最高版本兼容更新的设备数来监视符合性。 如果设备安装了最高版本的可用兼容更新,则设备符合要求。

监视器配置

与任何部署或更新一样,应监视和警报设备配置或更新部署的状态。 每个 Azure IoT 配置服务在 Azure Monitor 中收集并存储日志和指标。 可以使用此数据创建 Azure Monitor 警报,以在创建、完成或失败配置部署或更新时发送通知。

如果每个 Azure IoT 配置服务提供的监视数据不够,Azure IoT 中心服务 API 提供了更精细的视图。

监视自动化和 DevOps

DPS、IoT 中心 和 IoT Edge 提供持续指标和状态更新,这些更新是监视持续集成/持续部署(CI/CD)状态或自动化脚本输出的关键输入。 可以在 Log Analytics 工作区中收集和分析这些指标,然后定义警报。

若要了解有关监视的详细信息,请参阅:

自动化

IoT 设备本质上是具有专用硬件和软件的小型计算机。 IoT 设备通常受硬件约束,例如内存或计算容量有限。 自动化和 DevOps 可确保正确上传和部署 IoT 设备和网关软件,以最大程度地减少运营停机时间。 自动化和 DevOps 对于监视和管理开发、部署和操作 IoT 解决方案和设备的完整生命周期至关重要。

成熟的 DevOps 实现的主要好处是敏捷性,能够快速感知和响应业务需求的变化。 若要将自动化与 DevOps 配合使用,实现敏捷软件开发、部署、测试、集成和操作,请遵循以下建议:

  • 使用 CI/CD DevOps 原则和流程来提高工作效率并创建无缝的快速开发周期。

  • 在基础结构即代码(IaC)环境中部署应用程序软件更改,以自动执行和管理已部署软件的持续操作。

  • 通过测试到部署到 IT 操作,自动化 IoT 应用程序软件生命周期。

  • 使用 IoT 中心 和 IoT Edge 中的 DevOps 工具和流程自动执行边缘软件生命周期。 使用 IoT Edge 在设备上部署 IoT 应用程序软件。

  • 为操作员提供用于获取可见性和见解、协作、控制和维护可靠 IoT 解决方案的工具。

  • 拥抱跨职能团队,持续交付解决方案。 设备供应商和跨职能解决方案开发人员应共同努力开发和部署 IoT 解决方案。

  • 改进业务和部署模型,为不同的业务模型和试点验证、部署和增强功能创造可能性。

自动执行设备生命周期

连接的 IoT Edge 设备具有超出部署、中断和修复和停用的生命周期。 联网设备使组织能够充分利用机会,并在系统生命周期内持续增加增量创新。

在 IoT 解决方案中,安装在硬件上的软件程序定义系统功能。 成千上万的设备可能连接到单个云终结点,例如IoT 中心。 配置或软件的任何更改都必须分布在所有设备中。 若要更改系统功能,请更新软件,而不是进行硬件更改或本地干预。

在 IoT 系统中实现自动化和 DevOps 时,请遵循每个设备生命周期阶段的特定自动化和 DevOps 要求。 下表描述了支持设备生命周期三个阶段的 Azure IoT 功能。

开始生活

预期 代码片段可用的平台功能
非 DPS 设备注册 批量设备更新
设备预配 提供零触摸设备预配所需的 DPS 配置
设备证书和令牌管理 使用共享访问签名控制对IoT 中心的访问(SAS)
设备证书生命周期管理 使用 DPS 和 DigiCert 进行 CA 证书生命周期管理
设备初始配置 设备孪生和设备模块

中年

预期 代码片段可用的平台功能
大规模持续设备配置管理 设备孪生和设备模块
IoT Edge 模块的 CI/CD 管道 持续集成和持续部署(CI/CD)到 Azure IoT Edge 设备
设备重新预配 DPS 设备重新预配
更改或过期的 SAS 密钥生成 使用共享访问签名控制对IoT 中心的访问(SAS)
日志和设备诊断 为IoT 中心预先配置的 Azure 工作簿
Azure IoT Edge 监视诊断 收集和传输 IoT Edge 设备日志和指标
OTA 设备更新 IoT 中心的设备更新文档

生命周期结束

预期 代码片段可用的平台功能
取消注册设备 从 DPS 取消注册设备
删除特定于设备的配置 设备孪生和设备模块
设备更换 与生命的开始相同

后续步骤