使用 IMSql 将 IMS 工作负载重新托管到虚拟机
此体系结构演示了如何使用 Raincode 的 IMSql 以最简单的方式(即使用虚拟机)在 .NET 和 SQL Server 上重新托管 IMS 数据库管理器 (IMS DB) 和 IMS 事务管理器 (IMS TM) 系统。 可以重新编译旧版应用程序以面向 .NET 并以与大型机上的 IMS 交互的相同方式与 IMSql 进行交互。 IMSql 将大型机应用程序转换为 Azure 本机体系结构,同时完全保留业务逻辑。
体系结构
迁移前的 IBM z/OS 体系结构
下载此体系结构的 Visio 文件。
数据流
答: 用户使用 TN3270 和 HTTPS 等协议通过 TCP/IP 进行连接。
B. 大型机的输入使用标准大型机通信协议。
C. 应用程序接收数据。 这些应用程序要么是批处理系统,要么是在线系统。
D. COBOL、PL/I、Assembler 或其他兼容语言可在启用的环境中运行。
E. 数据库系统(通常是分层/网络和关系系统)存储数据。
F. 公共服务(如环境中的程序执行、I/O 操作、错误检测和保护)提供支持。
G. 中间件和实用程序管理环境中的磁带存储、排队、输出和 Web 服务等服务。
H. 操作系统在分区上运行。
一。 分区在环境中运行独立的工作负载和分隔的工作类型。
迁移后的 Azure 体系结构
下载此体系结构的 Visio 文件。
数据流
- IBM 3270 终端仿真器通过 IMSql 终端服务器连接到部署在 Azure 上的 IMS TM 应用程序并保持不变。
- 用 JCL 编写的批处理进程通过运行 Raincode JCL 解释器的暂时性 Azure 容器实例照常运行。 编译的旧程序使用标准 IMS API 访问 IMS DB。 Raincode JCL 可以将目录存储在任何基于文件的存储中。
- IMS 数据上的读/写 SQL Server 视图使新式应用程序或商业智能(如 Power BI)能够直接与 IMS 应用程序通信,抽象出数据结构和字符编码等大型机元素。
- Raincode 控制台为 IMSql 提供基于 Web 的管理环境。
- SQL Server Service Broker 是 IMSql 组件的通信主干。
组件
Azure SQL 托管实例 是属于 Azure SQL 服务组合的云中的托管、安全 up-to日期 SQL 实例。 在此体系结构中,SQL 托管实例充当 IMSql 的数据库平台。 它取代大型机 IMS 数据库系统,并提供存储和事务处理功能。
Azure 虚拟机规模集 是一项计算服务,提供自动化和负载均衡的 VM 缩放,可简化应用程序的管理并提高可用性。 在此体系结构中,虚拟机规模集托管 IMSql 处理服务器,并处理具有自动缩放功能的典型 IMS 工作负荷。
Azure 虚拟网络是 Azure 中专用网络的基本构建基块。 它使许多类型的 Azure 资源(如 VM)能够更安全地相互通信、Internet 和本地网络。 在此体系结构中,虚拟网络为所有 IMSql 组件提供网络基础和安全通信基础结构。
备选方法
可以使用 Azure 虚拟机中的 SQL Server 作为 SQL 托管实例的替代方法。 建议在此体系结构中使用 SQL 托管实例,因为它具有高可用性、与各种 Azure 服务无缝集成以及管理基础安全修补程序和维护等优点。
可以使用 Azure 单 VM 体系结构作为虚拟机规模集的替代方案。 建议将单个 VM 用于具有恒定负载和性能需求且无需缩放的工作负载。 此体系结构使用虚拟机规模集来处理典型的 IMS 工作负载。
方案详细信息
此体系结构演示如何将具有关键 IMS 特性和功能的大型机工作负载无缝地重新托管到 Azure。 无需转换或修改现有应用程序。 此体系结构使用 IMSql 和 Azure SQL。
- Raincode 编译器为 .NET 生成 100% 线程安全的托管代码。 .NET 程序集由 IMSql 处理服务器动态加载并调用。
- IMSql 本质上是非转换性的。 它保留源(COBOL、PL/I)原样。 不更改特定于 IMS 的 CBLTDLI 和 PLITDLI 调用和 EXEC DLI 语句。 此功能可确保生成的系统具有最佳可维护性。 它扩展到 IMS DB 数据:数据按原样批量导入,无需更改、清理或规范化。
- IMSql 使用可靠、通用且可缩放的 SQL Server 作为数据库、事务处理器和执行平台。
- IMSql 可在以下三种模式下运行:
- 联机
- Batch
- 加载和卸载(用于数据迁移或用于生成或使用顺序文件的 JCL)
- 在大型机上,将编译数据库描述 (DBD) 和程序规范块 (PSB),以创建数据库和程序描述。 同样,在 IMSql 上,DBD 和 PSB 编译为 XML 表示形式。 此表示形式使 IMS 感知型程序能够确定与之相关的数据库段。 它还驱动 IMSql 的各种服务器端项目的生成,如数据库架构和存储过程。
可能的用例
- 实现基础结构现代化,消除与 IMS(或更概括地说,与大型机)相关的高成本、限制和严格性。
- 通过实现云原生解决方案和支持 DevOps 策略来减少技术债务。
- 将 IMS 工作负载移动到云中,而不需要完全重新开发。
- 移动业务关键应用程序,同时保持与其他本地应用程序的连续性。
注意事项
这些注意事项实现 Azure Well-Architected 框架的支柱,这是一组指导原则,可用于提高工作负荷的质量。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
可靠性
可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅 可靠性的设计评审清单。
- 此 OLTP 体系结构可以部署在多个区域,并且可以合并异地复制数据层。
- Azure 数据库服务支持区域冗余,并且可以在服务中断期间故障转移到辅助节点或启用维护活动。
安全性
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅 安全的设计评审清单。
此解决方案使用 Azure 网络安全组来管理进出 Azure 资源的流量。 有关详细信息,请参阅网络安全组。
Azure 数据库服务中提供了以下安全选项:
- 静态数据加密
- 动态数据掩码
- Always Encrypted 数据
有关设计高度安全的 SQL 解决方案的一般性指导,请参阅 Azure 安全建议。
成本优化
成本优化是研究减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅 成本优化的设计评审清单。
- Azure 可在 Windows VM 上运行,从而实现成本优化。 可以在不使用他们时关闭 VM,并为已知的使用模式编写计划。 Azure 有助于避免不必要的成本,方法是确定正确的资源类型数、分析一段时间内的支出,以及在不超支的情况下进行缩放以满足业务需求。
- SQL 托管实例提供各种定价层(如常规用途和业务关键),以根据使用情况和业务关键性来优化成本。
- 使用一年或三年合同的 Azure 预留和适用于计算的 Azure 节省计划,与即用即付价格相比,这可实现显著节省。
要估计此解决方案的实现成本,请使用 Azure 定价计算器。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Bhaskar Bandam | 高级项目经理
其他参与者:
- Mick Alberts | 技术文档撰写人
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
有关详细信息,请联系 legacy2azure@microsoft.com。
相关资源
请参阅配套体系结构:
更多相关资源: