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

使用 Astadia 重构大型机应用程序

Azure ExpressRoute
Azure Bastion
Azure 负载均衡器
Azure 专用链接
Azure Site Recovery

Astadia 的自动化 COBOL 重构解决方案提供启用云的应用程序和数据库,这些应用程序和数据库执行与旧版对应项相同的操作。 重构的应用程序在 Azure 虚拟机提供的虚拟机中作为 Azure 应用程序运行。 Azure ExpressRoute 使它们可供用户使用,Azure 负载均衡器用于分配负载。

大型机体系结构

下面是一个大型机体系结构,表示适合 Astadia 重构解决方案的系统类型。

适用于 Astadia 重构的大型机体系结构示意图。

下载此体系结构的 Visio 文件

数据流

  1. TN3270 和 HTTP(S) 用户输入通过 TCP/IP 到达。
  2. 大型机输入使用标准大型机协议。
  3. 包含批处理和联机应用程序。
  4. 使用 COBOL、PL/I、汇编程序和其他语言编写的应用程序在已启用的环境中运行。
  5. 数据保存在文件以及分层数据库、网络数据库和关系数据库中。
  6. 常用服务包括环境中的程序执行、I/O 操作、错误检测和保护。
  7. 中间件和实用程序服务管理带存储、排队、输出和 Web 活动。
  8. 各操作系统在其各自的分区内运行。
  9. 分区隔离不同的工作负载或工作类型。

Azure 体系结构

下面是一个 Azure 体系结构,用于将大型机功能替换为重构的应用程序。

Astadia 重构解决方案的体系结构示意图。

下载此体系结构的 Visio 文件

数据流

  1. 输入来自远程客户端和其他用户(通过 ExpressRoute)。 TCP/IP 是连接到系统的主要方式。
    • 本地用户通过传输层安全性 (TLS) 端口 443 访问基于 Web 的应用程序。 用户界面保持不变,以最大程度地减少最终用户的再培训。
    • 本地管理访问使用 Azure Bastion 主机。
    • Azure 用户通过虚拟网络对等互连连接到系统。
  2. 负载均衡器管理对应用程序计算群集的访问。 负载均衡器支持横向扩展计算资源来处理输入。 它在级别 7(应用程序级别)或级别 4(网络级别)运行,具体取决于应用程序输入。
  3. Astadia 运行时库在 Azure 虚拟机上运行重构的应用程序。 计算资源使用具有加速网络的 Azure 高级 SSD 或 Azure 超级磁盘存储托管磁盘。
  4. 应用程序群集中的数据服务支持到永久数据源的多个连接。 Azure 专用链接提供从虚拟网络内到 Azure 服务的专用连接。 数据源包括 Azure SQL 数据库和 Azure PostgreSQL 等数据服务。
  5. 数据存储是本地冗余或异地冗余的,具体取决于使用情况。 它是以下各项的混合:
    • 高性能存储:
      • 高级 SSD
      • 超级磁盘存储
    • Azure 标准 SSD,包括 blob、存档和备份存储
  6. Azure 数据服务提供由计算群集共享的可缩放且高度可用的数据存储。 该存储可以是异地冗余的。
    • Azure Blob 存储用作来自外部数据源的数据的登陆区域。
    • Azure 数据工厂引入数据并同步多个 Azure 和外部数据源。
  7. Azure Site Recovery 为虚拟机 (VM) 和容器群集组件提供灾难恢复。
  8. Microsoft Entra ID、Azure 网络、Azure DevOps、Azure 流分析、Azure Databricks、GitHub 和 Power BI 等服务可以轻松与新式系统集成。

