Advanced 的自动 COBOL 重构解决方案会重构 COBOL 应用程序,以及以 CA-Gen、CA-Telon、Natural、ADSO 和其他旧语言编写的应用程序,以提供功能上等效于其旧版对应语言的已启用云的应用程序和数据库。 这可降低成本,实现更深入的集成,并启用自定义以满足业务需求。 此外,它还解锁了从自动测试到质量保证的全新的质量和可伸缩性世界,以及利用 Docker 和 Kubernetes 的容器化部署和业务流程的能力。
大型机体系结构
以下是其中可以使用自动因子分析的示例系统:
工作流
A. 用户使用 TN3270、HTTP 和 HTTPS 等协议通过 TCP/IP 提供输入。
B. 输入使用标准大型机协议到达。
C. 批处理和联机应用程序处理输入。
D. COBOL、PL/I、汇编程序和兼容语言在已启用的环境中运行。
E. 文件和数据库提供数据存储。 数据库类型包括分层、网络和关系。
F. 服务为应用程序执行任务。 通常启用的服务包括程序执行、I/O 操作、错误检测和保护。
G. 中间件和实用程序服务管理带存储、排队、输出和 Web 支持等任务。
H. 操作系统在引擎和它运行的软件之间提供接口。
I. 分区在环境中运行独立的工作负载或分隔的工作类型。
Azure 体系结构
这是为 Azure 重构时上面显示的示例系统的体系结构。 请注意,图中的字母标注显示重构的解决方案处理相应大型机功能的位置。
下载此体系结构的 Visio 文件。
工作流
输入通常通过远程客户端或其他 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 ExpressRoute 可通过连接提供商提供的专用光纤连接将本地网络扩展到 Azure。 ExpressRoute 可与 Azure 和 Microsoft 365 等 Microsoft 云服务建立连接。
- Azure Bastion 通过传输层安全 (TLS) 从 Azure 门户提供与虚拟网络 VM 的无缝远程桌面协议 (RDP) 或安全外壳 (SSH) 连接。 Azure Bastion 通过最大程度地减少开放端口来最大程度地提高管理访问安全性。
- Azure 负载均衡器将传入流量分配到计算资源群集。 你可以定义用于分配流量的规则和其他标准。
- Azure Kubernetes 服务 (AKS) 是一项完全托管的 Kubernetes 服务,用于部署和管理容器化应用程序。 AKS 提供无服务器 Kubernetes(一种整合的持续集成和持续交付 (CI/CD) 体验)以及企业级安全性和管理。
- Azure 虚拟机提供多种大小和多种类型的按需可缩放计算资源。 借助 Azure VM,无需购买和维护物理硬件即可灵活地实现虚拟化。
- Azure 虚拟网络是 Azure 专用网络的基本构建块。 虚拟网络中的 VM 可以安全地相互通信、与 Internet 通信,也可以与本地网络通信。 虚拟网络类似于传统的本地网络,但具有 Azure 基础结构的优势,例如可缩放性、高可用性和隔离性。
- Azure 专用链接提供从虚拟网络到 Azure 服务的专用连接。 专用链接消除了公共 Internet 曝光,以简化网络体系结构并保护 Azure 终结点之间的连接。
- Azure Cache for Redis 向应用程序体系结构添加高速缓存层,以高速处理大量数据。 Azure Cache for Redis 可以简单且经济高效地缩放性能,并且具有完全托管服务的优势。
- Azure 存储是适用于所有数据、应用程序和工作负载的可缩放的安全云存储。
- Azure 磁盘存储为业务关键型应用程序提供高性能、持久的块存储。 Azure 托管磁盘是由 Azure VM 上的 Azure 托管的块级存储卷。 可用的磁盘存储类型包括超级磁盘存储、高级版 SSD、标准 SSD 和标准 HDD。 此体系结构使用高级 SSD 或超级磁盘存储。
- Azure 文件在云端提供完全托管的文件共享,这些共享项可通过行业标准的服务器消息块 (SMB) 协议进行访问。 云和本地 Windows、Linux 和 macOS 部署可以同时装载文件共享。
- Azure NetApp 文件提供由 NetApp 提供支持的企业级 Azure 文件共享。 利用 Azure NetApp 文件,企业可以轻松地迁移和运行复杂的基于文件的应用程序,而无需更改代码。
- Azure Blob 存储是可缩放且安全的对象存储,适用于存档、数据湖、高性能计算、机器学习和云原生工作负载。
- Azure 数据库提供完全托管的关系数据库和 NoSQL 数据库,以满足新式应用程序的需求。 自动化基础结构管理提供可缩放性、可用性和安全性。
- Azure SQL 数据库是完全托管式的 PaaS 数据库引擎。 SQL 数据库始终运行于最新稳定版 SQL Server 和具有高可用性的已修补 OS 之上。 内置的 PaaS 数据库管理功能包括升级、修补、备份和监视。 你可以专注于特定于域的业务关键数据库管理和优化。
- Azure Database for PostgreSQL 是基于开放源代码 Postgres SQL 关系数据库引擎的完全托管的数据库。 超大规模 (Citus) 部署选项使用分片来跨多台计算机缩放查询,为需要较大规模和较高性能的应用程序提供服务。
- Azure Cosmos DB 是完全托管的快速 NoSQL 数据库,具有适合于任何规模的开放式 API。
- Azure Site Recovery 将 Azure VM 镜像到辅助 Azure 区域,以便在 Azure 数据中心出现故障时进行快速故障转移和数据恢复。
- Azure 数据工厂是提取、转换和加载 (ETL) 服务,用于横向扩展无服务器数据集成和数据转换。 它提供了无代码的 UI,以用于直观创作和集中式监视与管理。
方案详细信息
寻找仍然常见的基于 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 提供的水平和垂直可伸缩性的团队。
- 支持具有灾难恢复选项的解决方案的企业。
注意事项
将 Microsoft Azure 架构良好的框架的以下支柱整合为高度可用且安全的系统:
可用性
- 该体系结构使用 Azure Site Recovery 将 Azure VM 镜像到次要 Azure 区域,以进行快速故障转移和灾难恢复(如果 Azure 数据中心发生故障)。
- Azure 自动故障转移组复制管理数据库复制和故障转移到次要区域。
操作
重构不仅支持更快的云采用,还促进了 DevOps 和敏捷工作原则的采用。 你在开发和生产部署选项方面拥有完全的灵活性。
安全性
此解决方案使用 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 数据库定价。
- 使用定价计算器估算实现此解决方案的成本。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Bhaskar Bandam | 高级 TPM
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
- 如需更多資訊,請聯絡 legacy2azure@microsoft.com。
- 现代化平台即服务 (ModPaaS)
- 高级的自动 COBOL 重构解决方案
- 案例研究:在运行时钟的同时向云现代化。