使用 IMSql 将 IMS 工作负载重新托管到虚拟机
此体系结构演示了如何使用 Raincode 的 IMSql 以最简单的方式(即使用虚拟机)在 .NET 和 SQL Server 上重新托管 IMS 数据库管理器 (IMS DB) 和 IMS 事务管理器 (IMS TM) 系统。 可以重新编译旧版应用程序以面向 .NET 并以与大型机上的 IMS 交互的相同方式与 IMSql 进行交互。 IMSql 将大型机应用程序转换为 Azure 本机体系结构,同时完全保留业务逻辑。
体系结构
迁移前的 IBM z/OS 体系结构
下载此体系结构的 Visio 文件。
数据流
A. 用户使用 TN3270 和 HTTPS 等协议通过 TCP/IP 进行连接。
B. 大型机的输入使用标准大型机通信协议。
C. 应用程序接收数据。 这些应用程序要么是批处理系统,要么是在线系统。
D. COBOL、PL/I、Assembler 或其他兼容语言可在启用的环境中运行。
E. 数据库系统(通常是分层/网络和关系系统)存储数据。
F. 公共服务(如环境中的程序执行、I/O 操作、错误检测和保护)提供支持。
G. 中间件和实用程序管理环境中的磁带存储、排队、输出和 Web 服务等服务。
H. 操作系统在分区上运行。
I. 分区在环境中运行独立的工作负载和分隔的工作类型。
迁移后的 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 虚拟网络是 Azure 中专用网络的基本构建基块。 虚拟网络允许许多类型的 Azure 资源(例如虚拟机 (VM))以更高的安全性彼此通信、与 Internet 通信,以及与本地网络通信。 虚拟网络类似于你在自己的数据中心中运行的传统网络,但它提供了 Azure 基础结构的更多优势,例如缩放、可用性和隔离性。
- Azure 虚拟机规模集提供负载均衡的自动化 VM 缩放,可简化应用程序的管理并提高可用性。
- Azure SQL 托管实例(Azure SQL 服务组合的一部分)是云中托管的、高度安全且始终保持最新的 SQL 实例。
备选方法
可以使用 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。
相关资源
请参阅配套体系结构:
更多相关资源: