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

在 Azure 上重新托管常规大型机

Azure 虚拟机
Azure 虚拟网络
Azure 容器注册表
Azure Kubernetes 服务 (AKS)
Azure Site Recovery

重新托管是在开放系统上完整运行旧版大型机应用程序的一种方法。 这是将应用程序从大型机硬件中取出并在云原生环境中的 Windows 或 Linux 平台上运行它们的最快方法。 用旧语言(如 COBOL 或 PL/1)编写的应用程序代码将按原样迁移,并在新环境中重新编译,无需更改业务逻辑。 重新托管有助于保留应用程序的逻辑。 同时,重新托管可最大程度地降低为新环境重新编码应用程序所带来的风险和成本。

重新托管是解决维护旧式大型机硬件难题的一种经济高效的方法。 重新托管通常称为“直接迁移”,它将任务关键型应用程序和核心应用程序从大型机移出并将它们迁移到云中。 使用此方法时,基础硬件会发生变化,例如从 IBM 大型机更改为 x86。 但是,功能和业务逻辑保持不变。 从最终用户的角度来看,这种迁移最快且影响最小。 应用程序会保留用户熟悉的相同界面和外观。

对于探索云功能的团队,重新托管应用程序是使用云功能(例如自动缩放、托管存储和容器)的好方法。 此体系结构显示了一个常规的重新托管示例,其中突出显示了部署工作负载的两种方法。 可以使用 Azure Kubernetes 服务 (AKS) 或 Azure 虚拟机。 使用哪种方法取决于应用程序的可移植性和你的偏好。

可能的用例

很多场景都可以从在 Azure 上重新托管中获益。 下面是一些可能的用例:

  • 成本优化:你希望大幅降低大型机硬件及其相关许可证或软件的高昂操作和维护成本。
  • 位置无关:你正在规划退出一个数据中心,并希望有一个高度可用、安全和可靠的替代平台来托管你的旧版应用程序。
  • 中断最少:你需要迁移任务关键型大型机应用程序,同时保持日常业务运营的连续性。
  • 对用户的影响最小:将应用程序从旧硬件中移出,但继续为用户提供相同或更好的界面。
  • 可忽略不计的技能提升:应用程序重新托管在云中,无需进行重大代码更改。 它们继续为开发团队提供熟悉的代码库,同时消除了昂贵的开发、测试和新语言重新培训成本。

大型机体系结构

这是预迁移体系结构。

该示意图显示了迁移到 Azure 之前的大型机体系结构。

下载此体系结构的 Visio 文件

大型机数据流

  1. 通过 TCP/IP(包括 TN3270、HTTP 和 HTTPS)进行输入。

  2. 大型机的输入使用标准大型机通信协议。

  3. 接收应用程序可以是批处理系统,也可以是在线系统。

  4. COBOL、PL/I、汇编程序和其他兼容语言在已启用的环境中运行。

  5. 使用的数据和数据库服务是分层数据库、网络数据库和关系数据库。

  6. 公共服务包括环境中的程序执行、I/O 操作、错误检测和保护。

  7. 中间件和实用程序管理环境中的磁带存储、排队、输出和 Web 服务等服务。

  8. 操作系统在引擎和它运行的软件之间提供接口。

  9. 必须有分区来运行单独的工作负载并隔离环境中的工作类型。

体系结构

此体系结构展示了在 Microsoft Azure 上重新托管的解决方案。

该示意图显示了迁移到 Azure 之后的大型机体系结构。

下载此体系结构的 Visio 文件

数据流

  1. 输入通常通过来自远程客户端的 ExpressRoute 进行,或者通过当前在 Azure 上运行的其他应用程序进行。 在任一情况下,TCP/IP 连接都是连接到系统的主要方式。 通过 TLS 端口 443 提供用户访问权限,用来访问基于 Web 的应用程序。 基于 Web 的应用程序的表示层可保持不变,以最大程度地减少对最终用户的再培训。 对于 VM 的管理员访问权限,你可以使用 Azure Bastion 主机通过最小化开放端口来最大限度地提高安全性。

  2. 对应用程序计算群集的访问是使用 Azure 负载均衡器来完成的。 使用此方法,你可横向扩展计算资源来处理输入工作。 7 级应用程序级和 4 级网络协议级负载均衡器均可用。 你使用的类型由应用程序输入到达计算群集入口点的方式来决定。

  3. 应用程序计算群集的使用取决于应用程序是支持计算群集中的虚拟机 (VM),还是应用程序在部署在容器计算群集(例如 Kubernetes)中的容器中运行。 用旧语言编写的应用程序的大多数大型机合作伙伴软件偏向于使用 VM。 一些大型机系统合作伙伴软件还支持在容器中部署。

  4. 应用程序服务器接收计算群集中的输入,并使用 Azure Redis Cache 或远程直接内存访问 (RDMA) 来共享应用程序状态和数据。 应用程序服务器托管各种 COBOL 或 PL/1 应用程序。 事务系统管理器是 Azure 上的一个仿真器,可处理客户信息控制系统 (CICS) 和信息管理系统 (IMS) 工作负载。 Azure 上的批处理系统仿真器扮演了作业控制语言 (JCL) 的角色。

  5. 可以使用在 VM 中托管的 Azure 服务或其他合作伙伴软件进行系统、实用程序和数据管理。

  6. 大型机数据迁移到 Azure 数据库。 Azure 提供各种高效的数据存储服务,例如 Azure SQL 数据库、Azure 虚拟机上的 SQL Server 和 Azure SQL 托管实例。 进行选择时需要考虑许多因素,例如工作负载类型、跨数据库查询和两阶段提交要求。 Azure 数据服务提供可缩放且高度可用的数据存储,你可跨群集中多个计算资源共享此存储。 可以将这些服务设置为异地冗余,然后对其进行配置,以便在发生故障转移时,灾难恢复数据库实例变为活动状态。

  7. 通过 AKS,你可在 Azure 中横向扩展和纵向缩减大型机现代化工作负载,以利用云平台。 部署多个 AKS 群集时,选择 AKS 可用的区域。 然后,你可以将配对区域用于高度可复原的体系结构。 必须跨多个区域以高可用性配置运行 AKS 群集的多个实例。

  8. Azure 数据工厂提供数据引入和与多个数据源的同步(包括在 Azure 中和来自外部源)。 Azure Blob 存储是外部数据源的公共登陆区域。

  9. 使用 Azure Site Recovery 来对 VM 和容器群集组件进行灾难恢复。 Azure Site Recovery 将生产环境复制并同步到故障转移区域。

组件

  • 虚拟机:虚拟机是按需可缩放的计算资源。 使用 Azure VM 可以灵活进行虚拟化,而无需购买和维护运行 VM 的物理硬件。

  • Azure 虚拟网络:虚拟网络是 Azure 中专用网络的基本构建基块。 虚拟网络使许多类型的 Azure 资源(例如 Azure 虚拟机)能够安全地彼此通信、与 Internet 通信,以及与本地网络通信。 虚拟网络就像你在自己的数据中心操作的传统网络。 不过,它带来了 Azure 基础结构的优势,例如缩放、可用性和隔离性。

  • Azure 虚拟网络接口卡:网络接口使 Azure VM 能够与 Internet、Azure 和本地资源进行通信。 如此体系结构中所示,可将更多网络接口卡添加到同一个 Azure VM 中。 这样,Solaris 子级 VM 就拥有自己的专用网络接口设备和 IP 地址。

  • Azure 磁盘存储:托管磁盘是由 Azure 托管并与 Azure VM 配合使用的块级存储卷。 可用的磁盘类型包括 Azure 超级磁盘存储、Azure 高级 SSD、Azure 标准 SSD 和 Azure 标准 HDD。 对于此体系结构,建议使用高级 SSD 或超级磁盘存储。

  • Azure 文件存储:Azure 文件存储在云中提供完全托管的文件共享,可通过行业标准的服务器消息块 (SMB) 协议访问这些共享项。 可以通过 Windows、Linux 和 macOS 的云部署或本地部署同时装载 Azure 文件共享。

  • Azure ExpressRoute:借助 ExpressRoute,可通过连接服务提供商提供的专用连接,将本地网络扩展到 Microsoft 云。 还可与 Microsoft Azure 和 Microsoft 365 等 Microsoft 云服务建立连接。

  • AKS:使用完全托管的 Kubernetes 服务更轻松地部署和管理容器化应用程序。 Azure Kubernetes 服务 (AKS) 提供无服务器 Kubernetes(一种整合的持续集成和持续交付 [CI/CD] 体验),还提供企业级安全性和治理。 将开发和运营团队统一到一个平台上,让你可以放心地快速生成、交付和缩放应用程序。

  • Azure 容器注册表:使用 OCI 发行版的完全托管的异地复制实例来生成、存储、保护、扫描、复制和管理容器映像和项目。 跨 AKS 和 Azure Red Hat OpenShift 等环境以及应用服务、机器学习和 Batch 等 Azure 服务进行连接。

  • Site Recovery:Site Recovery 提供易部署性、成本效益和可靠性。 通过 Site Recovery 部署复制、故障转移和恢复过程,帮助在计划内和计划外中断期间保持应用程序运行。

