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

IoT 工作负载中的成本优化

成本效益是 IoT 项目的关键成功因素之一。 在典型的 IoT 解决方案中,设备会生成大量遥测数据,这些遥测数据会发送到云中,以便云技术进行处理和存储。 开发设备和应用程序、处理大量数据以及设计体系结构的方式会影响总体成本。

由于 IoT 解决方案是一个多层技术堆栈,因此需要考虑许多节省成本的因素,并且有许多优化成本的机会。 成本优化是一个闭合循环成本控制过程,需要在整个解决方案生命周期内持续监视、分析和改进。

解决方案要求是 IoT 体系结构决策的关键标准。 可以将要求分为功能要求和操作要求。 将每种要求的成本注意事项分开,因为功能要求决定系统设计,而操作要求会影响系统体系结构。 根据要求开发多个用例,并在完成设计之前对其进行比较。

本文介绍各种 Azure IoT 服务和技术组合的成本注意事项。 有关特定行业的成本优化或连接工厂、预测性维护或远程监视等用例的成本优化,请参阅 特定于行业的 Azure IoT 参考体系结构

评估 IoT 工作负载中的成本优化

若要通过 Well-Architected 框架成本优化支柱来评估 IoT 工作负载,请在 Azure Well-Architected 评审中完成 IoT 工作负载的成本优化问题。 在评估确定 IoT 解决方案的关键成本优化建议后,请使用以下内容来帮助实施建议。

设计原理

卓越体系结构的五大支柱 是 IoT 工作负载设计方法的基础。 这些支柱充当跨 关键 IoT 设计领域的后续设计决策的指南针。 以下设计原则扩展了 Azure Well-Architected 框架 - 成本优化的质量支柱。

设计原则 注意事项
制定成本管理规则 通过在规划时考虑直接和间接成本,了解总拥有成本 (TCO)
使用行业标准策略和方法 对于具有自身生态系统的 IoT 特定行业 (例如制造业、能源和环境或汽车和运输),请使用行业标准策略和方法。
速率优化设计 为每个 IoT 体系结构层定义实现计划。
随时间推移进行监视和优化 实施解决方案后,通过持续的成本优化活动监视和优化成本。

总拥有成本 (TCO)

IoT 成本是各种技术选项之间的权衡。 有时,这不是一个简单的比较,因为 IoT 是一个端到端系统。 在协调多个服务和技术时,请考虑协同效应的成本效益。 例如,可以使用Azure IoT 中心设备孪生来处理 Azure 数字孪生中的事件。 IoT 中心 中的设备孪生仅在IoT 中心的标准层中可用。

正确估算长期聚合成本非常重要。 查看 IoT 技术堆栈, 并开发一个成本模型 ,其中包括实现和操作所涉及的所有服务的成本。 Azure 定价计算器有助于估算启动和运营成本。

在某些方面,一次性成本可能比重复性成本更有效。 例如,在黑客技术不断变化的安全性中,最好导入可靠的商业操作系统和模块,例如 Azure Sphere。 对于一次性付款,此类服务提供持续的每月设备安全修补程序。

基于在生产环境中大规模运行而不是概念证明 (PoC) 体系结构来估算解决方案成本。 体系结构和成本在 PoC 之后迅速发展。 根据 IoT Signals EDITION 3 报告,PoC 失败的主要原因是缩放成本高。 缩放 IoT 项目的高成本源于跨层集成的复杂性,例如设备、边缘连接和跨应用程序的兼容性。

成本模型应包括以下方面:

  • 设备:从有限数量的连接设备开始,估计部署的设备数及其消息传送模式的增长。 设备和消息可以随时间推移具有线性或非线性增长。

  • 基础结构:若要评估基础结构成本,请首先考虑基础知识:存储、计算和网络。 然后,考虑解决方案引入、出口和准备数据所需的所有服务。

  • 运营:包括与基础结构成本同时增加的长期运营成本,例如雇用运营商、供应商和客户支持团队。

  • 监视:持续监视和审查成本,以确定计划成本与实际成本之间的差距。 定期的成本审查会议有助于实现成本优化。

IoT 体系结构层

成本优化设计原则有助于阐明注意事项,以确保 IoT 工作负载满足 基础 IoT 体系结构层的要求。

了解 IoT 体系结构层有助于定义成本基线,并考虑多个体系结构进行成本比较。 每个层有多个技术和生态系统选项,例如设备、电信或边缘位置,因此需要为每个层建立成本策略。

