远程监视解决方案加速器概述

远程监视解决方案加速器针对远程位置中的多台计算机实现端到端监视解决方案。 该解决方案结合了关键 Azure 服务来提供业务方案的通用实现。 可将其用作自己实现的起点,并可以根据特定的业务要求自定义该解决方案。

本文将逐步讲解远程监视解决方案的一些关键要素,以帮助你了解其工作原理。 这一知识有助于:

  • 排查解决方案中的问题。
  • 规划如何根据具体要求自定义该解决方案。
  • 设计使用 Azure 服务的 IoT 解决方案。

GitHub 上提供了远程监视解决方案加速器代码:

逻辑体系结构

下图概述了 IoT 体系结构上覆盖的远程监视解决方案加速器的逻辑组件:

逻辑体系结构

为何使用微服务?

自 Microsoft 发布第一款解决方案加速器以来,云体系结构已有所演变。 微服务应运而生,经证实能够在不降低开发速度的情况下实现可伸缩性和灵活性。 有多种 Microsoft 服务在内部使用此体系结构模式,且获得了出色的可靠性和可伸缩性。 更新的解决方案加速器将这些知识付诸实践,使我们也能从中受益。

提示

若要详细了解微服务体系结构,请参阅 .NET 应用程序体系结构微服务:由云推动的应用程序革命

设备连接

该解决方案在逻辑体系结构的设备连接部分中包含以下组件:

实际设备

可将实际设备连接到解决方案。 可以使用 Azure IoT 设备 SDK 实现模拟设备的行为。

可以通过解决方案门户中的仪表板预配实际设备。

设备模拟微服务

该解决方案包含设备模拟微服务,使用该微服务可以从解决方案门户模拟设备池以在解决方案中测试端到端流。 模拟设备:

  • 生成设备到云的遥测数据。
  • 响应来自 IoT 中心的云到设备方法调用。

该微服务提供一个 RESTful 终结点用于创建、启动和停止模拟。 每个模拟由一组不同类型的的虚拟设备构成,这些设备可发送遥测数据和响应方法调用。

可以通过解决方案门户中的仪表板预配模拟设备。

IoT 中心

IoT 中心将从实际和模拟设备发送的遥测数据引入到云中。 IoT 中心使遥测数据可供 IoT 解决方案后端中的服务进行处理。

此外,解决方案中的 IoT 中心还可以:

  • 维护一个标识注册表,用于存储允许连接到门户的所有设备的 ID 和身份验证密钥。
  • 代表解决方案加速器在设备上调用方法。
  • 维护所有已注册设备的设备孪生。 设备孪生存储设备报告的属性值。 设备孪生还存储解决方案门户中设置的所需属性,供设备在后续连接时检索。
  • 计划作业,为多个设备设置属性或者在多个设备上调用方法。

数据处理和分析

该解决方案在逻辑体系结构的数据处理和分析部分中包含以下组件:

IoT 中心管理器微服务

解决方案包含用于处理与 IoT 中心之间的交互的 IoT 中心管理器微服务,这些交互包括:

  • 创建和管理 IoT 设备。
  • 管理设备孪生。
  • 在设备上调用方法。
  • 管理 IoT 凭据。

此服务还运行 IoT 中心查询,以检索属于用户定义组的设备。

该微服务提供一个 RESTful 终结点用于管理设备和设备孪生、调用方法和运行 IoT 中心查询。

设备遥测数据微服务

设备遥测数据微服务提供 RESTful 终结点,以便对存储在时序见解中的设备遥测数据进行读取访问。 通过 RESTful 终结点还可以针对存储中的警报定义,对规则和读/写访问实现 CRUD 操作。

存储适配器微服务

存储适配器微服务管理键值对,从而抽象化存储服务语义,并提供了一个简单接口来使用 Azure Cosmos DB 存储任何格式的数据。

值在集合中进行组织。 可以处理单个值,也可以提取整个集合。 复杂数据结构由客户端进行序列化,并作为简单文本有效负载进行管理。

该服务提供一个 RESTful 终结点,用于对键值对实现 CRUD 操作。 值

Azure Cosmos DB

解决方案加速器部署使用 Azure Cosmos DB 存储规则、警报、配置设置和所有其他冷存储。

Azure 流分析管理器微服务

Azure 流分析管理器微服务管理 Azure 流分析 (ASA) 作业,包括设置其配置、启动和停止它们以及监视其状态。

ASA 作业由两个引用数据集进行支持。 一个数据集定义规则,另一个定义设备组。 规则引用数据从设备遥测数据微服务管理的信息生成。 Azure 流分析管理器微服务将遥测数据规则转换为流处理逻辑。

设备组引用数据用于标识应用于传入遥测数据消息的规则组。 设备组由配置微服务进行管理,并使用 Azure IoT 中心设备孪生查询。

ASA 作业将来自已连接设备的遥测数据提供给时序见解以便进行存储和分析。

Azure 流分析

Azure 流分析 是一个事件处理引擎,可用于检查来自设备的大量数据流。

Azure 时序见解

Azure 时序见解存储来自连接到解决方案加速器的设备的遥测数据。 通过它还可在解决方案 Web UI 中显示和查询设备遥测数据。

配置微服务

配置微服务提供一个 RESTful 终结点,用于对解决方案加速器中的设备组、解决方案设置和用户设置实现 CRUD 操作。 它与存储适配器微服务一起用于保持配置数据。

身份验证和授权微服务

身份验证和授权微服务管理被授权访问解决方案加速器的用户。 可以使用任何支持 OpenId Connect 的标识服务提供程序进行用户管理。

Azure Active Directory

解决方案加速器部署使用 Azure Active Directory 作为 OpenID Connect 提供程序。 Azure Active Directory 存储用户信息,并提供证书来验证 JWT 令牌签名。

呈现

该解决方案在逻辑体系结构的呈现部分中包含以下组件:

Web 用户界面是一个 React Javascript 应用程序。 该应用程序:

  • 仅使用 Javascript React,完全在浏览器中运行。
  • 采用 CSS 样式。
  • 通过 AJAX 调用与面向公众的微服务交互。

用户界面呈现了解决方案加速器的所有功能,并与如下所述的其他微服务交互:

  • 用于保护用户数据的身份验证和授权微服务。
  • 用于列出和管理 IoT 设备的 IoT 中心管理器微服务。

用户界面集成 Azure 时序见解资源管理器以实现设备遥测数据的查询和分析。

配置微服务使用户界面可以存储和检索配置设置。

后续步骤

如果想要浏览源代码和开发人员文档,请从以下两个 GitHub 存储库中的一个入手:

详细的解决方案体系结构示意图:

有关远程监视解决方案加速器的更多概念信息,请参阅 自定义解决方案加速器