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

在 Azure 上重新设计大型机批处理应用程序

Azure 数据工厂
Azure Databricks
Azure Kubernetes 服务 (AKS)
Azure SQL 数据库
Azure 存储

此参考体系结构展示了如何使用 Azure 重新设计 z/OS 大型机批处理应用程序,以在云中使用 Azure 提供安全、可缩放且高度可用的系统。 由于业务需求不断变化,数据和应用程序需要在不影响你的基础结构的前提下进行交付和扩展。 对云进行重新设计可以帮助金融、健康、保险和零售行业的企业最大程度地缩短其产品或功能交付时间,同时降低成本。

大型机体系结构

第一个图展示了在 z/OS 大型机上运行的典型批处理应用程序的体系结构。

Diagram of a typical batch application running on a z/OS mainframe.

下载此体系结构的 Visio 文件

工作流

  1. 可以在计划的时间,使用操作、规划和控制 (OPC) 计划程序来触发大型机批处理进程。 它们还可以由放置在消息队列中的消息触发,例如宣布创建了一个文件的消息。

  2. 大型机直接访问存储设备 (DASD) 用于存储输入和输出文件;例如,应用程序所需的平面文件。 可以通过在 DASD 存储上创建文件来触发批处理。

  3. 批处理即执行一组作业,例如在内部运行用户或系统程序以执行特定任务的作业。 通常,批处理在没有用户交互的情况下运行。 大型机上的所有批处理作业都在作业执行系统 ​​(JES) 的控制下执行。

  4. 批处理中的程序可以从以下位置读取/写入数据:

    • 基于文件的数据库,例如虚拟存储访问方法 (VSAM)。
    • 诸如 Db2 或 Informix 的关系数据库。
    • 非关系型数据库,如信息管理系统 (IMS)。
    • 消息队列。
  5. 作业执行的输出可以通过 OPC 计划程序或 Tivoli 工作负荷计划程序 (TWS) 进行监视。 JES 中的系统显示和搜索设施 (SDSF) 也在大型机上用于检查作业执行状态。

  6. 管理层提供以下服务:

    • 源代码管理,如 Endevor 或 Changeman。
    • 安全性,如资源访问控制设施 (RACF)。 此安全性为运行批处理、访问文件和访问数据库提供了身份验证。
    • 支持存储和搜索作业执行日志的输出管理。

Azure 体系结构

第二个图展示了如何使用 Azure 服务重新设计具有新增功能和灵活性的类似应用程序。

Diagram of a batch application re-engineered using Azure services. Multiple example services are included.

下载此体系结构的 Visio 文件

