该体系结构使用 AKS 来实现处理大量事务的应用程序的计算群集。 应用程序接收来自服务总线主题或队列的消息中的事务。 主题和队列可以位于不同地理区域中的 Azure 数据中心,多个 AKS 群集可以从中读取输入。
注意
此体系结构适用于一种分批事务处理:在 IBM 大型机上,这通常是通过使用 IBM MQ 系列面向消息的中间件来实现的。
体系结构
下载此体系结构的 Visio 文件。
工作流
图中带编号的圆圈与以下列表中编号的步骤相对应。
- 体系结构使用服务总线主题和队列来组织批处理输入,并将其传递给下游进行处理。
- Azure 负载均衡器是一个第 4 层(TCP、UDP)负载均衡器,可在负载均衡集中定义的运行状况良好的服务实例之间分配传入流量。 对连接进行负载均衡和管理可优化处理。
- AKS 群集工作器节点侦听服务总线队列终结点是否有输入。
- Java 节点使用 Java 消息服务连接到服务总线,使用 Java 接口(如 Java Database Connectivity)连接到其他数据源。 它们根据需要使用其他 Java API。
- 可恢复事务与每个批次步骤的业务代码一起运行。
- 批处理基础结构使用 Azure 加速网络来提高速度。
- Azure Cache for Redis、Azure Cosmos DB 和 Azure 流分析根据需要提供工作存储。
- 永久数据层使用 Azure 数据工厂进行数据集成,并使用 Azure SQL 托管实例(业务关键型性能层)实现高可用性。 永久存储是松散耦合的,便于切换到其他数据库技术,也便于优化存储组织(例如使用分片或分区)。
- 数据解决方案(过渡性和永久性)使用 Azure 存储异地冗余存储 (GRS) 选项来防范灾难性故障。
组件
该体系结构使用以下组件:
- Azure 虚拟网络,它在云中提供了一个安全专用网络。 它可以将虚拟机 (VM) 彼此连接,连接到 Internet,以及连接到本地网络。
- Azure ExpressRoute,它在 Azure 数据中心与本地基础结构之间提供了专用连接。
- Azure Bastion,它提供了对 VM 的私有和完全托管的 RDP 和 SSH 访问。
- Azure 虚拟机,它提供了虚拟化的灵活性,无需再提供和维护托管虚拟机的硬件。 操作系统选项包括 Windows 和 Linux。
- 使用加速网络创建的 VM 可以使用单根 I/O 虚拟化 (SR-IOV),从而大幅提升了网络性能。 有关详细信息,请参阅使用 Azure PowerShell 通过加速网络创建 Windows VM 和单根 I/O 虚拟化 (SR-IOV) 概述。
- Azure 网络接口将 VM 连接到 Internet,以及连接到 Azure 和本地资源。 如此体系结构中所示,可以为每个子 VM 指定其网络接口和 IP 地址。 有关网络接口的详细信息,请参阅创建、更改或删除网络接口。
- Azure 托管磁盘,它是适用于 VM 的高性能、高耐用块存储。 有四种适用于云的磁盘存储选项:超级磁盘存储、高级 SSD、标准 SSD 和标准 HDD。
- Azure Kubernetes 服务 (AKS),这是一项完全托管的 Kubernetes 服务,用于部署和管理容器化应用程序。
- 服务总线,它提供可靠的云消息传递即服务 (MaaS) 和简单的混合集成。
- Azure 负载均衡服务,它提供缩放以实现高可用性和高性能。 此体系结构使用负载均衡器。 它提供低延迟的第 4 层(TCP、UDP)负载均衡功能来均衡 VM 之间和多层混合应用之间的流量。
- Azure Cache for Redis,它是一种快速、完全托管的内存中缓存服务,用于在计算资源之间共享数据和状态。
- Azure Cosmos DB,它是一个快速的 NoSQL 数据库,具有适合任何规模的开放式 API。
- Azure 流分析,它实时分析来自应用程序和设备的快速移动的数据流。
- Azure Databricks,它是一种基于Apache SparkTM 的快速、简单、协作型大数据分析服务。
- Azure SQL,这是一系列 SQL 云数据库,可为整个 SQL 项目组合提供统一的体验,以及从边缘到云的各种部署选项。
- Azure SQL 托管实例,它是 Azure SQL 服务组合的一部分,是云中受管理的、安全且始终保持最新的 SQL 实例。
- 数据工厂,这是一个完全托管的无服务器数据集成解决方案,用于大规模准备和转换所有数据。
- 数据工厂支持 Parquet 文件数据格式。 有关详细信息,请参阅 Azure 数据工厂中的 Parquet 格式。
- Log Analytics 是 Azure 门户中的一个工具,用于对 Azure Monitor 日志进行编辑和运行日志查询。 有关详细信息,请参阅 Azure Monitor 中的 Log Analytics 概述。
- Azure 存储的异地冗余存储 (GRS) 选项,可在主要区域中的单个物理位置将数据同步复制三次,然后将其异步复制到次要区域中的单个物理位置。 有关详细信息,请参阅 Azure 存储冗余。
- Azure Blob 存储,它是一个可大规模缩放且安全的基于 REST 的对象存储,适用于云原生工作负载、存档、数据湖、高性能计算和机器学习。
- Azure 文件存储,它在云中提供简单、安全的无服务器企业级文件共享。 可使用符合行业标准的服务器消息块 (SMB) 和网络文件系统 (NFS) 协议访问共享。
方案详细信息
在 Azure 上,你可以通过使用基于 Microsoft Azure Kubernetes 服务 (AKS) 和 Azure 服务总线的体系结构,实现分批事务处理(例如将付款发布到帐户)。 这种类型的体系结构提供了大量分批处理所需的事务处理速度、缩放和可靠性。
通常情况下,消息在其事务完成之前会一直处于排队状态,以便在出现故障时进行恢复。 此外,还可以将主题和队列复制到其他区域,以便共享工作负载并在某个区域发生故障时继续处理。
可能的用例
此解决方案非常适合金融、教育和科学行业。 此体系结构适用于大量处理分批事务,尤其是可以并行处理的独立事务。 因此,它很可能是用于迁移大型机批处理的候选项。 可能的应用情形包括:
- 处理财务交易,如工资单、订单和付款。
- 处理由科学仪器收集的实验数据。
- 其他大型机的批处理。
注意事项
基于 Azure 架构良好的框架,以下注意事项适用于此解决方案:
可用性
- Azure Site Recovery 灾难恢复服务可防止出现重大中断。 这项服务十分可靠、经济高效,且易于部署。
- VM 的可用性集可确保有足够的 VM 来满足任务关键批处理需求。
- 服务总线、AKS 和 Azure SQL 托管实例提供了跨地理区域的高可用性和可恢复性。
可运行
- Azure 资源管理器模板(ARM 模板)提供了一种配置语言,描述可用于脚本化部署的模板中的资源。 这些模板还提供监视和警报功能。
性能效率
- 该体系结构的设计是为了对独立事务进行并行处理。
- 服务总线、AKS 和其他 Azure PaaS 功能为事务处理、计算和数据存储提供了高性能。
可伸缩性
- 服务总线、AKS 和其他 Azure PaaS 功能可按需动态缩放。
安全性
- 服务总线批处理体系结构中的所有组件都可与 Azure 安全组件配合使用,如 Microsoft Entra ID、虚拟网络和加密。
成本优化
若要估算实现此解决方案的成本,请使用定价计算器。
AKS 群集的自动缩放功能(以及按需提供缩放的其他 Azure 平台即服务 (PaaS) 功能)可将成本降到最低。
下面是具体组件的定价注意事项:
- 大多数企业已经有了 Microsoft Active Directory 实现。 否则,Microsoft Entra ID P1 或 P2 的成本较低。
- Windows VM 定价和 Linux VM 定价取决于计算容量。
- 有关高级 SSD 或超级托管存储磁盘的定价,请参阅托管磁盘定价。
- Azure SQL 数据库无需预付费用;需要为所使用的资源付费。
- 对于 ExpressRoute,需要支付每月端口费用和出站数据传输费用。
- Azure 存储成本取决于数据冗余选项和卷。
- Azure 文件存储定价取决于许多因素:数据量、数据冗余、事务量和使用的文件同步服务器数。
- 有关 SSD 托管磁盘定价,请参阅托管磁盘定价。
- 对于 Site Recovery,需要为每个受保护的实例付费。
- 这些服务在你的 Azure 订阅中是免费的,但你需要为使用量和流量付费:
- 负载均衡器。
- 你的活动运行量决定了数据工厂的成本。
- 对于 Azure 虚拟网络,IP 地址有名义上的收费。
- 出站数据传输量决定了 Azure Bastion 的成本。
后续步骤
- 若要详细了解 AKS,请阅读:Azure Kubernetes 服务解决方案之旅。
- 若要详细了解服务总线,请阅读:服务总线队列、主题和订阅。