组件

  • ExpressRoute 可通过连接提供商提供的专用光纤连接将本地网络扩展到 Azure。 ExpressRoute 可与 Azure 和 Microsoft 365 等 Microsoft 云服务建立连接。
  • Azure Bastion 通过 TLS 从 Azure 门户提供与虚拟网络 VM 的无缝远程桌面协议 (RDP) 或安全外壳 (SSH) 连接。 Azure Bastion 通过最大程度地减少开放端口来最大程度地提高管理访问安全性。
  • 负载均衡器将传入流量分配到计算资源群集。 它使用可配置的规则和其他标准来分配流量。
  • Azure 虚拟机提供多种大小和多种类型的按需可缩放 VM。 使用 Azure 虚拟机,可以灵活进行虚拟化,而无需购买和维护物理硬件。
  • Azure 虚拟网络是 Azure 专用网络的基本构建块。 虚拟网络中的 VM 可以安全地相互通信、与 Internet 通信,也可以与本地网络通信。 虚拟网络类似于传统的本地网络,但具有 Azure 基础结构的优势,例如可缩放性、高可用性和隔离性。
  • 专用链接提供从虚拟网络到 Azure 服务的专用连接。 专用链接简化了网络体系结构,并通过消除在公共 Internet 上的暴露来保护 Azure 终结点之间的连接。
  • Azure 存储是适用于所有数据、应用程序和工作负载的可缩放的安全云存储。
    • Azure 磁盘存储为业务关键型应用程序提供高性能、持久的块存储。 Azure 托管磁盘是由 VM 上的 Azure 托管的块级存储卷。 可用的磁盘类型包括超级磁盘存储、高级 SSD、标准 SSD 和 Azure 标准 HDD。 此体系结构使用高级 SSD 或超级磁盘存储。
    • Azure 文件存储在云端提供完全托管的文件共享,这些共享可通过行业标准的服务器消息块 (SMB) 协议进行访问。 云和本地 Windows、Linux 和 macOS 部署通过同时装载文件共享来共享访问权限。
    • Azure NetApp 文件提供由 NetApp 提供支持的企业级 Azure 文件共享。 利用 NetApp 文件,企业可以轻松地迁移和运行复杂的基于文件的应用程序,而无需更改代码。
    • Blob 存储是可缩放的安全对象存储,适用于存档、数据湖、高性能计算、机器学习和云原生工作负载。
  • Azure 提供完全托管的关系数据库、NoSQL 数据库和内存数据库,以满足新式应用程序的需求。 自动化基础结构管理提供可缩放性、可用性和安全性。 有关数据库类型的概述,请参阅 Azure 上的数据库类型
    • SQL 数据库是完全托管的数据库引擎。 SQL 数据库始终运行于最新稳定版 SQL Server 和具有高可用性的已修补 OS 之上。 内置的数据库管理功能包括升级、修补、备份和监视。 处理完这些任务后,你可以专注于特定于域的业务关键数据库管理和优化。
    • Azure Database for PostgreSQL 是基于开源 Postgres 关系数据库引擎的完全托管的数据库。 对于需要较大规模和较高性能的应用程序,超大规模 (Citus) 部署选项通过分片来跨多台计算机缩放查询。
    • Azure Cosmos DB 是完全托管的快速 NoSQL 数据库,具有适合于任何规模的开放式 API。
  • Site Recovery 将 VM 镜像到次要 Azure 区域,以便在 Azure 数据中心出现故障时进行快速故障转移和灾难恢复。
  • 数据工厂是提取、传输和加载 (ETL) 服务,用于横向扩展无服务器数据集成和数据转换。 它提供了无代码的 UI,以用于直观创作和集中式监视与管理。

方案详细信息

公司应替换其 COBOL 和大型机系统的重要原因包括:

  • 领域经验的稀缺性:了解 COBOL 和大型机技术的开发人员即将退休,很少有开发人员接受过培训来替代他们。 人才储备逐渐越少,依赖于 COBOL 的成本和风险会增加。
  • 灵活性有限:COBOL 和支持它的底层系统不是针对基于云的新式应用程序而设计的。 它们不够灵活,且难以集成。
  • 高昂的成本:IBM 大型机硬件和软件成本高昂。 辅助大型机应用程序和数据库的许可和维护费用不断增加。

COBOL 和大型机系统有一条前进的道路。 Astadia 的自动化 COBOL 重构解决方案提供启用云的应用程序和数据库,这些应用程序和数据库执行与旧版对应项相同的操作。 重构的应用程序在 Azure 虚拟机提供的虚拟机中作为 Azure 应用程序运行。 Azure ExpressRoute 使它们可供用户使用,Azure 负载均衡器用于分配负载。

通过重构,可降低成本,实现更深入的集成和自定义,以满足业务要求。 鉴于这些麻烦和高昂的成本,COBOL 和大型机将被可确保高质量和可伸缩性的新世界所取代,其中包括:

  • 自动化测试和质量保证。
  • 用于容器化部署和业务流程的 Docker 和 Kubernetes。

