使用“高级”重构大型机应用程序
Advanced 的自动 COBOL 重构解决方案会重构 COBOL 应用程序,以及以 CA-Gen、CA-Telon、Natural、ADSO 和其他旧语言编写的应用程序,以提供功能上等效于其旧版对应语言的已启用云的应用程序和数据库。 这可降低成本,实现更深入的集成,并启用自定义以满足业务需求。 此外,它还解锁了从自动测试到质量保证的全新的质量和可伸缩性世界,以及利用 Docker 和 Kubernetes 的容器化部署和业务流程的能力。
大型机体系结构
以下是其中可以使用自动因子分析的示例系统:
Workflow
答: 用户使用 TN3270、HTTP 和 HTTPS 等协议通过 TCP/IP 提供输入。
B. 输入使用标准大型机协议到达。
C. 批处理和联机应用程序处理输入。
D. COBOL、PL/I、汇编程序和兼容语言在已启用的环境中运行。
E. 文件和数据库提供数据存储。 数据库类型包括分层、网络和关系。
F. 服务为应用程序执行任务。 通常启用的服务包括程序执行、I/O 操作、错误检测和保护。
G. 中间件和实用程序服务管理带存储、排队、输出和 Web 支持等任务。
H. 操作系统在引擎和它运行的软件之间提供接口。
一。 分区在环境中运行独立的工作负载或分隔的工作类型。
Azure 体系结构
这是为 Azure 重构时上面显示的示例系统的体系结构。 请注意,图中的字母标注显示重构的解决方案处理相应大型机功能的位置。
下载此体系结构的 Visio 文件。
Workflow
输入通常通过远程客户端或其他 Azure 应用程序的 Azure ExpressRoute 进行输入。 在任一情况下,TCP/IP 连接都是连接到系统的主要方式。 用户通过 TLS 端口 443 访问 Web 应用程序。 可以将 Web 应用程序的 UI 保持不变,以最大程度地减少最终用户重新训练,或者可以使用新式 UX 框架更新它。 Azure Bastion 提供对虚拟机 (VM) 的访问权限,从而通过减少开放端口将安全性最大化。
进入 Azure 后,通过 Azure 负载均衡器访问应用程序计算群集。 使用此方法可以横向扩展计算资源以处理输入工作。 根据输入,可以在应用程序级别或网络协议级别进行负载均衡。
“高级”支持在容器、VM 或虚拟机规模集进行部署。 与 VM 不同,容器和虚拟机规模集可以快速横向扩展和横向缩减。 将缩放单元移动到容器可优化基础结构利用率。
应用程序服务器接收计算群集中的输入,使用 Azure Cache for Redis 或远程直接内存访问 (RDMA) 共享应用程序状态。
应用程序群集中的数据服务允许到永久数据源的多个连接。 可能的数据源包括:
- Azure SQL 数据库。
- Azure Cosmos DB。
- VM 上的数据库(例如 Oracle 或 Db2)。
- 大数据存储库(例如 Azure Databricks 和 Azure Data Lake)。
- 流式处理数据服务(例如 Kafka 和 Azure 流分析)。
应用程序服务器根据语言的功能托管各种应用程序(例如 Java 类或 COBOL 程序)。
数据服务与以下功能结合使用:
高性能存储:Azure 高级 SSD 和 Azure 超级磁盘存储。
文件存储:Azure NetApp 文件和 Azure 文件存储。
标准存储:Azure Blob 存储、存档和备份。 备份可以是:
- 本地冗余存储 (LRS)。
- 区域冗余存储 (ZRS)。
- 异地冗余存储 (GRS)。
- 异地区域冗余存储 (GZRS)。
有关冗余的详细信息,请参阅 Azure 存储冗余。
Azure 平台即服务 (PaaS) 数据服务提供可缩放且高度可用的数据存储,可在群集中的多个计算资源之间共享。 这些也可以是异地冗余的。
Azure 数据工厂可以引入数据并将其与 Azure 中和外部源中的多个数据源同步。 Azure Blob 存储是外部数据源的公共登陆区域。
Azure Site Recovery 用于 VM 和容器群集组件的灾难恢复。
应用程序连接到各种 PaaS 服务的专用终结点。
组件
此示例包含以下 Azure 组件。 其中几个组件和工作流是可互换的或可选的,具体取决于你的方案。
Azure Bastion 是一项完全托管的服务,通过传输层安全性(TLS)直接从 Azure 门户提供与虚拟网络 VM 的安全远程桌面协议(RDP)或安全外壳(SSH)连接。 在此体系结构中,Azure Bastion 通过将托管重构 COBOL 应用程序的 VM 的开放端口降至最低,最大程度地提高管理员访问安全性。
Azure Redis 缓存 是一项完全托管的内存中缓存服务,可将快速缓存层添加到应用程序体系结构,以高速处理大型卷。 Azure Cache for Redis 可以简单且经济高效地缩放性能,并且具有完全托管服务的优势。 在此体系结构中,Azure Redis 缓存使应用程序服务器能够跨重构大型机应用程序的计算群集共享应用程序状态和数据。
Azure 数据工厂是提取、转换和加载 (ETL) 服务,用于横向扩展无服务器数据集成和数据转换。 它提供了一个无代码 UI,用于直观创作和单窗格玻璃监视和管理。 在此体系结构中,Azure 数据工厂提供数据集成和转换功能,用于迁移和处理重构解决方案中的大型机数据。
Azure 数据库 是基于云的数据库服务的集合,可提供完全托管的关系数据库和 NoSQL 数据库以满足新式应用程序需求。 自动化基础结构管理提供可缩放性、可用性和安全性。 在此体系结构中,Azure 数据库提供持久性数据存储解决方案来替换大型机数据库系统。
Azure Cosmos DB 是完全托管的快速 NoSQL 数据库,具有适合于任何规模的开放式 API。 在此体系结构中,Azure Cosmos DB 为需要灵活、可缩放数据存储的重构应用程序提供全局分布式 NoSQL 数据库服务。
Azure Database for PostgreSQL 是基于开放源代码 Postgres SQL 关系数据库引擎的完全托管的数据库。 “超大规模”(Citus)部署选项使用分片缩放多个计算机的查询,这些应用程序需要更大的缩放和性能。 在此体系结构中,Azure Database for PostgreSQL 为需要 PostgreSQL 功能的重构应用程序提供开源关系数据库服务。
SQL 数据库 是一个完全托管的 PaaS 数据库引擎,始终在最新稳定版本的 SQL Server 和具有高可用性的修补 OS 上运行。 内置的 PaaS 数据库管理功能包括升级、修补、备份和监视。 在此体系结构中,SQL 数据库为需要 SQL Server 兼容性的重构应用程序提供托管关系数据库服务。
Azure Kubernetes 服务 (AKS) 是一项完全托管的 Kubernetes 服务,用于部署和管理容器化应用程序。 AKS 提供无服务器 Kubernetes、集成的持续集成和持续交付(CI/CD)体验以及企业级安全性和治理。 在此体系结构中,AKS 提供容器业务流程,用于部署和缩放具有快速横向扩展功能的重构 COBOL 应用程序。
Azure 负载均衡器 是一种网络负载均衡器,用于跨多个目标分配传入流量,以确保高可用性和可靠性。 你可以定义用于分配流量的规则和其他标准。 在此体系结构中,负载均衡器提供对应用程序计算群集的访问权限,并使横向扩展计算资源能够处理重构大型机应用程序的输入工作。
Azure 专用链接 是一种网络服务,提供从虚拟网络到 Azure 服务的专用连接。 专用链接消除了公共 Internet 曝光,以简化网络体系结构并保护 Azure 终结点之间的连接。 在此体系结构中,专用链接使重构的应用程序能够安全地连接到各种 PaaS 服务的专用终结点。
Azure 存储是适用于所有数据、应用程序和工作负载的可缩放的安全云存储。 在此体系结构中,Azure 存储提供了各种存储选项来支持重构大型机应用程序的数据要求。
Azure 磁盘存储为业务关键型应用程序提供高性能、持久的块存储。 Azure 托管磁盘是由 Azure VM 上的 Azure 托管的块级存储卷。 可用的磁盘存储类型包括超级磁盘存储、高级 SSD、Azure 标准 SSD 和 Azure 标准 HDD。 在此体系结构中,Azure 磁盘存储使用高级 SSD 或超级磁盘存储为重构的应用程序提供高性能存储。
Azure 文件 存储是一项完全托管的文件共享服务,可在云中提供完全托管的文件共享,可通过行业标准服务器消息块(SMB)协议进行访问。 云和本地 Windows、Linux 和 macOS 部署可以同时装载文件共享。 在此体系结构中,Azure 文件存储提供可由重构应用程序的多个实例访问的共享文件存储。
Azure 虚拟机 是一项云计算服务,提供许多按需、可缩放的计算资源大小和类型。 通过使用虚拟机,你可以灵活地进行虚拟化,而无需购买和维护物理硬件。 在此体系结构中,虚拟机托管重构的大型机应用程序,并提供可缩放的计算资源作为容器化部署的替代方法。
Azure 虚拟网络是 Azure 专用网络的基本构建块。 虚拟网络中的 VM 可以安全地相互通信、与 Internet 通信,也可以与本地网络通信。 虚拟网络类似于传统的本地网络,但具有 Azure 基础结构的优势,例如可缩放性、高可用性和隔离性。 在此体系结构中,虚拟网络为重构大型机系统的所有组件提供安全网络基础。
Blob 存储是可缩放的安全对象存储,适用于存档、数据湖、高性能计算、机器学习和云原生工作负载。 在此体系结构中,Blob 存储为重构大型机应用程序的非结构化数据和存档要求提供对象存储。
ExpressRoute 是一种连接服务,它通过来自连接提供商的专用专用光纤连接将本地网络扩展到 Azure。 ExpressRoute 可与 Azure 和 Microsoft 365 等 Microsoft 云服务建立连接。 在此体系结构中,ExpressRoute 在本地大型机环境和在 Azure 上运行的重构应用程序之间提供安全的高带宽连接。
NetApp 文件 是一项完全托管的文件存储服务,它提供由 NetApp 提供支持的企业级 Azure 文件共享,使企业可以轻松地迁移和运行基于文件的复杂应用程序,无需更改代码。 在此体系结构中,NetApp 文件为需要高级文件系统功能的企业级重构大型机应用程序提供高性能文件存储。
Site Recovery 是一种灾难恢复服务,可将 Azure VM 镜像到次要 Azure 区域,以便在 Azure 数据中心发生故障时快速故障转移和数据恢复。 在此体系结构中,Site Recovery 为重构的大型机应用程序提供业务连续性和灾难恢复功能。
方案详细信息
寻找仍然常见的基于 COBOL 的大型机应用程序的替代方法有很多原因:
- COBOL 和 CA-Gen/Natural/Telon/ASDO 开发人员即将退休,并且没有任何经过培训的人员来替换他们,从而导致人才池逐渐减少。 随着人才不足的情况加剧,依赖于 COBOL 和其他旧语言的成本和风险会增加。
- 这些应用程序不是为新式 IT 设计的,因此集成难度大且灵活性有限。
- IBM 大型机硬件和软件成本高昂,辅助大型机应用程序和数据库的许可和维护费用不断增加。
Advanced 的自动 COBOL 重构解决方案会重构 COBOL 应用程序,以及以其他旧语言编写的应用程序,以提供功能上等效于其旧版对应语言的已启用云的应用程序和数据库。 这可降低成本,实现更深入的集成,并启用自定义以满足业务需求。 此外,它还解锁了从自动测试到质量保证的全新的质量和可伸缩性世界,以及利用 Docker 和 Kubernetes 的容器化部署和业务流程的能力。
重构的应用程序:
- 在功能上等效于原始版本。
- 易于维护 - 它们获得了 SonarQube A 评级,并遵循以对象为导向的概念和范例。
- 性能与原始版本一样或优于原始版本。
- 使用标准 DevOps 工具链和最佳做法实现云就绪和交付。
重构过程包括流规范化、代码重构、数据层提取、数据重新建模和用于重建的打包。 该过程标识克隆的代码并创建共享替换对象,从而简化维护和可管理性。 复杂的数据和控件依赖项分析可查找并删除死代码。
一旦高级解决方案重构 COBOL 应用程序和关联的数据库,Java 和 C# 开发人员就可以使用标准 DevOps 工具和 CI/CD 概念来扩展应用程序功能。 重构过程保留业务逻辑并优化性能。 其他优势包括弹性、精细服务定义,以及轻松与云原生服务集成。
自动 COBOL 重构适用于大多数 COBOL 方言和平台(包括 z/OS、OpenVMS 和 VME)。
可能的用例
高级重构有利于多种方案,包括:
- 企业寻求:
- 实现基础结构现代化,并避开与大型机相关的高成本、限制和严格性。
- 通过实现云原生和 DevOps,避免与旧系统和应用程序技能不足相关的风险。
- 降低运营和资本支出成本。
- 组织想要将大型机工作负载迁移到云中,而无需进行昂贵且容易出错的手动重写。
- 需要迁移业务关键型应用程序,同时保持与其他本地应用程序的连续性的组织。
- 查找 Azure 提供的水平和垂直可伸缩性的团队。
- 支持具有灾难恢复选项的解决方案的企业。
注意事项
这些注意事项实现 Azure Well-Architected 框架的支柱,这是一组指导原则,可用于提高工作负荷的质量。 有关详细信息,请参阅 azure Well-Architected Framework
可靠性
可靠性可确保应用程序能够履行对客户的承诺。 有关详细信息,请参阅 可靠性的设计评审清单。
负载均衡器在此解决方案中内置了复原。 如果一个演示或事务服务器出现故障,负载均衡器支持的其他服务器可以根据规则和运行状况探测运行工作负载。 强烈推荐使用可用性集和异地冗余存储。
安全性
安全性提供针对故意攻击和滥用宝贵数据和系统的保证。 有关详细信息,请参阅 安全的设计评审清单。
此解决方案使用 Azure 网络安全组来管理 Azure 资源之间的流量。 有关详细信息,请参阅网络安全组。
Azure SQL 数据库的专用链接提供专用直接连接,该连接与从 Azure VM 到 Azure SQL 数据库的 Azure 网络主干网隔离。
Azure Bastion 通过最大程度地减少开放端口来最大程度地提高管理访问安全性。 Bastion 通过 TLS 从 Azure 门户提供直接到虚拟网络 VM 的安全、无缝的 RDP/SSH 连接。
成本优化
成本优化是研究减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅 成本优化的设计评审清单。
Azure 可避免不必要的成本,方法是确定正确的资源类型数、分析一段时间内的支出,以及在不超支的情况下进行缩放以满足业务需求。
- Azure 可在 VM 上运行,从而实现成本优化。 可以在不使用他们时关闭 VM,并为已知的使用模式编写计划。 请参阅 Azure 架构良好的框架,了解有关 VM 实例的成本优化的信息。
- 此体系结构中的 VM 使用高级 SSD 或超级磁盘存储。 有关磁盘选项和定价的详细信息,请参阅托管磁盘定价。
- SQL 数据库使用无服务器计算和自动缩放的超大规模存储资源来优化成本。 有关 SQL 数据库选项和定价的详细信息,请参阅 Azure SQL 数据库定价。
- 使用定价计算器估算实现此解决方案的成本。
卓越运营
卓越运营涵盖部署应用程序并使其在生产环境中运行的运营流程。 有关详细信息,请参阅 卓越运营的设计评审清单。
重构不仅支持更快的云采用,还促进了 DevOps 和敏捷工作原则的采用。 你在开发和生产部署选项方面拥有完全的灵活性。
性能效率
性能效率是工作负荷的缩放能力,以满足用户以高效方式满足它的需求。 有关详细信息,请参阅 性能效率的设计评审清单。
- 该体系结构使用 Azure Site Recovery 将 Azure VM 镜像到次要 Azure 区域,以进行快速故障转移和灾难恢复(如果 Azure 数据中心发生故障)。
- Azure 自动故障转移组复制管理数据库复制和故障转移到次要区域。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Bhaskar Bandam | 高级 TPM
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
- 如需更多資訊,請聯絡 legacy2azure@microsoft.com。
- 自动 COBOL 重构事实数据表 (PDF)