工作流

  1. 使用以下触发器之一启动 Azure 批处理进程。

    • 使用“Azure Databricks”作业计划程序或“Azure Function”计划程序。
    • 使用“Azure 逻辑应用”创建定期批处理任务。
    • 使用存储事件,例如在“Azure Blob 存储”或“Azure 文件存储”中创建或删除文件。
    • 使用基于消息的触发器,例如消息到达“Azure 服务总线”。
    • 创建“Azure 数据工厂”触发器。
  2. 使用 Azure Blob 存储或 Azure 文件存储从大型机迁移的文件。 在 Azure 上重新设计的批处理可以从此存储中读取/写入数据。

  3. Azure 提供各种服务来实现大型机批处理工作负载。 根据你的业务需求选择特定服务。 例如,所需的计算能力、总执行时间、将大型机批处理拆分为较小单元的能力以及成本敏感性。

    1. Azure Databricks 是基于 Apache Spark 的分析平台。 作业可以用 R、Python、Java、Scala 和 Spark SQL 语言编写。 它提供了一个群集启动时间短、具有自动终止和自动缩放功能的计算环境。 它与 Azure 存储(如 Azure Blob 存储和 Azure Data Lake Storage)进行了内置集成。 如果需要在短时间内处理大量数据,请使用 Azure Databricks。 如果需要运行提取、转换和加载 (ETL) 工作负载,它也是一个不错的选择。
    2. AKS 和 Service Fabric 提供了一个用于实现基于服务的应用程序体系结构的基础结构。 对于单个应用程序而言,这可能不是经济高效的。 你可以使用 Java Spring Boot 重构大型机应用程序。 在 Azure 上运行 Spring Boot 应用的最佳方式是使用一项完全托管的 Spring 服务:Azure Spring Apps。 Java 开发人员可以使用它在 Azure 上轻松生成和运行 Spring Boot 微服务。
    3. 可以使用 .NET 或 Java 重新设计大型机批处理应用程序。 Batch 提供了用于大规模运行此应用程序的基础结构。 它创建和管理虚拟机 (VM) 池,安装应用程序,然后计划要在 VM 上运行的作业。 没有要安装、管理或缩放的群集或作业计划程序软件。 使用 Windows 或 Linux 支持的任何编程语言编写应用程序。
    4. 可以重新设计短期运行的 COBOL 或 PL/1 批处理程序。 对于这些程序,请使用 Azure 服务,例如 Functions、WebJobs 或 Logic Apps。
  4. Azure 提供各种数据服务来存储和检索数据。

    • 可以迁移 Db2 和 Informix 等大型机关系数据库,只需对 Azure 关系数据库产品的可见性进行极小程度的更改。 例如,Azure SQL VM、Azure SQL DB 或 Azure SQL MI 等关系数据库服务。 还可以使用任何开源关系数据库管理系统 (RDBMS),例如 Azure PostgreSQL。 Azure 数据库的选择取决于工作负载的类型、跨数据库查询、两阶段提交要求和许多其他因素。
    • 可以将大型机非关系数据库(如 IMS、集成数据管理系统 (IDMS) 或 VSAM)迁移到 Azure Cosmos DB。 Azure Cosmos DB 提供快速的响应时间、自动和即时的可伸缩性以及任何规模的有保证速度。 对于任何大小或规模的不可预测或偶发性工作负载,这是一种经济高效的选择。 开发人员无需计划或管理容量即可轻松入门。
    • 可以使用 Azure Cache for Redis 来加速重新设计的应用程序。
  5. 应用程序、操作系统和 Azure 资源可以使用代理将日志和指标发送到“Azure Monitor 日志”。

    • “应用程序见解”监视已迁移的应用程序。 它将自动检测性能异常,并且包含了强大的分析工具来帮助诊断问题。
    • “Azure Log Analytics”帮助存储、索引、查询分析并从收集的日志数据中派生分析。

    可以使用 Log Analytics 和 Application Insights 的输出来创建警报和仪表板,或导出到外部服务。 还可以使用输出来执行 VM 缩放等操作。

  6. 此层为源控制、安全性和输出管理提供 Azure 服务。 这些服务可能包含 Azure DevOps 和 Microsoft Entra ID。

组件

网络和标识

  • Azure ExpressRoute:使用 ExpressRoute 可通过连接服务提供商所提供的专用连接,将本地网络扩展到 Microsoft 云。 使用 ExpressRoute 可与 Microsoft Azure 和 Office 365 等 Microsoft 云服务建立连接。
  • Azure VPN 网关:VPN 网关是一种特定类型的虚拟网关,用于通过公共 Internet 在 Azure 虚拟网络和本地位置之间发送加密的流量。
  • Microsoft Entra ID:Microsoft Entra ID 是一项身份验证和访问控制管理服务,可以与本地目录同步。

应用程序

  • 逻辑应用:逻辑应用可帮助你创建自动化的重复性任务与过程,并按计划运行。 可以调用 Azure 内部和外部的服务,如 HTTP 或 HTTPS 终结点。 还可以将消息发布到 Azure 服务总线等 Azure 服务,或将文件上传到文件共享。
  • 服务总线:可以使用服务总线在用户界面和后端服务之间进行消息传递。 此系统可以分离应用程序和服务,并提高可靠性和使用率。
  • Azure Databricks:Azure Databricks 是一种基于云的数据工程工具,用于处理和转换大量数据。 然后可以通过机器学习模型探索这些数据。
  • Azure Spring Apps:使用 Azure Spring Apps 可以轻松地在 Azure 中部署、管理并运行 Spring 微服务。 它支持 Java 和 .NET Core。
  • AKS:AKS 通过减少 Azure 的运营开销,简化了在 Azure 中部署托管 Kubernetes 群集的过程。
  • Batch:Batch 旨在跨多个 VM 在云中运行常规用途批量计算,这些 VM 可以根据正在执行的工作负载进行扩展。 它非常适合 ETL 或 AI 用例,其中,多个任务并行执行且彼此独立。
  • Functions:使用 Functions 运行小段代码,且不需要担心应用程序基础结构。 借助 Functions,云基础结构可以提供应用程序保持规模化运行所需的所有最新状态的服务器。
  • Azure 应用服务:借助应用服务的 WebJobs 功能,可以将可重用的后台业务逻辑编码为 Web 作业。
  • Azure Cache for Redis:可以通过与 Redis 等内存数据存储集成,开发使用大量后端数据的应用程序,以扩展并提供高度优化的性能。 Azure Cache for Redis 提供 Redis 开放源代码 (OSS Redis),还提供 Redis 实验室的一款商业产品 Redis Enterprise 作为托管服务。