重构解决方案可创建具有以下特征的应用程序:

  • 在功能上等效于其原始对应方。
  • 以所选 Java 或 C# 编写。
  • 遵循面向对象的概念和范例。
  • 易于维护。
  • 性能等于或优于其取代的应用程序。
  • 云就绪。
  • 使用标准 DevOps 工具链和最佳做法交付。

重构过程包括流规范化、代码重构、数据层提取、数据重新建模和用于重建的打包。 该过程标识克隆的代码并将其替换为共享的对象,从而简化维护和可管理性。 该过程还通过分析数据和控件依赖项标识并删除死代码。

Java 和 C# 开发人员使用标准 DevOps 工具以及持续集成和持续交付 (CI/CD) 概念来调整重构的应用程序,以实现云优化。 此类工具和方法不适用于大型机应用程序。 优化带来了效率和业务优势,例如弹性、精细服务定义,以及轻松与云原生服务集成。

可能的用例

自动重构适用于大多数 COBOL 方言和平台(包括 z/OS、OpenVMS 和 VME)。 它适用于想要实现以下目标的组织:

  • 实现基础结构现代化,避免大型机系统的高成本、限制和僵化。
  • 避免 COBOL 和大型机开发人员短缺的风险。
  • 降低运营成本和资本支出。
  • 将大型机工作负载移动到云中,避免长时间手动重写的成本和风险。
  • 将任务关键应用程序迁移到云,同时保持与其他本地应用程序的连续性。
  • 使其系统具有水平和垂直可缩放性。
  • 实现灾难恢复技术。

注意事项

本节中的注意事项基于 Microsoft Azure 架构良好的框架,适用于此解决方案。

DevOps

重构不仅支持更快的云采用,还促进了 DevOps 和敏捷开发原则的采用。 你在开发和生产部署选项方面拥有完全的灵活性。

可靠性

  • 该体系结构使用 Site Recovery 将 VM 镜像到次要 Azure 区域,以进行快速故障转移和灾难恢复(如果 Azure 数据中心发生故障)。
  • SQL 数据库的自动故障转移组功能通过管理数据库复制和到次要区域的故障转移来提供数据保护。 有关详细信息,请参阅自动故障转移组概述和最佳做法(Azure SQL 数据库)
  • 通过使用负载均衡器在此解决方案中内置了复原能力。 如果一个演示或事务服务器出现故障,其他服务器会运行工作负载。
  • 建议为 VM 创建可用性集以提高可用性。 有关详细信息,请参阅可用性集概述
  • 建议使用异地复制来提高可靠性。 有关详细信息,请参阅 Azure 存储冗余

可伸缩性

此解决方案支持在容器、VM 或虚拟机规模集中部署。 与 VM 不同,容器和虚拟机规模集可以快速横向扩展和横向缩减。 将缩放单元移动到容器可优化基础结构利用率。

安全性

  • 此解决方案使用 Azure 网络安全组来管理进出 Azure 资源的流量。 有关详细信息,请参阅网络安全组
  • Azure SQL 数据库的专用链接提供专用直接连接,该连接与 Azure 网络主干隔离,并在 VM 和 SQL 数据库之间运行。
  • Azure Bastion 通过最大程度地减少开放端口来最大程度地提高管理访问安全性。 Bastion 通过 TLS 直接从 Microsoft Azure 门户向虚拟网络 VM 提供安全无缝的 RDP/SSH 连接。

成本优化

  • Azure 可避免不必要的成本,方法是确定正确的资源类型数、分析一段时间内的支出,以及提前缩放以满足业务需求而不会超支。
  • Azure 通过在 VM 上运行来最大程度降低成本。 可以关闭未使用的 VM,并为已知的使用模式提供计划。 有关 VM 成本优化的详细信息,请参阅虚拟机
  • 此体系结构中的 VM 使用高级 SSD 或超级磁盘存储。 有关磁盘选项和定价的详细信息,请参阅托管磁盘定价
  • SQL 数据库使用无服务器计算和自动缩放的超大规模存储资源来优化成本。 有关 SQL 数据库选项和定价的详细信息,请参阅 Azure SQL 数据库定价
  • 使用定价计算器估算实现此解决方案的成本。

作者

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

首席作者:

其他参与者:

后续步骤

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

Azure

Astadia 网站

其他