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

将 IBM z/OS OLTP 工作负载迁移到 Azure

Azure Front Door
Azure 流量管理器
Azure Kubernetes 服务 (AKS)
Azure Spring Apps
用于 Redis 的 Azure 缓存

在线事务处理 (OLTP) 系统是您企业的门面,因为它们直接与客户互动。 通过迁移到动态适应性的基础设施,您的企业可以快速创建和发布产品,以便客户可以更快地使用您的产品。

建筑

下图显示了在迁移到 Azure 之前在 z/OS 大型机上运行的 OLTP 系统的体系结构:

z/OS 上的 OLTP 体系结构图。

Workflow

以下工作流与上图相对应:

  1. 用户使用 TN3270 和 HTTPS 等标准大型机协议,通过传输控制协议 (TCP) 或 Internet 协议 (IP) 连接到大型机。

  2. 事务管理器与用户交互并调用应用程序以满足用户请求。

  3. 在应用程序层的前端,用户与客户信息控制系统 (CICS) 或信息管理系统 (IMS) 屏幕或网页进行交互。

  4. 事务管理器使用以通用面向业务语言 (COBOL) 或编程语言 1 (PL/I) 编写的业务逻辑来实现事务。

  5. 应用程序代码使用数据层的存储功能,比如 DB2、IMS DB 或 VSAM。

  6. 除了事务处理之外,其他服务还提供身份验证、安全性、管理、监控和报告。 这些服务与系统中的所有其他服务进行交互。

下图显示了如何将此体系结构迁移到 Azure。

显示用于将 z/OS OLTP 工作负载迁移到 Azure 的体系结构的图表。

该图显示了如何将 z/OS OLTP 工作负载迁移到 Azure。 该架构分为几个层,分别代表不同的组件及其交互。 每个图层都使用数字和箭头来突出显示数据流。 第 1 层表示本地用户。 双向箭头将用户与 Azure ExpressRoute 连接起来。 第 2 层表示输入请求。 此层包含两个框,这两个框由标记为 Azure Web 应用程序防火墙的虚线双向箭头连接。 左侧框包含 Azure Front Door 和 Azure 流量管理器的图标。 双向箭头将左侧框与代表 Internet 的图标连接起来。 另一个双向箭头将 Internet 图标与 Microsoft Entra ID 连接起来。 右侧框包含 Azure Application Gateway 和 Azure Load Balancer 的图标。 一个双向箭头将此框与标记为 front 的框连接起来。 标记为 front end 的框位于应用程序层内部。 它包含 Azure API 管理、Azure 应用服务、Azure Kubernetes 服务 (AKS) 和 Azure Spring Apps 的图标。 三个虚线的双向箭头将前端框与标记为 business logic的框连接起来。 此框包含 Azure Functions、Azure WebJobs、AKS 和 Azure Spring Apps 的图标。 Azure 服务总线和 Azure 队列存储(异步)的图标位于三个箭头的上方和下方。 双向箭头将应用程序层与缓存层连接起来。 缓存层包含 Azure Cache for Redis。 箭头从缓存层指向监控层。 在此层中,虚线箭头从 Azure Monitor 穿过 Azure Monitor 日志,并传递到一个蓝色框,其中包含标记为 Log Analytics 仪表板和警报的图标。 监视层还包括 Application Insights。 虚线箭头从 Application Insights 指向蓝色框。 另一个箭头从应用程序层指向 Application Insights。 数据层包含两个框。 一个框包含 Azure 表存储和 Azure 文件存储的图标。 另一个框包含 Azure SQL、Azure Cosmos DB、Azure Database for PostgreSQL 和 Azure Database for MySQL。 双向箭头连接数据层和应用程序层。