存储

Azure 存储提供多层热数据、冷数据和存档数据。 有效地使用这些存储层可以为你带来性价比优势。

  • Blob 存储:可缩放且安全的对象存储,适用于云原生工作负载、存档、数据湖、高性能计算和机器学习。
  • Azure 文件存储:简单、安全且无服务器的企业级云文件共享。 对于重新设计的大型机解决方案,Azure 文件存储特别有用。 它为托管的 SQL 存储提供了一个有效的附加产品。
  • 表存储:用于使用大型半结构化数据集进行快速开发的 NoSQL 键值存储。
  • Azure 队列存储:简单、经济高效、持久的消息队列,适用于大型工作负载。
  • Azure SQL:Azure 适用于 SQL Server 的完全托管服务系列。 可以通过其他 Azure 服务(例如 Azure SQL 托管实例、Azure 虚拟机上的 SQL Server 和 Azure Database for MariaDB)有效地迁移和使用关系数据。
  • Azure Cosmos DB:一种非 SQL 产品,可用于从大型机迁移非表格数据。

监视

  • Azure Monitor:Azure Monitor 提供了一个全面的解决方案,用于从云和本地环境收集、分析和处理遥测数据。 它包含 Application Insights、Azure Monitor 日志和 Azure Log Analytics 功能。

管理

  • Azure DevOps:在软件开发和团队协作的每个阶段在 Azure 上重新设计大型机应用程序。 DevOps 提供以下服务:

    • Azure Boards:敏捷计划、工作项跟踪、可视化和报告工具。
    • Azure Pipelines:支持容器或 Kubernetes 的与语言、平台和云无关的 CI/CD 平台。
    • Azure Repos:提供云托管的专用 git 存储库。
    • Azure Artifacts:提供集成的包管理,支持来自公共源或专用源的 Maven、npm、Python 和 NuGet 包源。
    • Azure Test Plans:提供一个集成的计划内探索测试解决方案。

方案详细信息

大型机主要用于处理大量数据。 批处理是一种处理大量事务的方式,这些事务组合在一起,然后对数据库进行大容量更新。 一旦触发,它们需要微乎其微的用户交互,甚至不需要用户交互。 例如,大型机系统使银行和其他金融机构能够执行季度末处理并生成报表,比如季度股票或退休金结算单。

可能的用例

该解决方案非常适合金融、保险、医疗保健和零售行业。 使用此体系结构在 Azure 上重新设计大型机应用程序。 此体系结构最适合:

  • 占用大量资源的大型机批处理应用程序。
  • 在特定时间内需要高计算的批处理应用程序,如月末、季度末或年末。
  • 重复且不占用大量资源,但可能需要被外部系统利用的大型机批处理进程。

注意事项

可用性

  • 本文中的批处理体系结构使用多节点计算或提供高可用性的 PaaS 服务。
  • Azure 数据库服务支持区域冗余,你可以将它们设计为在出现中断或在维护时段期间故障转移到辅助节点。

可伸缩性

  • 此体系结构中的以下 Azure 服务具有自动缩放功能:

    • Azure Databricks
    • AKS
    • Spring Apps
    • Batch
    • Azure Functions
    • 逻辑应用
  • 有关 Azure 中自动缩放的详细信息,请参阅自动缩放指南

安全性

  • 此参考体系结构使用 ExpressRoute 实现从本地环境到 Azure 的专用有效连接。 但是,还可以创建站点到站点 VPN
  • 可以使用 Microsoft Entra ID 对 Azure 资源进行身份验证。 使用基于角色的访问控制 (RBAC) 管理权限。
  • Azure 中的数据库服务支持各种安全选项,例如静态数据加密。
  • 有关设计安全解决方案的详细信息,请参阅 Azure 安全文档

复原

  • 除了 Log Analytics 外,还可以使用 Azure Monitor 和 Application Insights 来监视 Azure 资源的运行状况。 设置警报以主动管理资源运行状况。
  • 有关 Azure 中的复原能力的详细信息,请参阅设计可靠的 Azure 应用程序

成本优化

使用 Azure 定价计算器估算 Azure 资源的成本。

请参阅 Azure 大型机批处理应用程序,了解服务成本估算示例。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

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

后续步骤