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

为媒体构建实时监视和可观测系统

Azure 数据资源管理器
Azure Functions
Microsoft Fabric
Azure Blob 存储
Azure 事件中心

此体系结构介绍一种解决方案,该解决方案提供系统和用户设备遥测数据的准实时监视和可观测性。 它侧重于媒体行业的用例。

体系结构

此图显示了一个体系结构,该体系结构提供系统和用户设备遥测数据的近实时监视和可观测性。

下载此体系结构的 Visio 文件

数据流

客户端设备和应用程序通过 HTTP 和连接器将原始遥测流式传输到 Microsoft Fabric。 事件流引入数据。 Fabric Real-Time Intelligence 功能将遥测数据转换、规范化和持久保存到事件库,这是一个可缩放的时序数据库。 实时智能仪表板提供见解,数据激活器会根据检测到的模式触发自动操作。

以下数据流对应于上图:

  1. 仪表: 检测是通过安装在系统中以监视数据的探测或代理进行的。 这些代理具有各种形式。 例如,在点播视频流式处理平台中,公司可能会使用开放标准 dash.js 从客户那里收集用户体验质量(QoE)指标。

  2. 摄入: 客户端通过对特定于服务的终结点的 HTTP 调用直接引入原始遥测数据。 Azure Functions 处理传入数据。 或者,可以通过外部系统将遥测上传到持久性存储解决方案,例如 Azure Blob 存储或数据湖。 Fabric 事件流提供无代码体验,用于将此数据路由到 Fabric 本机实体,例如事件库或数据激活器。

  3. 转换和持久性: Fabric 使用表更新策略和具体化视图管理数据转换。 eventhouse 存储转换的数据,并支持对大型时序数据集进行高吞吐量分析。 此方法补充了现有的引入机制。 它还为依赖 Azure Functions 和数据资源管理器进行转换和分析的传统管道提供了更集成的可缩放替代方法。

  4. 监控: Fabric 中的实时智能中心集中访问流处理事件和监控数据。 可以使用它可视化指标、设置警报和监视 Fabric 租户的性能。 此体系结构主要侧重于监视具有玩家的应用程序、服务和客户端设备,如图左侧所示。 这些组件生成其他组件引入和分析的遥测信号和操作信号。 它们充当可观测性的核心目标。

  5. 异常检测: 实时智能包括通过数据激活器进行内置 AI 支持的异常检测。 此功能可以自动检测流式处理数据中的异常模式或阈值突破,并触发响应式动作。 这些功能使用机器学习模型实时检测异常,而无需手动配置。 Eventhouses 还支持高级异常情况检测函数,这些函数考虑到季节性、趋势和历史基线。 此功能可跨大型时序数据集实现更准确的上下文感知见解。

组件

  • Blob 存储 是用于非结构化数据的可缩放对象存储服务。 在此体系结构中,Blob 存储存储源自应用程序、服务或外部供应商的原始遥测数据。 如果不需要进一步分析,请将此数据视为暂时性数据。 遥测通过 Fabric 事件流路由到 eventhouse。 可以使用 Fabric 原生功能来转换和保存数据,以便进行高吞吐量分析。

  • Azure 事件网格 是一种托管事件路由服务,可启用事件驱动的体系结构。 在此体系结构中,事件网格充当可靠的事件传送系统,用于侦听 Blob 存储发布的事件,例如 Blob 创建或删除。 这些事件通过订阅事件网格通知的 Azure 函数触发下游处理。 此集成支持响应式事件驱动的工作流,这些工作流支持基于 Fabric 的更广泛的体系结构中的遥测引入和路由。

  • Azure 事件中心 是一个大数据流式处理平台和事件引入服务,每秒可以接收和处理数百万个事件。 在此体系结构中,事件中心充当事件管道的前门,通常称为事件 引入器。 事件引入器是位于事件发布者和事件使用者之间的组件或服务。 它将事件流的生成与事件的消耗分离。

  • Azure Functions 是一种无服务器计算服务,可用于运行事件触发的代码,而无需显式预配或管理基础结构。 在此体系结构中,Azure Functions 分析并转换通过 HTTP 和 Blob 终结点引入的数据。 遥测数据路由到事件流和事件库,以便进行可缩放的转换和分析。

  • Fabric 事件流是 Fabric 中的一项功能,支持实时事件引入、转换和路由。 在此体系结构中,Fabric 事件流提供了各种源连接器,用于从各种源提取事件数据。 可以使用此方法创建事件数据处理、转换和路由逻辑,而无需编写代码。

  • Fabric eventhouse 是针对时序数据和实时分析工作负荷优化的分析数据库。 在此体系结构中,事件库专为包含结构化、半结构化和非结构化数据的基于时间的流式处理事件量身定做。 可以在多个管道和多个数据格式中从多个源获取数据。 此数据根据引入时间编制索引和分区。

  • 数据激活器 是 Fabric 中的无代码功能,它在检测到更改数据中的模式时自动执行作。 在此体系结构中,数据激活器充当低延迟事件检测引擎,用于在检测到数据源中的特定模式或条件时触发操作。 它监视这些数据源的延迟为子秒,并在数据达到阈值或检测到特定模式时启动作。 这些作包括发送电子邮件或 Teams 通知、启动 Power Automate 流或与外部系统集成。

备选方法

Azure 数据工厂 提供的工具用于生成提取、转换和加载(ETL)工作流,以及从图形用户界面(GUI)跟踪和重试作业。 从引入到持久性的时间,数据工厂的延迟至少为 5 分钟。 如果监视系统可以容忍此滞后时间,请考虑此替代方法。

方案详细信息

组织通常会部署各种大规模技术来解决业务问题。 这些系统和用户设备生成大量遥测数据。

此体系结构基于媒体行业的某种用例。 用于实时视频和点播视频播放的媒体流需要准实时识别和响应应用程序问题。 为了支持这种实时方案,组织需要收集一个庞大的遥测数据集,这需要构建可缩放的体系结构。 收集数据后,必须执行其他类型的分析,如 AI 和异常情况检测,以有效识别此类大型数据集中的问题。

部署大规模技术时,与其交互的系统设备和用户设备会生成大量的遥测数据集。 在传统方案中,组织通过数据仓库系统分析此数据,以生成支持管理决策的见解。 此方法在某些方案中可能适用,但它对流式处理媒体用例的响应能力不够。 若要解决此问题,组织需要对监视服务器、网络和用户设备生成的遥测数据进行实时见解。 监视系统通常检测故障和错误,但几乎实时检测故障是困难的。 此体系结构侧重于解决该问题。

在实时传送视频或点播视频设置中,系统和各种客户端(如移动设备、桌面和电视)生成遥测数据。 解决方案采用原始数据并将上下文与每个数据点相关联。 上下文示例包括地理、用户作系统、内容 ID 和内容分发网络提供程序等维度。 系统收集、转换和保存 Fabric 事件集中的原始遥测数据以供分析。 AI 工具可以解释数据并自动执行观察和警报的手动过程。 数据激活器从 Real-Time Intelligence 中心读取数据,以显示交互式仪表板和触发警报。

注意事项

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

可靠性

可靠性有助于确保应用程序能够履行对客户的承诺。 有关详细信息,请参阅 可靠性的设计评审清单。

即使在 Azure 区域或内容分发网络中断等中断事件期间,业务关键型应用程序也必须保持活动状态。 以下策略(两个主要策略和一个混合策略)支持在系统中构建冗余:

  • 活动/活动: 重复的代码和函数运行。 在故障期间任一系统都可以接管工作。

  • 活动/备用: 只有一个节点充当活动节点或主节点。 如果主节点发生故障,另一个节点仍可接管。

  • 混合: 某些组件或服务使用主动-主动配置,而另一些组件或服务则使用主动-备用配置。

并非所有 Azure 服务都具有内置冗余。 例如,Azure Functions 仅在特定的区域运行函数应用。 有关实施策略的详细信息,具体取决于触发函数的方式(HTTP 与发布/订阅),请参阅 Azure Functions 中的可靠性

Fabric 支持区域冗余可用性区域,其中资源会自动跨区域复制,而无需配置它。 有关 OneLake 中存储数据的跨区域复制的详细信息,请参阅 Fabric 中的可靠性。 你可以根据需求选择加入或退出此功能。

成本优化

成本优化侧重于减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅 成本优化的设计评审清单。

此架构的成本取决于传入遥测事件的数量、在 Blob 存储和 Fabric 事件库中储存原始遥测数据的费用,以及选择 Fabric 容量的专用定价模型或即用即付定价模型。

若要估算总成本,请使用 Azure 定价计算器

性能效率

性能效率是指工作负荷能够高效地缩放以满足用户需求。 有关详细信息,请参阅 性能效率的设计评审清单。

根据传入遥测的规模和频率,Fabric 中的流媒体处理可能会遇到性能约束。 这些约束通常由以下因素产生:

  • 冷启动: 无服务器调用需要在运行函数之前安排和设置环境。 此设置最多需要几秒钟时间。

  • 请求频率: 例如,如果 1,000 个 HTTP 请求到达,但只有单线程服务器可用,则系统无法同时处理所有请求。 若要有效地处理它们,需要通过部署更多服务器来水平缩放。

  • Eventstream 初始化延迟: 当新的数据源激活时,Fabric 事件流管道可能会引入延迟。 这种延迟类似于冷启动。 虽然很简短,但它可能会影响对延迟敏感的场景。

  • 高频率数据突发: 如果成千上万的遥测事件同时到达,单个事件流配置可能不会同时处理它们。 若要保持实时响应能力,必须横向扩展事件流管道并优化跨多个目标的路由规则。

若要缓解这些问题,请在 Fabric SKU 上使用专用容量工作区。 此方法具有以下好处:

  • 通过删除初始化延迟来确保一致的性能

  • 支持水平缩放事件流管道以处理并发引入和转换工作负荷

有关详细信息,请参阅 Fabric Real-Time Intelligence

作者

Microsoft维护本文。 以下参与者撰写了本文。

主要作者:

其他参与者:

若要查看非公开的LinkedIn个人资料,请登录LinkedIn。

后续步骤