下载此体系结构的 Visio 文件

  1. 大型机用户熟悉 3270 终端和本地连接。 在迁移的系统中,他们通过公共 Internet 或通过 Azure ExpressRoute 实现的专用连接与 Azure 应用程序交互。 Microsoft Entra ID 提供身份验证。

  2. 输入请求将转到全局负载均衡器服务,例如 Azure Front Door 或 Azure 流量管理器。 负载均衡器可以为地理位置分散的用户群提供服务。 它根据为支持的工作负载定义的规则路由请求。 这些负载均衡器可以与 Azure 应用程序网关或 Azure 负载均衡器协调,以对应用程序层进行负载均衡。 Azure 内容分发网络服务将静态内容缓存在边缘服务器中,以便快速响应。 Web 应用程序防火墙 (WAF) 有助于保护服务。

  3. 应用程序层的前端使用 Azure 服务(如 Azure 应用服务)来实现应用程序屏幕并与用户交互。 这些屏幕是大型机屏幕的迁移版本。

  4. 应用程序层后端的 COBOL 和 PL/I 代码实现业务逻辑。 该代码可以使用 Azure Functions、WebJobs 和 Azure Spring Apps 微服务等服务和功能。 应用程序可以在 Azure Kubernetes 服务 (AKS) 容器中运行。

  5. 内存中数据存储可加速高吞吐量 OLTP 应用程序。 示例包括 In-Memory OLTP(Azure SQL 数据库和 Azure SQL 托管实例的一项功能)和 Azure Cache for Redis。

  6. 数据层可以包括:

    • 使用 Azure 存储实现的文件、表和 Blob。
    • Azure SQL 系列中的关系数据库。
    • PostgreSQL 和 MySQL 开源数据库的 Azure 实现。
    • Azure Cosmos DB,这是一个 NoSQL 数据库。

    这些存储保存从大型机迁移的数据,供应用程序层使用。

  7. Application Insights 和 Azure Monitor 等 Azure 原生服务会主动监控系统的运行状况。 可以使用 Azure 仪表板集成 Azure Monitor 日志。

组件

此体系结构由多个 Azure 云服务组成。 它分为四类资源:联网和身份、应用程序、存储和监控。 以下部分介绍每个资源的服务及其角色。

网络和标识

在设计应用程序架构时,必须优先考虑网络和身份组件,以帮助确保通过公共 Internet 或私有连接进行交互期间的安全性、性能和可管理性。 体系结构中的以下组件对于有效满足此要求至关重要。

  • Azure WAF 是一种 Web 应用程序防火墙,可保护应用程序免受恶意攻击和常见的 Web 漏洞,例如 SQL 注入和跨站点脚本。 在此体系结构中,它通过筛选和检查传入到面向 Web 的服务的流量来保护已迁移的大型机应用程序。

  • 应用程序网关 是第 7 层应用程序传送控制器。 在此体系结构中,它管理 HTTP 流量路由,并为迁移的大型机 Web 应用程序提供负载均衡。

  • Azure Front Door 是具有即时故障转移功能的全局 HTTP 负载均衡器。 在此体系结构中,它加速内容交付,并确保地理分布式大型机用户的高可用性。

    • 内容分发网络 是一种分布式缓存服务,它通过在边缘服务器上存储缓存的副本来优化静态内容传递,从而为用户启用更快的响应时间。 它使用网络优化来改进动态内容的响应。 如果用户群遍布全球,内容分发网络特别有用。 在此体系结构中,它改进了全球边缘位置的大型机屏幕元素和静态资产的性能。
  • ExpressRoute 是专用连接服务,可在本地基础结构与 Azure 之间建立专用连接。 在此体系结构中,它为熟悉需要专用连接的大型机终端连接的用户提供安全的网络访问。

负载均衡器 是一项服务,用于跨多个后端资源分配传入的网络流量,并处理第 4 层 TCP 和 UDP 流量。 在此体系结构中,它会平衡容器化应用程序和微服务的流量,这些流量取代大型机事务处理组件。

  • 流量管理器 是一种基于 DNS 的流量路由服务,可帮助跨多个终结点分配用户请求。 在此体系结构中,它会跨区域终结点分配流量,以优化跨不同地理位置的大型机用户的可用性。

应用程序