IoT 核心层:设备和网关、设备管理和建模以及引入和通信,确定特定于 IoT 的解决方案。 其他层和交叉活动也常见于其他工作负载,并且经常与其他工作负载共享。 但是,TCO 和成本优化必须考虑所有成本,因此需要考虑常见和交叉活动的 IoT 相关成本以及特定于 IoT 的层。

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

设备和网关层

在某些情况下,此层负责生成优化数据并将其传输到云。 成本是设计此层的关键考虑因素。 成本优化应考虑计划、预配、配置、监视和停用的整个设备生命周期。

显示设备生命周期的示意图。

边缘解决方案要求在现场部署 IoT 设备。 部署可能需要影响成本的网络和电源基础结构。 预先存在的基础结构可以最大程度地降低安装成本,但可能需要确保安装不会影响现有系统。

开发或安装 IoT 设备可能需要培训并聘请专门的内部或外部人员。 所需的技能包括硬件设计、嵌入式应用程序开发、云和本地连接、安全和隐私以及 IoT 解决方案体系结构。 可能还需要特定于行业的专业知识。 将这些成本包含在设备总成本中。

设备成本包括组织物流,例如存储、库存管理和运输。 包括设备到达其操作生命周期结束时的任何停用活动的成本。

对于连接到云的设备,优化数据传输以维护成本边界。 策略包括最小化有效负载大小、批处理消息和在非高峰期传输。 这些优化还会产生实施成本。

若要详细了解 Azure IoT 设备,请参阅:

硬件选择

大多数设备开发过程取决于硬件选择。 设备的制造或购买决策考虑了 WiFi 认证等定性因素和材料清单成本和上市时间等定量因素。 在现成硬件或自定义设计之间进行选择会影响 IoT 设备成本和上市时间。

  • 现成设备的每单位成本可能更高,但成本和提前期是可预测的。 现成的设备也不再需要复杂的供应链管理。

  • 自定义设备可以降低单位成本,但涉及开发时间,并产生非重复性工程成本,例如设计、测试、认证提交和制造。

  • 预先认证的系统组件或模块可以减少上市时间并创建半自定义设备,但比离散芯片更昂贵。 需要正确地为供应链和库存管理提供资源。

Azure 认证设备目录提供可与 Azure IoT 配合使用且有助于降低成本和缩短上市时间的设备。 你将专注于设计和构建 IoT 解决方案,并灵活地从广泛的认证设备列表中选择硬件。 IoT 即插即用设备可以降低设备和云开发成本。 选择 Azure 认证设备时,可以直接跳过设备自定义和集成,直接加入 IoT 解决方案。

显示即插即用方法节省成本的图形。

Lambda 体系结构模式

IoT 解决方案通常使用云中的热/暖/冷 Lambda 体系结构模式。 使用性能更高的边缘设备或 Azure IoT Edge运行时时,此模式也适用于边缘。 在边缘优化此模式可降低整体解决方案成本。 可以选择最经济高效的服务进行云数据引入和处理。

  • 热路径处理包括准实时处理、进程警报或边缘通知。 可以使用Azure IoT 中心事件流来处理云中的警报。

  • 暖路径处理包括使用边缘上的存储解决方案,例如开源时序数据库或 Azure SQL Edge。 Azure SQL Edge 包括边缘流处理功能和时序优化存储。

  • 冷路径处理包括批处理重要性较低的事件,以及通过 Azure Blob 存储 模块使用文件传输选项。 与通过IoT 中心流式传输相比,此方法使用成本更低的数据传输机制。 冷数据到达 Azure Blob 存储后,有许多选项可用于处理云中的数据。

设备安全性

设备预配服务 (DPS) 和 IoT Central 的两IoT 中心都支持使用对称密钥、受信任的平台模块 (TPM) 证明和 X.509 证书进行设备身份验证。 每个选项都有一个相关的成本因素。

  • X.509 证书是向Azure IoT 中心进行身份验证的最安全选项,但证书管理成本可能很高。 缺少证书生命周期管理规划会使证书成本变得更高。 通常,你与提供 CA 和证书管理解决方案的第三方供应商合作。 此选项需要使用公钥基础结构 (PKI) 。 选项包括自托管 PKI、第三方 PKI 或 Azure Sphere 安全服务,该服务仅适用于 Azure Sphere 设备。

  • 具有 X.509 证书的 TPM 提供了额外的安全层。 DPS 还支持通过 TPM 认可密钥进行身份验证。 main成本来自硬件、潜在的开发板重新设计和复杂性。

  • 对称密钥身份验证是最简单且成本最低的选项,但必须评估对安全性的影响。 你需要保护设备和云中的密钥,而将密钥安全地存储在设备上通常需要一个更安全的选项。

