常规大型机重构到 Azure
以下体系结构说明可以使用 Azure Kubernetes 服务 (AKS) 或 Azure 虚拟机 (VM) 的常规重构方法。 此选项取决于现有应用程序和首选项的可移植性。 重构可以通过自动将代码转换为 Java 或 .NET 并将关系数据库转换为关系数据库,从而加速迁移到 Azure。
大型机体系结构
下载此体系结构的 Visio 文件。
工作流
以下工作流与上图相对应:
一个: 本地用户使用标准大型机协议(例如 TN3270 和 HTTPS)通过传输控制协议/Internet 协议(TCP/IP)访问大型机。
B: 接收应用程序可以是批处理系统或联机系统。
C: 启用的环境支持常见的面向业务的语言(COBOL)、编程语言 One(PL/I)、汇编程序或兼容语言。
D: 典型的数据和数据库服务包括分层数据库或网络数据库系统、索引或平面数据文件以及关系数据库。
E: 常见服务包括程序实现、输入/输出作、错误检测和保护。
F: 中间件和实用工具服务管理磁带存储、队列、输出和 Web 服务。
G: 作系统是计算引擎和软件之间的接口。
H: 分区在环境中运行单独的工作负荷或隔离工作类型。
重构的 Azure 体系结构
下载此体系结构的 Visio 文件。
工作流
以下工作流与上图相对应:
输入来自通过 Azure ExpressRoute 或其他 Azure 用户的远程客户端。 TCP/IP 是连接到系统的主要方式。
本地用户可以通过传输层安全性 (TLS) 端口 443 访问基于 Web 的应用程序。 Web 应用程序的呈现层可以保持不变,以最大程度地减少用户重新训练。 或者,可以使用新式 UX 框架更新呈现层。
本地管理访问使用 Azure Bastion 主机通过最大程度地减少开放端口来最大程度地提高安全性。
Azure 用户通过虚拟网络对等互连连接到系统。
在 Azure 中,Azure 负载均衡器管理对应用程序计算群集的访问。 负载均衡器支持横向扩展计算资源来处理输入。 你可以使用 7 级应用程序级或 4 级网络级负载均衡器,具体取决于应用程序输入如何传到计算群集入口点。
应用程序计算群集可以在 Azure VM 上运行,也可以在 AKS 群集中的容器中运行。 PL/I 或 COBOL 应用程序的大型机系统仿真通常使用 VM。 重构到 Java 或 .NET 的应用程序使用容器。 部分大型机系统仿真软件还支持在容器中部署。 计算资源使用 Azure 高级 SSD 磁盘或具有加速网络和远程直接内存访问(RDMA)的 Azure 超级磁盘存储。
计算群集中的应用程序服务器托管基于语言功能的应用程序,例如 Java 类或 COBOL 程序。 服务器使用 Azure Redis 缓存或 RDMA 接收应用程序输入并共享应用程序状态和数据。
应用程序群集中的数据服务支持到永久数据源的多个连接。 Azure 专用链接提供从虚拟网络到 Azure 服务的专用连接。 数据源可以包括以下内容:
平台即服务(PaaS)数据服务,例如 Azure SQL 数据库、Azure Cosmos DB 和 Azure Database for PostgreSQL - 超大规模。
VM 中的数据库,例如 Oracle 或 Db2。
大数据存储库,如 Azure Databricks 和 Azure Data Lake Storage。
流式处理数据服务,例如 Apache Kafka 和 Azure 流分析。
数据存储可以是本地冗余,也可以异地冗余,具体取决于使用情况。 数据存储可以组合使用以下内容:
使用超级磁盘存储或高级 SSD 的高性能存储。
具有 Azure NetApp 文件或 Azure 文件存储的文件存储。
标准存储,包括 blob、存档和备份选项。
Azure PaaS 数据服务提供可缩放且高度可用的数据存储,这些存储可在计算群集资源之间共享。 该存储也可以是异地冗余的。
Azure Blob 存储是外部数据源的公共登陆区域。
Azure 数据工厂支持多个 Azure 和外部数据源的数据引入和同步。
Azure Site Recovery 为 VM 和容器群集组件提供灾难恢复(DR)。
Microsoft Entra ID、Azure 网络、流分析、Azure Databricks 和 Power BI 等服务可以轻松与现代化系统集成。
组件
此示例包含以下 Azure 组件。 其中几个组件和工作流是可互换的或可选的,具体取决于你的方案。
ExpressRoute 是一项服务,它通过来自连接提供商的专用专用光纤连接将本地网络扩展到 Azure。 在此体系结构中,ExpressRoute 建立与 Microsoft 云服务(如 Azure 和 Microsoft 365)的连接。
Azure Bastion 是一项 PaaS 服务,通过 TLS 从 Azure 门户提供与虚拟网络 VM 的无缝远程桌面协议(RDP)或安全外壳(SSH)连接。 在此体系结构中,Azure Bastion 通过最小化开放端口来最大程度地提高管理访问安全性。
负载均衡器 是将传入流量分配到计算资源群集的服务。 使用此组件定义规则和其他条件来分发流量。 负载均衡器允许横向扩展计算资源来处理输入工作,这有助于确保负载分布高效。
AKS 是一项完全托管的 Kubernetes 服务,用于部署和管理容器化应用程序。 在此体系结构中,AKS 提供无服务器 Kubernetes、集成的持续集成和持续交付(CI/CD)体验以及企业级安全性和治理。
Azure 虚拟机 是一项服务,提供许多按需、可缩放计算资源的大小和类型。 此组件提供虚拟化的灵活性,无需购买和维护物理硬件。
Azure 虚拟网络 充当 Azure 专用网络的基本构建基块。 虚拟网络类似于传统的本地网络,但它具有 Azure 基础结构优势,例如可伸缩性、高可用性和隔离性。 此组件允许虚拟网络中的 Azure VM 彼此、Internet 和本地网络更安全地通信。
专用链接 是一项服务,提供从虚拟网络到 Azure 服务的专用连接。 在此体系结构中,专用链接通过消除对公共 Internet 的公开,简化了网络体系结构,并保护 Azure 终结点之间的连接。
Azure Redis 缓存 是一项完全托管的服务,可将快速缓存层添加到应用程序体系结构,以高速处理大型卷。 此体系结构组件可简单且经济高效地缩放性能。
Azure 存储 是一种基于云的服务,可为所有数据、应用程序和工作负载提供可缩放的安全云存储。 在此体系结构中,存储为各种数据类型和应用程序提供必要的存储基础结构。
Azure 磁盘存储 是适用于业务关键型应用程序的高性能持久块存储服务。 Azure 托管磁盘是 Azure 在 Azure VM 上管理的块级存储卷。 可用的磁盘类型包括超级磁盘存储、高级 SSD、Azure 标准 SSD 和 Azure 标准 HDD。 此体系结构使用高级 SSD 磁盘或超级磁盘存储。
Azure 文件 是一项完全托管的基于云的文件存储服务,提供云中的文件共享。 可通过行业标准服务器消息块 (SMB) 协议访问这些文件共享。 在此体系结构中,Azure 文件存储为云和本地部署提供托管文件共享。 云和本地 Windows、Linux 和 macOS 部署可以同时装载 Azure 文件存储文件共享。
Azure NetApp 文件 是一项完全托管的文件存储服务,提供由 NetApp 提供支持的企业级 Azure 文件共享。 使用它来迁移和运行复杂的基于文件的应用程序,而无需更改代码。
Blob 存储是可缩放的安全对象存储,适用于存档、数据湖、高性能计算、机器学习和云原生工作负载。 在此体系结构中,Blob 存储充当外部数据源的常见登陆区域。
Azure 数据库 提供完全托管的关系数据库和 NoSQL 数据库,以满足新式应用程序需求。 自动化基础结构管理提供可缩放性、可用性和安全性。
SQL 数据库 是完全托管的 PaaS 数据库引擎。 在此体系结构中,它提供可缩放且高度可用的数据存储,用于在群集中的多个计算资源之间共享。 SQL 数据库始终在最新稳定版本的 SQL Server 和具有 99.99% 可用性的修补作系统上运行。 内置的 PaaS 数据库管理功能包括升级、修补、备份和监视。 可以使用 SQL 数据库专注于特定于域的业务关键型数据库管理和优化。
Azure Database for PostgreSQL 是基于开源 Postgres 关系数据库引擎的完全托管的数据库。 在此体系结构中,它提供 “超大规模”(Citus)部署选项,该选项使用分片在多台计算机上缩放查询。 此功能对于需要更大规模和性能的应用程序非常有用。
Azure Cosmos DB 是一个完全托管的快速 NoSQL 数据库,具有任何规模的开放 API。 在此体系结构中,Azure Cosmos DB 为各种应用程序提供可缩放且高度可用的数据存储。
Site Recovery 是一项 DR 服务,可将 Azure VM 镜像到次要 Azure 区域。 如果发生 Azure 数据中心故障,此功能可实现快速故障转移和恢复。 在此体系结构中,Site Recovery 支持 VM 和容器群集组件的 DR。
方案详细信息
将工作负载重构到 Azure 可以转换 Windows Server 或 Linux 上运行的大型机应用程序。 可以使用基于云的 Azure 基础结构即服务和 PaaS 更有效地运行这些应用程序。
大型机应用程序的一般重构方法可推动基础结构转换,并将系统从旧专有技术转移到标准化、基准化、开放式解决方案。 此转换支持敏捷 DevOps 原则,这是当今高效开放系统标准的基础。 重构将独立的旧基础结构、流程和应用程序替换为统一的环境,可增强业务和 IT 的一致性。
这种常规重构方法可以使用 AKS 或 Azure VM。 选择取决于现有应用程序和首选项的可移植性。 重构可以通过自动将代码转换为 Java 或 .NET 并将关系数据库转换为关系数据库,从而加速迁移到 Azure。
重构支持将客户端工作负荷移动到 Azure 的各种方法。 一种方法是在一个全面的过程中将整个大型机系统转换为 Azure。 此方法消除了临时大型机维护和设施支持成本的需求。 但是,此方法会带来一些风险,因为所有应用程序转换、数据迁移和测试过程都必须一致,以确保从大型机顺利过渡到 Azure。
另一种方法是逐步将应用程序从大型机迁移到 Azure,目的是随着时间的推移进行转换。 此方法为每个应用程序节省成本。 它还提供了从每个转换中学习以告知和改进后续迁移的机会。 此方法通过根据自己的计划对每个应用程序进行现代化来一次性迁移所有内容提供了更易管理且更密集的替代方法。
可能的用例
在 Azure 上进行重构可以帮助组织实现以下内容:
- 现代化基础结构并避免大型机的高成本、限制和刚性。
- 将大型机工作负荷迁移到云,同时避免完全重建的复杂性。
- 迁移业务关键型应用程序,同时与其他本地应用程序保持连续性。
- 受益于 Azure 上的水平和垂直可伸缩性。
- 获取 DR 功能。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负荷质量的指导原则。 有关详细信息,请参阅 Well-Architected Framework。
可靠性
可靠性有助于确保应用程序能够履行对客户的承诺。 有关详细信息,请参阅可靠性设计评审核对清单。
在此体系结构中,如果主 Azure 数据中心发生故障, Site Recovery 会将 Azure VM 镜像到次要 Azure 区域,以便快速故障转移和 DR。
安全性
安全性提供针对故意攻击和滥用宝贵数据和系统的保证。 有关详细信息,请参阅可靠性设计审查检查表。
此解决方案使用 Azure 网络安全组 (NSG) 来管理 Azure 资源之间的流量。 有关详细信息,请参阅NSGs。
专用链接提供与 Azure VM 和 Azure 服务之间的 Azure 网络主干网隔离的专用直接连接。
Azure Bastion 通过最大程度地减少开放端口来最大程度地提高管理访问安全性。 Azure Bastion 通过 TLS 从 Azure 门户提供与虚拟网络 VM 的高度安全无缝 RDP 和 SSH 连接。
成本优化
成本优化侧重于减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅成本优化设计评审核对清单。
Azure 可避免不必要的成本,方法是确定正确的资源类型数、分析一段时间内的支出,以及在不超支的情况下进行缩放以满足业务需求。 Azure 可在 VM 上运行,从而实现成本优化。 当 VM 未使用时,可以关闭这些 VM,并为已知使用模式编写计划编写脚本。 有关详细信息,请参阅 Azure Well-Architected 框架和建议,以优化组件成本。
此体系结构中的 VM 使用高级 SSD 磁盘或超级磁盘存储。 有关详细信息,请参阅托管磁盘定价。
SQL 数据库使用自动缩放的无服务器计算和超大规模存储资源优化成本。 有关详细信息,请参阅 SQL 数据库定价。
使用 Azure 定价计算器 估算此解决方案的实现成本。
卓越运营
卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅设计卓越运营的审查清单。
重构支持更快的云采用,并推动 DevOps 和敏捷工作原则的采用。 你在开发和生产部署选项方面拥有完全的灵活性。
性能效率
性能效率是指工作负荷能够高效地缩放以满足用户需求。 有关详细信息,请参阅性能效率设计评审核对清单。
负载均衡器将性能效率集成到此解决方案中。 如果一个表示服务器或事务服务器失败,负载均衡器后面的其他服务器将处理工作负荷。
作者
Microsoft维护本文。 以下参与者撰写了本文。
首席作者:
- Jonathon Frost | 首席软件工程师
- 菲利普·布鲁克斯 |高级 TPM
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
- 有关详细信息,请联系 legacy2azure@microsoft.com。
- 什么是 ExpressRoute?
- What is Virtual Network?
- Azure 托管磁盘简介
- 什么是专用链接?
- 什么是 SQL 数据库?
- 什么是 Azure 文件?