Azure 提供的托管服务支持更安全、可扩展和高效的应用程序部署。 上述体系结构使用的应用层服务可以帮助您优化应用程序体系结构。

  • AKS 是容器化应用程序的托管 Kubernetes 服务。 AKS 通过将运营开销卸载到 Azure,简化了 Azure 中托管 AKS 群集的部署。 在此体系结构中,它托管了取代单一大型机事务处理组件(如 CICS 和 IMS)的微服务。

  • 应用程序服务是用于构建、部署和扩展 Web 应用的完全托管服务。 您可以使用 .NET、.NET Core、Node.js、Java、Python 或 PHP 构建应用程序。 这些应用程序可以在容器中运行,也可以在 Windows 或 Linux 上运行。 在大型机迁移中,前端屏幕或 Web 界面可以编码为基于 HTTP 的 REST API。 它们可以根据大型机应用程序进行隔离,并且可以是无状态的,以编排基于微服务的系统。 在此体系结构中,它提供 REST API 和 Web 接口,用于替换 3270 终端屏幕和大型机用户界面。

    • WebJobs 是应用服务的功能,可在与 Web 应用、API 应用或移动应用相同的实例中运行程序或脚本。 Web 作业是实现可共享和可重用程序逻辑的不错选择。 在此体系结构中,它执行以前由大型机作业计划程序处理的批处理任务和 后台任务
  • Azure API 管理 是一个完全托管的平台即服务(PaaS),支持 API 的发布、路由、保护、日志记录和分析。 您可以控制数据的显示和扩展方式以及哪些应用程序可以访问数据。 还可以限制对应用的访问权限,或允许第三方访问。 在此体系结构中,它管理对现代化 API 的访问,这些 API 公开大型机业务逻辑,并控制新应用程序访问旧数据的方式。

  • Azure Cache for Redis 是一种完全托管的内存中缓存服务,用于在计算资源之间共享数据和状态。 它包括开源 Redis 和 Redis Enterprise(Redis Labs 的商业产品)作为托管服务。 可以通过将高吞吐量 OLTP 应用程序设计为可缩放并使用内存中数据存储(如 Azure Cache for Redis)来提高其性能。 在此体系结构中,它加速了高吞吐量 OLTP 工作负荷的数据访问速度,这些工作负荷取代了大型机事务处理系统。

  • Azure Functions 是一项无服务器计算服务。 它提供了一个环境,用于运行小段代码,称为函数,而无需建立应用程序基础结构。 您可以使用它来处理批量数据、集成系统、使用物联网以及构建简单的 API 和微服务。 使用微服务创建连接到 Azure 服务并始终保持最新的服务器。 在此体系结构中,它处理从大型机事务管理器迁移的事件驱动处理和轻型业务逻辑组件。

  • Azure 服务总线是一种可靠的云消息传递服务,可以实现简单的混合集成。 服务总线和存储队列可以将前端与迁移系统中的业务逻辑连接起来。 Azure 服务总线支持分布式系统之间的可靠消息传送。 在此体系结构中,它有助于迁移的大型机组件(以前使用大型机消息传送系统)之间的异步通信。

存储和数据库

此体系结构解决了可缩放且安全的云存储,以及用于迁移大型机数据和支持新式应用程序要求的托管数据库。

  • Azure Cosmos DB 是一项完全托管的 NoSQL 数据库服务,可以使用 Azure Cosmos DB 将大型机、非表格数据迁移到 Azure。 在此体系结构中,它存储从大型机系统(如 VSAM 文件)迁移的非关系数据,并为国际用户群提供全局分发。

  • Azure Database for MySQL 是一项完全托管的 MySQL 数据库服务。 在此体系结构中,它支持在大型机现代化过程中需要开源数据库兼容性的应用程序。

  • Azure Database for PostgreSQL 是一种完全托管、智能且可缩放的 PostgreSQL,它与 Azure 服务建立本机连接。 在此体系结构中,它托管从具有高级索引和分析功能的大型机数据库迁移的关系数据。

  • Azure SQL 是一系列基于云的 SQL 数据库服务。 在此体系结构中,它托管从大型机数据库(如 DB2 和 IMS DB)迁移的关系数据:

    • Azure SQL Edge 是针对 IoT 和边缘部署优化的 SQL Server 数据库引擎的专用版本。 在此体系结构中,它在大型机应用程序已分发到边缘位置的情况下处理靠近边缘设备的数据。

    • SQL 数据库 是一种完全托管的关系数据库服务。 在此体系结构中,它支持对可变大型机事务负载进行弹性缩放的现代化工作负荷。

    • SQL 托管实例 是一个完全托管的基于云的部署选项,提供近 100% SQL Server 兼容性。 在此体系结构中,它托管迁移的大型机数据库,且代码更改最少且内置高可用性。

    • Azure 虚拟机上的 SQL Server 是一种基础结构即服务(IaaS)产品/服务,可提供完整的 SQL Server 功能。 在此体系结构中,它支持在迁移过程中需要特定数据库引擎功能的旧工作负载。

    • In-Memory OLTP 是一项高性能功能,可加速 SQL 数据库和 SQL 托管实例中的事务处理。 在此体系结构中,它提供大型机 OLTP 工作负载所需的高性能事务处理功能。

  • 存储 是一组大规模可缩放且更安全的云服务,用于提供基础云存储服务的数据、应用和工作负载。 在此体系结构中,它支持用于各种大型机数据迁移方案的 Azure 文件Azure 表存储和Azure 队列存储