查看与其中每个选项相关的成本,并平衡可能更高的硬件或服务成本与提高的安全性。 与制造过程的集成也会影响总体成本。

有关详细信息,请参阅 Azure IoT 设备制造商的安全做法

Azure RTOS

Azure RTOS 是适用于设备的嵌入式开发套件。 Azure RTOS 包括一个小型但功能强大的操作系统,可为资源受限的设备提供可靠、超快的性能。 Azure RTOS 易于使用,已部署在超过 100 亿台设备上。 Azure RTOS 支持最常用的 32 位微控制器和嵌入式开发工具,因此你可以充分利用现有的设备生成器技能。

Azure RTOS 免费用于使用 预授权硬件进行商业部署。 Azure RTOS 附带 Azure IoT 云功能以及设备更新和安全性等功能。 这些功能有助于降低设备和云开发成本。

Azure RTOS 经过安全认证,有助于减少为医疗、汽车和制造业等特定垂直行业构建合规设备的时间和成本。

LPWAN 设备

如果 LPWAN 设备(如 LoRaWAN、NB-IoT 或 LTE-M)已连接到另一个 IoT 云, 则 Azure IoT Central 设备网桥 可以帮助桥接到 Azure IoT Central。 使用 Azure IoT Central 设备网桥,可以专注于添加行业知识并评估解决方案,而不会产生更改现有设备的成本。

构建企业就绪解决方案时,需要考虑将 LPWAN 设备与Azure IoT 中心集成的成本。

Azure Sphere

Azure Sphere 是一个安全的端到端 IoT 解决方案平台,具有适用于连接 Internet 的设备的内置通信和安全功能。 Azure Sphere 包括一个安全、连接的交叉微控制器单元 (MCU) 、一个基于 Linux 的自定义高级操作系统 (OS) ,以及一个基于云的安全服务,可提供持续、可续订的安全性。 Azure Sphere 减少了构建和维护从设备到云的安全环境的工作量。

Azure Sphere 在基于 X.509 的 PKI、用户应用更新、错误报告以及超过 10 年的设备管理的基础上,提供 10 年的 OS 更新和零日可续订安全性,无需额外付费。 Azure Sphere 可降低使数百万台设备保持最新且具有最新安全性的运营成本。

Azure Stack

Azure Stack 解决方案 将 Azure 服务和功能扩展到 Azure 数据中心以外的环境,例如本地数据中心或边缘位置。 Azure Stack 解决方案包括 Azure Stack Edge 和 Azure Stack HCI。

  • Azure Stack Edge 是 Azure 托管的设备,非常适合边缘位置的硬件加速机器学习工作负载。 Azure Stack Edge 在容器等新式技术堆栈上运行,因此部署在边缘位置的 Azure Stack Edge 可以为多个工作负载提供服务。 在工作负载之间共享计算能力可降低 TCO。

  • Azure Stack HCI 是一个专用的超融合解决方案,具有本机 Azure 集成。 Azure Stack HCI 提供可缩放虚拟化来托管 IoT 解决方案。 虚拟化带来了额外的优势,例如安全性、可伸缩性和灵活的环境,这可以通过与其他工作负载共享硬件来降低 TCO。 Azure Stack HCI 提供的计算能力比 Azure Stack Edge 更多,非常适合行业流程转换。

Azure Stack 解决方案将 Azure 功能引入边缘,但硬件大小调整会限制总计算能力。 确定用例和估计的计算能力,并考虑大小调整,以将成本与性能需求相匹配。

Azure 公共或专用 MEC

IoT 设备可以生成大量数据,并且也可能对低功耗和低成本有很强的要求。 小型、价格低廉的 IoT 设备设计用于一项或几项任务,例如收集传感器或位置数据,以及卸载这些数据以供进一步处理。

Azure 公共专用 多接入边缘计算 (MEC) 和 5G 有助于优化从设备卸载数据的成本。 基于 MEC 的 IoT 解决方案支持在边缘(而不是在设备或云中)进行低延迟数据处理。 云的延迟为 1-5 毫秒,而不是典型的 100-150 毫秒。 基于 MEC 的 IoT 解决方案非常灵活,设备本身成本低廉,只需最少的维护即可运行,并且使用更小、更便宜、更持久的电池。 MEC 将数据分析、AI 和优化功能保留在边缘,使 IoT 解决方案简单且成本低廉。

除了充当 IoT 工作负载的边缘处理、计算和 5G 通信设备外,MEC 还作为通信设备为其他工作负载提供服务,以建立与公有云或远程站点的高速连接。

