你当前正在访问 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 大型机上运行的典型批处理应用程序的体系结构。

在 z/OS 大型机上运行的典型批处理应用程序的关系图。

下载此体系结构的 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 服务重新设计具有附加功能和灵活性的类似应用程序。

使用 Azure 服务重新设计批处理应用程序的关系图。包含多个示例服务。

下载此体系结构的 Visio 文件

工作流

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

    • 使用 Azure Databricks 作业计划程序或 Azure Function 计划程序。
    • 使用 Azure 逻辑应用创建定期批处理任务。
    • 使用存储事件,例如在 Azure Blob 中创建或删除文件或 文件存储
    • 使用基于消息的触发器,例如 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 批处理程序的短时间。 对于这些程序,请使用 Functions、WebJobs 或逻辑应用等 Azure 服务。
  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. 应用程序、OS 和 Azure 资源可以使用代理将日志和指标发送到 Azure Monitor 日志

    • Application Insight 监视已迁移的应用程序。 它会自动检测性能异常,并包括功能强大的分析工具来帮助诊断问题。
    • Azure Log Analytics 有助于存储、索引、查询和从收集的日志数据派生分析。

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

  6. 此层提供用于源代码管理、安全性和输出管理的 Azure 服务。 这些服务可能包括 Azure DevOps 和 Microsoft Entra ID。

组件

网络和标识

  • Azure ExpressRoute:ExpressRoute 允许通过来自连接提供商的专用连接将本地网络扩展到 Microsoft 云。 使用 ExpressRoute,可以建立与 Microsoft 云服务(如 Microsoft Azure 和 Office 365)的连接。
  • 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 可以轻松地将 Spring 微服务部署到 Azure、管理和运行 Spring 微服务。 它支持 Java 和 .NET Core。
  • AKS:AKS 通过将操作开销卸载到 Azure,简化了在 Azure 中部署托管 Kubernetes 群集。
  • Batch:Batch 旨在跨多个 VM 在云中运行常规用途批处理计算,这些 VM 可以根据所执行的工作负荷进行缩放。 它非常适合 ETL 或 AI 用例,其中多个任务并行执行,彼此独立。
  • Functions:使用 Functions 运行小段代码,而无需担心应用程序基础结构。 借助 Functions,云基础结构提供所有 up-to日期服务器,使应用程序保持大规模运行。
  • Azure 应用服务:使用 WebJobs(应用服务的一项功能),可以将可重用的后台业务逻辑编码为 Web 作业。
  • Azure Redis 缓存:可以使用大量后端数据的应用程序可以通过与 Redis 等内存中数据存储集成来扩展和提供高度优化的性能。 Azure Redis 缓存提供 Redis 开源 (OSS Redis) 和 Redis Labs 商业产品(Redis Enterprise)作为托管服务。

存储

Azure 存储提供多层热、冷和存档数据。 这些存储层的有效使用可提供价格到性能的优势。

  • Blob 存储:适用于云原生工作负荷、存档、数据湖、高性能计算和机器学习的可缩放和安全对象存储。
  • Azure 文件存储:简单、安全和无服务器企业级云文件共享。 Azure 文件存储特别适合重新设计大型机解决方案。 它为托管 SQL 存储提供有效的加载项。
  • 表存储:使用大型半结构化数据集快速开发 NoSQL 键值存储。
  • Azure 队列存储:适用于大型工作负荷的简单、经济高效的持久消息队列。
  • Azure SQL:适用于 SQL Server 的 Azure 完全托管的服务系列。 可以在 Azure 虚拟机上的其他 Azure 服务(如 Azure SQL 托管实例或 SQL Server)中有效地迁移和使用关系数据。
  • 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 测试计划:提供集成、计划和探索性测试解决方案。

方案详细信息

大型机主要用于处理大量数据。 批处理是处理大量组合在一起的事务,然后对数据库进行批量更新的方法。 触发后,只需最少的用户交互即可。 例如,大型机系统使银行和其他金融机构能够进行季度末处理和生成报告,例如季度股票或养老金报表。

潜在的用例

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

  • 资源密集型大型机批处理应用程序。
  • 在特定时间(如月末、季度或年份)需要高计算的批处理应用程序。
  • 大型机批处理进程是重复的,而不是资源密集型的,但可能需要外部系统使用。

考虑

这些注意事项实现 Azure Well-Architected 框架的支柱,这是一组指导原则,可用于提高工作负荷的质量。 有关详细信息,请参阅 azure Well-Architected FrameworkMicrosoft。

可靠性

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

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

安全

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

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

成本优化

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

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

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

卓越运营

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

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

性能效率

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

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

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

贡献

本文由Microsoft维护。 它最初由以下参与者编写。

主体作者:

若要查看非公共LinkedIn配置文件,请登录到LinkedIn。

后续步骤

  • 有关详细信息,请联系 datasqlninja@microsoft.com。
  • 请参阅Azure 数据库迁移指南。