监测

以下监控工具提供全面的数据分析和对应用程序性能的宝贵见解。

  • Application Insights 是 Azure Monitor 的一项功能,它为应用程序提供代码级遥测。 它监视应用程序,检测异常情况(例如性能平庸和故障),并将个人数据发送到 Azure 门户。 您还可以将 Application Insights 用于日志记录、分布式跟踪和自定义应用程序指标。 在此体系结构中,它跟踪应用程序性能、检测异常,并支持分布式跟踪和自定义指标,以确保可靠性和响应能力。

  • Azure Monitor 是一个全面的平台,用于从 Azure 和本地环境收集、分析和处理遥测数据。 在此体系结构中,它充当监视基础结构、应用程序和服务的中心。

    • Azure Monitor 警报 是 Azure Monitor 的一项功能,在指标或日志超出定义的阈值时通知用户。 在此体系结构中,它们触发自动响应或将问题升级给运营团队,以便及时进行干预。

    • Log Analytics 是 Azure Monitor 中的查询工具,它使用功能强大的语言分析日志数据。 在此体系结构中,它支持深度诊断、支持自定义仪表板,并与警报和工作簿集成以获取作见解。

方案详细信息

由于业务需求和数据不断变化,应用程序必须在不产生基础设施问题的情况下扩展并产生结果。 此示例工作负载演示如何使用 Azure 平台即服务 (PaaS) 服务将 z/OS 大型机 OLTP 应用程序迁移到云中更安全、可缩放且高度可用的系统。 这种迁移有助于金融、健康、保险和零售领域的企业最大限度地缩短应用程序交付时间。 它还有助于降低运行应用程序的成本。

可能的用例

此体系结构非常适合具有以下特征的 OLTP 工作负载:

  • 他们为国际用户群提供服务。

  • 它们的使用量随时间变化很大,因此它们受益于灵活的扩展和基于使用量的定价。

注意事项

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

可靠性

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

  • 您可以在多个区域中部署此 OLTP 体系结构。 它还可以具有异地复制的数据层。

  • Azure 数据库服务支持区域冗余,并且可以在发生中断时故障转移到辅助节点,或者允许进行维护活动。

安全性

安全性提供针对故意攻击和滥用宝贵数据和系统的保证。 有关详细信息,请参阅可靠性设计审查检查表

  • ExpressRoute 从本地环境创建与 Azure 的专用连接。 您还可以使用站点到站点 VPN。

  • Microsoft Entra ID 可以使用 Azure 基于角色的访问控制对资源进行身份验证并控制访问。

  • Azure 中的数据库服务支持各种安全选项,例如静态数据加密。

  • 有关如何设计更安全的解决方案的一般指导,请参阅 安全快速链接

成本优化

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

使用 Azure 定价计算器 估算实施的成本。

卓越运营

卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅设计卓越运营的审查清单

此方案使用 Azure Monitor 和 Application Insights 来监视 Azure 资源的运行状况。 可以设置警报进行主动管理。

性能效率

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

  • 此体系结构使用 Azure PaaS 服务,例如具有自动缩放功能的应用服务。

  • 有关详细信息,请参阅 自动缩放

供稿人

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

主要作者:

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

后续步骤

请参阅以下相关架构和相关技术信息。