Azure IoT Edge

Azure IoT Edge 具有用于高消息量的内置功能。 具有网关功能的 Azure IoT Edge托管设备可以通过本地处理和边缘方案来降低网络成本并最大程度地减少消息数。

避免使用许多小消息的设备到设备或模块到模块边缘通信或设备到云的交互。 使用内置的消息批处理功能将多个遥测消息发送到云。 这些功能有助于降低使用IoT 中心的成本。 减少每日消息数和每秒设备到云操作数,可以在IoT 中心中选择较低的层。 若要了解详细信息,请参阅延伸IoT Edge性能限制

若要降低数据交换成本,可以将 Azure Stream AnalyticsAzure Functions 等 Azure 服务部署到IoT Edge。 Azure Stream Analytics 和 Azure Functions 可以在边缘聚合和筛选大量数据,并仅将重要数据发送到云。 IoT Edge上的Azure Blob 存储可以减少通过网络传输大量数据的需求。 边缘存储可用于在将数据发送到云之前转换和优化大量数据。

适用于开放协议(如 OPC 发布服务器Modbus)的免费 Azure IoT Edge模块有助于以最少的开发来连接各种设备。 如果上传性能至关重要,则从供应商处选择经过验证的IoT Edge模块比生成自定义模块更具成本效益。 可以从Azure 市场搜索和下载IoT Edge模块。

引入和通信层

云 IoT 网关是设备和云服务之间的桥梁。 作为云平台的前端服务,网关可以通过协议转换聚合所有数据,并提供与设备的双向通信。

设备到 IoT 网关通信需要考虑许多因素,例如设备连接、网络和协议。 了解 IoT 通信协议、网络类型和消息传送模式有助于设计和优化经济高效的体系结构。

对于设备连接,请务必指定网络类型。 如果选择专用 LAN 或 WAN 解决方案(如 WiFi 或 LoraWAN),请考虑将网络 TCO 作为总成本的一部分。 如果使用 4G、5G 或 LPWAN 等运营商网络,则包括定期连接成本。

IoT 解决方案平台

若要为企业构建 IoT 解决方案,通常使用托管应用平台方法评估解决方案,并使用平台服务生成企业就绪解决方案。

  • 借助平台服务,可以微调服务并控制总体成本。 它为自定义且灵活的 IoT 应用程序提供所有构建基块。 连接设备以及引入、存储和分析数据时,可以选择和编写更多的选项。 Azure IoT 平台服务包括Azure IoT 中心Azure 数字孪生的产品。

  • Azure IoT Central 是一个托管应用平台,可让你通过减少实现结果所需的决策数来快速评估 IoT 解决方案。 IoT Central 会处理解决方案中的大多数基础结构元素,因此你可以专注于添加行业知识和评估解决方案。

IoT 中心层

大多数 IoT 解决方案要求设备和云之间的双向通信才能完全正常运行且安全。 基本IoT 中心层提供核心功能,但不包括双向控制。 对于某些早期的解决方案实现,可以使用基本层来降低成本。 随着解决方案的进展,可以切换到标准层来优化安全信道,以降低云到设备的消息传送成本。 有关详细信息,请参阅选择适用于解决方案的 IoT 中心层

IoT 中心消息大小和频率

消息传送成本在很大程度上取决于设备 聊天性和 消息大小。 聊天设备每分钟向云发送许多消息,而相对安静的设备仅每小时或更多一次发送数据。 避免使用许多小消息的设备到云交互。 有关设备聊天性和消息大小的Clarity有助于降低过度预配(导致未使用的云容量)或预配不足(导致缩放挑战)的可能性。 请考虑消息有效负载的大小和频率,以确保基础结构的大小正确且可供缩放。

避免使用许多小消息的云到设备交互。 例如,将多个设备或模块孪生更新分组到具有自身限制的单个更新中。 请注意每日配额使用的消息大小,对于非免费IoT 中心层,为 4K 字节。 发送较小的消息会留下一些未使用的容量,而较大的消息按 4 KB 区块收费。

使用单个直接方法获取直接反馈。 使用单个设备或模块孪生状态更新以异步方式交换配置和状态信息。

提示

可以使用 Azure IoT 中心 上的 Microsoft Defender for IoTDefender for IoT 微代理来监视聊天交互。 对于超过特定阈值的设备到云或云到设备的交互,可以创建IoT 中心自定义警报

