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

IoT Edge 铁路维护和安全系统

Azure Blob 存储
Azure Cosmos DB
Azure IoT
Azure IoT Edge
Azure IoT 中心

本文介绍了 Microsoft 和一家大型铁路公司之间的合作,以创建一个物联网(IoT)列车维护和安全解决方案。

体系结构

显示赛道旁平房中的 IoT Edge 模块的解决方案体系结构示意图。Edge 模块使用机器学习来识别故障风险。警报处理程序模块将图像数据上传到 Azure Blob 存储。Azure Edge 中心通过 Azure IoT 中心 将关联的元数据和消息上传到 Azure Cosmos DB 存储。

下载此体系结构的 Visio 文件

数据流

  1. 轨道旁小屋内的网络连接存储 (NAS) 图像文件服务器提供经过处理和分类的列车车轮图像。 每个车轮的三张图片将创建一张拼结图像。
  2. IoT Edge 轮询模块会向 IoT 边缘设备发出警报,指出新图像可供处理。
  3. IoT Edge ML 模块运行第三方 ML 模型,该模型将处理图像并识别需要进一步检查的车轮区域。
  4. IoT Edge 警报处理程序会从具有潜在缺陷的图像开始,将所有图像上传到 Azure Blob 存储,并返回图像 blob URI。
  5. IoT Edge 中心模块将图像 URI 与图像元数据(如设备或车号、轴、时间戳和检测器位置)相关联。 该模块将元数据和警报上传到 Azure IoT 中心。
  6. IoT 中心通过事件中心和 Azure Functions 将元数据发送到 Azure Cosmos DB 数据库。
  7. Azure Cosmos DB 数据库将映像元数据与存储在 Azure Blob 存储中的映像的 URI 相关联。 系统可以使用 Azure Cosmos DB 中的数据进行缺陷识别、趋势分析、预测性维护和 ML 模型重新训练。

组件

此示例使用具有定制工业自动化卡和图形处理单元 (GPU) 的服务器级别硬件在轨道旁小屋内部署 Azure IoT Edge 模块,以确保高性能。

IoT Edge 包含三个组件:

  • IoT Edge 模块是可运行 Azure 组件、第三方组件或自定义组件的容器。

    IoT Edge ML 模块支持 Azure 机器学习模型、第三方 ML 模型或自定义代码。 当前解决方案使用名为 Cogniac 的第三方开源 ML 模型对列车车轮数据进行评分并识别潜在缺陷。 ML 软件使用高置信度和低置信度故障图像的历史样本来再训练其 ML 模型。

  • IoT Edge 运行时包含 IoT 代理和 IoT Edge 中心,并在 IoT Edge 设备上运行,以管理和协调已部署的模块。

  • 基于云的接口支持远程监视和管理。

此系统还使用以下 Azure 云组件:

  • Azure IoT 中心支持安全双向云通信,以及管理和监视 IoT Edge 模块。

  • Azure Blob 存储是适用于云的对象存储。 Blob 存储最适合存储大量非结构化数据,例如此示例中的图像数据。

  • Azure Cosmos DB 是一项完全托管的 NoSQL 数据库服务,响应时间较短,并且具有高可用性和可伸缩性。

备选方法

  • IoT Edge 体系结构使用多个模块,但可以精简为单个模块,具体取决于解决方案性能要求或开发团队结构。

  • 该铁路公司仅拥有推理系统,并依赖于第三方供应商来生成 ML 模型。 ML 模块的黑盒性质会带来一些依赖项风险。 长期解决方案维护需要了解第三方如何治理和共享资产。 当 ML 资产不可用时,系统可将占位符 ML 模块用于未来的活动。

方案详细信息

Azure IoT Edge 使数据处理和存储更靠近数据源。 在边缘处理工作负载可实现快速、一致的响应,且对云连接和资源依赖程度较低。

使机器学习 (ML) 和业务逻辑更靠近数据源,意味着设备可以更快地响应本地更改和关键事件。 当脱机或连接受限时,设备可以可靠地运行。

边缘计算可以结合人工智能 (AI) 和 ML 模型来创建智能边缘设备和网络。 边缘网络可以确定要发送到云作进一步处理的数据,并优先处理紧急数据和重要数据。

铁路公司希望通过提供以下功能,使用 Azure IoT Edge 来提高安全性和效率:

  • 主动识别有缺陷的组件。
  • 维护和维修的预测计划。
  • 持续改进分析和预测。

IoT Edge 解决方案的试点项目是列车车轮运行状况分析系统。 该系统中,超过 4000 个轨道旁检测器持续监视并流式传输公司列车的车轮数据。 检测器:

  • 测量轨道上设备的热量和力。
  • 侦听不可见的车轮承载缺陷或车轮裂缝。
  • 标识缺失或错放的部分。

Azure IoT Edge 模块处理并准实时处理连续流数据。 这些 IoT Edge 模块在轨道旁小屋内的服务器级别硬件上运行,从而可以并行部署其他工作负载。 基于 IoT Edge 的解决方案:

  • 标识有风险的设备。
  • 确定修复紧迫性。
  • 生成警报。
  • 将数据发送到 Azure 云进行存储。

车轮运行状况分析系统提供对可能导致列车脱轨的潜在设备故障的早期识别。 该公司可以使用存储的数据来发现趋势,以及通知规范性维护计划。

可能的用例

该解决方案非常适合运输、电信和制造业。 重点介绍以下方案:

  • 必须保持 99% 或更好的运行时间的电信网络。
  • 工厂的生产质量控制、设备维修和预测性维护。
  • 必须处理很少或没有延迟的实时流式处理数据的运输安全系统。
  • 需要及时安排通知和警报的传输系统。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

本示例有几个注意事项。

Operations

部署的解决方案需要一个 Azure 订阅,该订阅必须有权添加服务主体并能够创建 Azure 资源。 有关详细信息,请参阅容器注册表和服务主体

Azure Pipelines 工作流通过内置的 Azure IoT Edge 任务生成、测试、部署和存档 IoT Edge 解决方案。 该铁路公司在本地托管持续集成/持续部署 (CI/CD) 系统。 下图说明了该部署的 DevOps 体系结构:

DevOps 体系结构示意图。

  1. 在第一个 CI 管道中,将代码推送到 Git 存储库会促使系统生成 IoT Edge 模块,并在 Azure 容器注册表中注册模块映像。

  2. CI 管道完成后会触发 CD 管道,后者会生成部署清单并将模块部署到 IoT Edge 设备。

该部署有三个环境:开发环境、QA 环境和生产环境。 模块从开发环境到 QA 环境以及从 QA 环境到生产环境的升级支持自动和手动门控检查。

生成和部署解决方案时还使用以下工具:

  • Azure CLI
  • 用于生成和部署容器模块的 Docker CE 或 Moby
  • 对于开发,Visual Studio 或 Visual Studio Code 以及 Docker、Azure IoT 和相关语言扩展。

性能

  • 系统需要在 24 小时内保持 99% 的运行时间并提供本地消息传送。 小屋与 Azure 之间最后一英里的连接的服务质量 (QoS) 决定了来自边缘的数据的 QoS。 本地 Internet 服务提供商 (ISP) 控制最后一英里的连接,并且可能不支持通知或批量数据上传所需的 QoS。

  • 此系统不与车轮摄像头和后备数据存储交互,因此无法控制或无法针对摄像头系统故障或图像服务器故障发出警报。

  • 此解决方案无法免除公司和联邦监管机构规定的现有人工检查要求。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

安全和监视是 IoT Edge 系统的考虑因素。 对于本示例:

  • 公司的现有第三方企业解决方案涵盖了系统监视。
  • 轨道旁小屋的物理安全和网络安全已经到位。
  • 默认情况下,从 IoT Edge 到云的连接是安全的。

后续步骤

GitHub 项目:

解决方案学习资源: