简介

已完成

云原生应用程序本质上是模块化的,具有松散耦合的自包含组件。 可以使用技术堆栈的任意组合独立开发其中每个组件,同时仍允许它们通过定义明确的编程接口进行交互。 这些组件可能包括 IoT 设备上运行的软件以及一系列 Azure 服务(如 Azure IoT Central、Azure Functions 和 Azure Cosmos DB,它们可用于收集、处理和存储设备遥测)。

在本模块中,你将通过将其组件与 Azure IoT 服务集成并使用 Cosmos DB 提供持久数据存储,来扩展云原生应用程序以提供 IoT 功能。

方案:生成、收集和处理 IoT 遥测

假设你为家用电器制造商 Adatum Corporation 工作。 你领导一个小型开发团队,负责为智能冰箱构建多功能应用。

你的团队开发了一款冰箱库存应用,企业可以用于轻松识别需要重新进货的项。 他们还可以设置此应用,以自动重新排列所需的项。 为此,你使用了 Azure Kubernetes 服务 (AKS) 群集托管的 Node.js 应用,该应用处理来自冰箱的消息并将其发送到管理 Web 应用,并将 Azure Database for PostgreSQL 作为数据存储。

你的团队还设计并实现了使用 Azure IoT Central 进行 IoT 遥测收集和处理的解决方案原型。 此原型将作为扩展 IoT 数据管道(将在本模块中重点介绍)的基础。

由于云原生应用程序的松散耦合性质,因此如果比在容器中运行自己的应用程序更有意义,则可以选择托管数据存储。 在此方案中,需考虑使用托管数据存储,例如用于选择性聚合内容的 Cosmos DB 和用于原始指标的 Azure Blob 存储。 需要评估它们对于流式处理方案的适用性。 根据初始研究,你发现与传统关系数据存储(如 Azure Database for PostgreSQL)相比,Cosmos DB 可提供一系列性能和功能优势。 你还确定了 Azure Blob 存储可以满足高数据吞吐量要求,同时可提供几乎无限的低成本容量。

由于云原生应用程序的松散耦合性质,你的团队可以开发并部署 IoT 服务,而不会影响现有库存服务。

先决条件

  • 基本熟悉 Azure
  • 对云计算有基本了解
  • 基本熟悉编程概念

学习目标

学完本模块后,你将详细了解如何:

  • 介绍 IoT 服务的体系结构和组件。
  • 介绍 Azure Cosmos DB 的特征和功能。
  • 将 Azure 数据存储与 IoT 管道集成。
  • 实现 Azure Cosmos DB 以便处理遥测数据。
  • 分析和管理遥测数据。
  • 将 Web 应用与 IoT 管道集成。