如果消息大小对成本管理至关重要,那么对于设备生命周期长或大型部署,减少开销尤其重要。 减少此开销的选项包括:

  • 使用较短的设备 ID、模块 ID、孪生名称和消息主题来减少 MQTT 数据包中的有效负载。 MQTT 有效负载类似于 devices/{device_id}/modules/{module_id}/messages/events/
  • 缩写固定长度开销和消息。
  • 压缩有效负载,例如使用 Gzip。

IoT 中心消息配额和限制

IoT 中心层具有不同的大小,具有特定的配额和操作限制。 了解IoT 中心限制和配额,以优化设备到云和云到设备的消息传送成本。

例如,标准 S1 层的每日配额为 400,000 条消息。 基于以下几个因素,4 KB 区块的费用增加:

  • 一条设备到云 (D2C) 消息最大可以为 4 KB。
  • 超过 4 KB 的 D2C 消息按 4 KB 的区块收费。
  • 小于 4 KB 的消息可以使用 Azure IoT SDK SendEventBatchAsync 方法优化设备端的批处理。 例如,在边缘捆绑最多四条 1 KB 的消息,每日计量增加一条消息。 批处理仅适用于 AMQP 或 HTTPS
  • 大多数操作(例如云到设备的消息或设备孪生操作)也会以 4 KB 区块的形式对消息收费。 所有这些操作都会增加消息的每日吞吐量和最大配额。

有关详细的定价示例,请查看Azure IoT 中心定价信息文档

除了每日消息配额外,服务操作还有限制。 IoT 中心成本优化的关键部分是优化消息配额和操作限制。 以每秒操作数或每秒字节的形式研究限制之间的差异。 有关详细信息,请参阅 IoT 中心配额和限制

不同的限制适用于不同的IoT 中心操作。 设备到云操作的每秒操作数限制取决于层。 除了按 4 KB 区块计量的消息大小外,还要考虑操作数。 边缘上的批处理使你能够在单个操作中发送更多消息。

2 KB 的单个消息、10 KB 的批处理消息或 256 KB 的批处理消息仅算作单个操作,使你无需达到限制即可向终结点发送更多数据。

IoT 中心自动缩放

动态调整IoT 中心单位数有助于在消息量波动时优化成本。 可以实现自动缩放服务,该服务可自动监视和缩放IoT 中心服务。 有关实现自动缩放功能的可自定义示例,请参阅自动缩放Azure IoT 中心。 可以使用自己的自定义逻辑来优化IoT 中心层和单位数。

用于缩放的部署标记

部署标记 是用于灵活部署策略、可预测规模和成本的常见设计模式。 此模式为 IoT 解决方案提供了多个优势,例如对设备组进行异地分布、将新功能部署到特定标记以及观察每个设备的成本。 有关详细信息,请参阅 使用部署标记缩放 IoT 解决方案

设备管理和建模层

管理设备是一项协调复杂流程的任务,例如供应链管理、设备清单、部署、安装、操作就绪情况、设备更新、双向通信和预配。 设备建模可以降低管理成本和消息传递流量。

IoT 即插即用

若要减少 TCO,请考虑在选择平台时使用扩展用例。 IoT 即插即用,解决方案构建者无需任何手动配置即可将设备与 IoT 中心 或 Azure 数字孪生集成。 IoT 即插即用使用数字孪生定义语言 (DTDL) V2。 两者都基于 JSON-LD 和 RDF 等开放 W3C 标准,因此在不同的服务和工具中更易于采用。

使用 IoT 即插即用 和 DTDL 不产生额外费用。 IoT 中心、Azure 数字孪生和其他 Azure 服务的标准费率保持不变。

有关详细信息,请参阅如何将现有设备转换为IoT 即插即用设备

IoT 中心 DPS

IoT 中心 DPS 是一项适用于IoT 中心的帮助程序服务,无需人工干预即可将低成本、零接触、实时预配到正确的 IoT 中心。 DPS 支持安全且可缩放地预配数百万台设备,以减少错误和成本。

DPS 支持低接触或无接触设备预配,因此无需在现场训练和派人。 使用 DPS 可降低卡车卷的成本,以及用于训练和配置的时间。 DPS 还降低了手动预配导致的错误风险。

DPS 通过注册分配策略、零接触预配、初始配置设置、重新预配和取消预配支持IoT 中心的设备生命周期管理。 有关详细信息,请参阅:

资产和设备状态建模