注意事项

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

可靠性

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

  • 要充分利用 Azure 的功能,请使用基于容器的方法进行部署。 如果应用程序需要按需缩放并实现容量的弹性预配,而无需管理基础结构,那么此方法会很有帮助。 它还让你能够添加事件驱动的自动缩放和触发器。 容器将执行所需的所有软件捆绑到一个可执行包中。 它包括应用程序的代码以及运行应用所需的相关配置文件、库和依赖项。
  • 需要编排和管理容器化服务及其相关的网络和存储组件。 AKS 是一个不错的选择,因为它可自动执行群集和资源管理。 你指定所需的节点数量,然后 AKS 会将你的容器安装到正确的节点上,以充分利用资源。 AKS 还支持自动推出和回滚、服务发现、负载平衡和存储编排。 而且,AKS 支持自我修复。 如果容器失败,AKS 会启动新容器。 你还可安全地将机密和配置设置存储在容器之外。
  • 该体系结构使用 Site Recovery 将 Azure VM 镜像到次要 Azure 区域,以便在 Azure 数据中心发生故障时快速进行故障转移和灾难恢复。
  • 为了在使用 AKS 部署方法时最大限度地延长工作负载的运行时间,实现业务连续性的最佳做法是将应用程序部署到不同区域中的多个 AKS 群集。 应用程序状态跨多个群集可用,因为 AKS 允许跨多个区域进行存储复制。
  • 为了在使用基于 VM 的部署方法时最大限度地延长工作负载的运行时间,请考虑使用 Azure 虚拟机规模集。 使用虚拟机规模集,可以创建并管理一组经过负载均衡的 VM。 可以根据需求或定义的计划自动增减 VM 实例的数目。 规模集为应用程序提供高可用性,用于集中管理、配置和更新大量 VM。

安全性

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

  • 此解决方案使用 Azure 网络安全组来管理 Azure 资源之间的流量。 有关详细信息,请参阅网络安全组
  • Azure Bastion 通过最大程度地减少开放端口来最大程度地提高管理访问安全性。 Bastion 通过 TLS 从 Azure 门户提供直接到虚拟网络 VM 的安全、无缝的 RDP/SSH 连接。

成本优化

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

Azure 可在 Windows VM 上运行,从而实现成本优化。 使用 Windows VM,可在 VM 未使用时将其关闭,并为已知的使用模式编写计划。 Azure 会识别正确的数量或资源类型、分析一段时间内的开支,并在不超支的情况下进行缩放来满足业务需求。

使用 Azure 定价计算器估算此体系结构中的服务成本。

卓越运营

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

  • 目标体系结构适用于 Azure 云服务。
  • 基于容器的部署促使了对 DevOps 和敏捷工作原则的采用。
  • 你在开发和生产部署选项方面拥有完全的灵活性。

性能效率

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

  • 由于负载均衡器,此解决方案中内置了性能效率。 如果一个表示服务器或事务服务器出现故障,负载均衡器后面的服务器将承担工作负载。
  • Kubernetes 提供了一个群集自动缩放程序。 自动缩放程序根据节点池中请求的计算资源调整节点数。

作者

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

主要作者:

其他参与者:

后续步骤

有关详细信息,请联系 legacy2azure@microsoft.com