比较多个设备拓扑和实体存储(例如 Azure Cosmos DB、Azure 数字孪生和 Azure SQL 数据库)之间的成本差异。 每个服务都有不同的成本结构,并为 IoT 解决方案提供不同的功能。 根据所需的使用情况,选择最经济高效的服务。

  • Azure 数字孪生 可以为资产管理、设备状态和遥测数据实现基于图形的 IoT 环境模型。 可以使用 Azure 数字孪生作为工具,通过实时 IoT 数据流对整个环境建模,并合并来自非 IoT 源的业务数据。 可以构建自定义本体,或使用基于本体的标准(如 RealEstateCore、CIM 或 NGSI-LD)来简化与第三方的数据交换。 Azure 数字孪生采用 按使用付费的定价模型 ,不收取固定费用。

  • Azure Cosmos DB 是一种全球分布式多模型数据库。 成本受存储和吞吐量的影响,以及区域或全球分布式和复制数据选项。

  • Azure SQL数据库是设备和资产建模的有效解决方案。 SQL 数据库有多个定价模型来帮助你优化成本。

资产部署模型

可以使用不同的体系结构部署边缘解决方案:多个终结点、IoT 设备、直接连接到云,或者通过边缘和/或云网关连接。 采购边缘设备的不同选项可能会影响 TCO 和上市时间。 设备群的持续维护和支持也会影响整体解决方案成本。

在给定的 IoT 解决方案中存储和处理数据会影响许多因素,例如延迟、安全性和成本。 分析每个用例,检查使用边缘处理和数据存储最有意义的位置,以及它如何影响成本。 在边缘存储和处理数据可以节省存储、运输和处理成本。 但是,考虑到规模,云服务通常是更好的选择,因为成本和开发开销。

Azure 定价计算器是比较这些选项的有用工具。

事件处理和分析层

事件处理和分析层的用途是启用数据驱动的决策。 事件计时和分析的用途是需要考虑的关键因素。 正确的服务选择可提高体系结构效率并降低处理数据和事件的成本。

根据要求,为 IoT 数据分析实现热、暖或冷路径处理。 Azure IoT 参考体系结构可帮助你了解这些分析路径之间的差异,并查看每个路径上的可用分析服务。

若要开始,请确定哪些类型的数据通过热路径、暖路径或冷路径:

  • 热路径数据保存在内存中,并近乎实时地进行分析,通常使用流处理。 输出可能会触发警报或写入分析工具可以立即查询的结构化格式。
  • 暖路径数据(例如最后一天、一周或一个月)保存在可立即查询的存储服务中。
  • 冷路径历史数据保存在成本较低的存储中,以便批量查询。

显示热分析路径、暖分析路径和冷分析路径的关系图。

存储层

IoT 解决方案的目标之一是向最终用户提供数据。 请务必了解存储类型、容量和定价,以创建用于优化存储成本的策略。

存储类型

选择用于遥测的存储库取决于 IoT 数据的用例。 如果目的只是监视 IoT 数据,并且卷较低,则可以使用数据库。 如果方案包含数据分析,则应将遥测数据保存到存储中。 对于时序优化、仅追加存储和查询,请考虑专用的解决方案,例如 Azure 数据资源管理器

存储和数据库不是互斥的。 这两种服务可以协同工作,尤其是使用定义完善的热分析路径、暖分析路径和冷分析路径。 Azure 数据资源管理器和数据库通常用于热路径和暖路径方案。

对于 Azure 存储,考虑数据生命周期因素(如访问频率、保留要求和备份)也很重要。 Azure 存储可帮助你定义数据生命周期,并自动执行将数据从热层移动到其他层的过程,从而降低长期存储成本。 有关详细信息,请参阅 配置生命周期管理策略

数据库解决方案

对于数据库功能,通常会在 SQL 解决方案和无 SQL 解决方案之间进行选择。 SQL 数据库最适合具有简单数据转换或数据聚合要求的固定架构遥测。 若要了解详细信息,请参阅 Azure 上的数据库类型

Azure SQL Database 和 TimescaleDB for PostgreSQL 是 SQL 数据库的常见选择。 有关详细信息,请参阅以下文章:

如果数据最好表示为没有固定架构的对象或文档,则 no-SQL 是更好的选择。 Azure Cosmos DB 提供多个 API,例如 SQL 或 MongoDB。 对于任何数据库,分区和索引策略对于性能优化和减少不必要的成本都很重要。 有关详细信息,请参阅:

Azure Synapse Analytics 是一种新式 Azure 数据仓库。 Synapse Analytics 按 Data Warehouse 单位 (DWU) 进行缩放,应选择适当的容量来处理解决方案要求。 根据用例,可以在没有作业运行时暂停计算,以降低运营成本。

传输层

传输层在其他层之间传输和路由数据。 当数据在层和服务之间传输时,协议的选择会影响成本。 现场网关、行业开放协议和 IoT 网络选择等用例也会影响传输层的成本。

若要减少传输大小和成本, 请选择适合 IoT 设备发送遥测数据的协议。

设备客户端定期向IoT 中心发送保持连接消息。 根据 每个操作的费用,保持连接消息不收取任何费用。 但是,如果没有特定的要求,则无需在遥测中添加 keep-alive 属性。 为提高灵活性,如果使用的是 AMQP 或 MQTT 协议,某些 Azure IoT 设备 SDK 提供了设置这些消息的时间跨度的选项。

对于电池供电的 IoT 设备,可以选择保持连接处于活动状态,也可以在设备唤醒时重新连接。 此选项会影响功耗和网络成本。

重新连接会消耗大约 6 KB 的数据包进行 TLS 连接、设备身份验证和检索设备孪生,但如果设备每天仅唤醒一次或两次,则会节省电池容量。 可以将消息捆绑在一起以减少 TLS 开销。 保持活动状态会消耗数百个字节,但如果设备每隔几小时或更短时间唤醒一次,则保持连接处于活动状态可节省网络成本。

有关 Azure IoT 设备 SDK 中的连接和可靠消息传送功能的高级指导,请参阅使用Azure IoT 中心设备 SDK 管理连接和可靠消息传送。 本指南可帮助你降低处理设备和 Azure IoT 服务之间意外行为的成本。

DPS 降低了从零接触预配到停用的设备生命周期管理成本,但连接到 DPS 会消耗 TLS 和身份验证的网络成本。 为了减少网络流量,设备应在预配期间缓存IoT 中心信息,然后直接连接到IoT 中心,直到需要重新预配。 有关详细信息,请参阅 从设备发送预配请求

交互和报告层

当 IoT 处理时序数据时,大量设备有许多交互。 报告和可视化实现了此数据的价值。 直观且简化的用户体验和精心设计的数据交互可能会花费大量成本。

Grafana 是一种开源数据可视化工具,可为时序数据提供优化的仪表板。 Grafana 社区提供了可在环境中重复使用和自定义的示例。 可以毫不费力地从时序数据实现指标和仪表板。 Azure 为 Azure Monitor 提供 Grafana 插件

Power BI 等报表和仪表板工具允许快速启动非结构化 IoT 数据。 Power BI 提供直观的用户界面和功能。 可以使用时序数据轻松开发仪表板和报表,以低成本获得安全性和部署的优势。

集成层

与其他系统和服务的集成可能比较复杂。 许多服务都有助于最大限度地提高效率,以优化集成层的成本。

Azure 数字孪生可以将各种系统和服务与 IoT 数据集成。 Azure 数字孪生将所有数据转换为自己的数字实体,因此了解其服务限制和优化点以降低成本非常重要。 设计体系结构时,请查看 Azure 数字孪生服务限制 。 了解功能限制,以帮助有效地与业务系统集成。

使用查询 API 时,Azure 数字孪生按 查询单位 (QU) 收费。 可以跟踪 查询在响应标头中使用的 QU 数。 降低查询复杂性和结果数,以优化成本。 有关详细信息,请参阅 在 Azure 数字孪生中查找 QU 消耗量。

DevOps 层

云平台将资本支出 (CAPEX) 转换为运营支出, (OPEX) 。 虽然此模型提供了灵活性和敏捷性,但你仍然需要一个定义完善的部署和操作模型来充分利用云平台。 精心规划的部署可创建可重复的资产,以缩短上市时间。

云平台为开发人员提供了在数秒内部署资源的敏捷性,但存在意外预配资源或过度预配的风险。 适当的云治理模型可以最大程度地降低此类风险,并帮助避免不必要的成本。

开发环境

开发人员可以利用 Azure 提供的灵活性来优化开发成本。 IoT 中心免费层(每个订阅仅限一个实例)提供标准功能,但限制为每天 8000 条消息。 此层足以用于具有有限数量的设备和消息的早期开发。

对于计算环境,可以为云原生 IoT 解决方案采用无服务器体系结构。 一些适用于 IoT 工作负载的常用 Azure 服务包括 Azure Functions 和 Azure Stream Analytics。 计费机制取决于服务。 某些服务(例如用于实时处理的 Azure Stream Analytics)允许开发人员暂停服务,而不会产生额外费用。 其他服务按使用情况计费。 例如,根据事务数Azure Functions计费。 开发人员可以利用这些云原生功能来优化开发和运营成本。

集成开发环境 (IDE) 加速开发和部署。 某些开源 IDE(如 Visual Studio Code)提供 Azure IoT 扩展,开发人员可以免费开发代码并将其部署到 Azure IoT 服务。

Azure IoT 提供免费 GitHub 代码示例 和指南。 这些示例可帮助开发人员扩展设备、IoT Edge、IoT 中心和 Azure 数字孪生应用程序。 GitHub 还具有在 CI/CD) 环境中实现无缝持续集成和持续部署 (低成本和工作量的功能。 开放源代码项目免费GitHub Actions。 有关详细信息,请参阅 GitHub 计划和功能

成本估算的负载测试

可以使用负载测试来估算端到端 IoT 解决方案的总体成本,包括云服务。 由于 IoT 解决方案使用大量数据,因此模拟器可以帮助进行负载测试。 模拟代码示例(如 Azure IoT 设备遥测模拟器 )可帮助你使用各种参数大规模测试和估算成本。

部署环境

在开发和生产等多个环境中部署工作负载很常见。 通过基础结构即代码 (IaC) ,可以通过重用代码来加速部署并缩短上市时间。 IaC 可帮助避免意外部署,例如不正确的层。 Azure 资源管理器和 Azure Bicep 等 Azure 服务或第三方服务(如 Terraform 和 Pulumi)是常见的 IaC 选项。

可以使用生成和发布管道将 DevOps 部署做法应用于 IoT 解决方案,并将其应用到不同的环境。 有关示例,请参阅 使用 DevOps 管道部署预测性维护解决方案

支持和维护

现场设备的长期支持和维护可能会升级,成为已部署解决方案的最大成本负担。 仔细考虑系统 TCO 对于实现投资回报率 (ROI) 至关重要。

你需要在解决方案的生存期内支持和维护 IoT 设备。 任务包括硬件修复、软件升级、OS 维护和安全修补。 考虑商业软件以及专有驱动程序和协议的持续许可成本。 如果无法进行远程维护,则需要对现场维修和更新进行预算。 对于硬件维修或更换,必须保留合适的备用件。

对于使用手机网络或付费连接媒体的解决方案,请根据设备数量、数据传输的大小和频率以及设备部署位置选择合适的流量套餐。 如果你有服务级别协议 (SLA) ,则需要将硬件、基础结构和经过培训的员工进行经济高效的组合才能满足 SLA。

云治理

云治理对于合规性、安全性和防止不必要的成本至关重要。

  • 通过成本管理 API,可以通过多维分析来探索成本和使用情况数据。 可以创建自定义筛选器和表达式,帮助回答与 Azure 资源消耗相关的问题。 当消耗量达到配置的阈值时,成本管理 API 可以生成警报。 成本管理 API 适用于 IoT CentralIoT 中心DPS

  • 资源标记将标签应用于已部署的资源。 与 Microsoft 成本管理一起,标记基于标签提供有关持续成本的见解。 有关详细信息,请参阅 常见成本分析用法

  • Azure Policy附带内置策略,用于自动标记资源,或在不使用标记的情况下标记资源。 若要了解详细信息,请参阅 为标记符合性分配策略定义。 Azure Policy的另一个用例是防止预配某些层,这有助于防止在开发或生产环境中过度预配。

监视

Azure 订阅中包含的许多工具可帮助组织实现财务治理,并从 IoT 服务中获得更多价值。 这些工具有助于通过单个统一视图跟踪资源使用情况和管理所有云的成本。 可以访问丰富的运营和财务见解,以做出明智的决策。

遥测日志记录通常使用 Azure Monitor 中的 Log Analytics 工作区。 Log Analytics 包含 5 GB 的存储空间,前 30 天的保留期是免费的。 根据业务需求,可能需要更长的保留期。 查看并确定适当的保留期,以避免意外成本。

Log Analytics 提供用于以交互方式查询日志的工作区环境。 可以定期将日志导出到外部位置(例如 Azure 数据资源管理器),也可以将日志存档到存储帐户中,以便使用成本更低的存储选项。 有关详细信息,请参阅 在 Azure Monitor 中监视使用情况和估计成本

Azure 顾问

Azure 顾问是个性化的云顾问程序,可帮助遵循最佳做法来优化 Azure 部署。 顾问会分析资源配置和使用情况遥测数据,并推荐有助于提高成本效益、性能、可靠性和安全性的解决方案。

顾问通过识别空闲和未充分利用的资源,帮助你优化和减少总体 Azure 支出。 可以从顾问仪表板上的“成本”选项卡中获取成本建议。

尽管顾问不提供 IoT 服务的特定建议,但它可以为 Azure 基础结构、存储和分析服务提供有用的建议。 有关详细信息,请参阅 使用 Azure 顾问降低服务成本

后续步骤