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

重构运行 Adabas 和 Natural 的大型机系统

Azure Kubernetes 服务 (AKS)
Azure ExpressRoute
Azure 托管磁盘
Azure NetApp 文件

Software AG 提供了一个流行的 4GL 大型机平台,该平台基于 Natural 编程语言和 Adabas 数据库。 对于正在使用运行 Adabas 和 Natural 的大型计算机并正在寻找使这些工作负荷现代化并将其迁移到云中的方法的组织而言,本文为他们提供了相应的体系结构。

大型机体系结构

此图说明了在迁移到 Azure 之前安装了 Software AG 的 Adabas 和 Natural 模块的大型机示例。 此示例演示 IBM z/OS 体系结构。

示意图显示迁移到 Azure 之前使用 Software AG 的 Adabas 和 Natural 的大型机体系结构。

下载此体系结构的 Visio 文件

工作流

A. 输入通过 TCP/IP 进行,包括 TN3270 和 HTTP(S)。 大型机的输入使用标准大型机协议。

B. 接收应用程序可以是批,也可以是在线系统。

C. Natural、COBOL、PL/I、Assembler 或其他兼容语言在启用的环境中运行。

D. 常用的数据和数据库服务是分层/网络数据库系统和关系数据库类型。

E. 公共服务包括环境中的程序执行、I/O 操作、错误检测和保护。

F. 中间件和实用程序管理环境中的磁带存储、排队、输出和 Web 服务等服务。

G. 操作系统在引擎和它运行的软件之间提供接口。

H. 需要有分区来运行单独的工作负荷并隔离环境中的工作类型。

Azure 体系结构

此图显示了如何使用重构方法将旧版体系结构迁移到 Azure,从而使系统现代化:

显示迁移到 Azure 后的旧体系结构的图表。

下载此体系结构的 Visio 文件

工作流

  1. 输入。 输入通常通过来自远程客户端的 Azure ExpressRoute 或通过当前运行 Azure 的其他应用程序进行。 在任一情况下,TCP/IP 连接都是连接到系统的主要方式。 TLS 端口 443 提供对基于 Web 的应用程序的访问。 你可以让基于 Web 的应用程序表示层几乎保持不变,以最大限度地减少用户重新培训。 也可以根据你的要求使用新式 UX 框架更新此层。 对于 VM 的管理员访问权限,你可以使用 Azure Bastion 主机通过最小化开放端口来最大限度地提高安全性。

  2. 在 Azure 中访问。 在 Azure 中,通过 Azure 负载均衡器来提供对应用程序计算群集的访问权限。 使用此方法可以横向扩展计算资源以处理输入工作。 可以使用 7 级(应用程序级)或 4 级(网络协议级)负载均衡器。 但是,使用哪种类型的负载均衡器取决于应用程序输入如何到达计算群集的入口点。 建议使用具有 Web 应用程序防火墙功能的 Azure 应用程序网关来处理第 7 层流量。

  3. 应用程序计算群集。 体系结构支持在容器中运行的应用程序,这些应用程序可以部署在 Azure Kubernetes 服务 (AKS) 等容器编排器中。 Adabas 和 Natural 组件可在基于 Linux 的容器内运行。 你可以重新设计旧应用程序的架构,从而对基于容器架构进行现代化改造,并使之在 AKS 之上运行。

  4. ApplinX 终端仿真 (Software AG)。 ApplinX 是一种基于服务器的技术,可提供 Web 连接并集成到核心系统应用程序中,而无需更改应用程序。 Natural Online 使在线用户能够通过 Web 浏览器连接到 Natural 应用程序。 如果没有 ApplinX,用户需要使用 SSH 连接终端仿真软件。 这两个系统都在容器中运行。

  5. EntireX (Software AG)。 EntireX 使你能够轻松地将在 Integration Server 上运行的服务连接到以 COBOL 和 Natural 等语言编写的关键任务程序。 Natural Business Services 支持 API 访问在 Natural 中编程的业务功能。 这两个系统都在容器中运行。

  6. Adabas (Software AG)。 Adabas 是一个高性能的 NoSQL 数据库管理系统。 Natural batch (Software AG) 是用于运行批处理作业的专用组件。 由你选择的批处理作业调度系统安排的自然批处理作业应与 Adabas 数据库在同一节点上运行,以避免性能影响。

  7. 存储。 数据服务结合使用高性能存储(超/高级 SSD)、文件存储 (NetApp) 和标准存储(Blob、存档、备份),这些存储可以是本地冗余或异地冗余,具体取决于使用情况。 节点操作系统使用托管磁盘存储。 所有持久性数据(如数据库文件、保护日志、应用程序数据和备份)都使用 Azure NetApp 文件。 AKS 管理存储在托管磁盘中的操作系统卷。 数据库中的所有关键业务数据,包括 ASSO、DATA、WORK 文件和 Adabas 保护日志,都应写入 Azure NetApp 文件中的单独卷。

  8. CONNX。 CONNX for Adabas 模块通过 .NET、ODBC、OLE DB 和 JDBC 提供对 OS/390、z/OS、VSE、Linux、Solaris、HP-UX、AIX 和 Windows 上的 Adabas 数据源的高度安全、实时读/写访问。 CONNX 提供了一个数据虚拟化层,可使用连接器连接 Adabas 和其他数据源,如 Azure SQL 数据库、Azure Database for PosgreSQL 和 Azure Database for MySQL。

组件

  • Azure ExpressRoute 可通过连接服务提供商提供的专用连接将你的本地网络扩展到 Microsoft 云。 可以使用 ExpressRoute 与 Azure 和 Office 365 等 Microsoft 云服务建立连接。 或者,作为备份,也可以与 Azure VPN 网关建立连接。 但是,建议使用 ExpressRoute,以便通过安全性更高的高速专用连接连接到 Azure 环境。

  • AKS 是一项完全托管的 Kubernetes 服务,用于部署和管理容器化应用程序。 AKS 提供无服务器 Kubernetes、集成的持续集成和持续交付 (CI/CD) 以及企业级安全性和治理。 在此方案中,Adabas 和 Natural 容器都部署在 AKS 中。

  • Azure 托管磁盘是由 Azure 托管并与 Azure 虚拟机配合使用的块级存储卷。 有多种类型可供选择:超磁盘、高级固态硬盘、标准固态硬盘和标准硬盘。 固态硬盘用于此体系结构。 在此方案中,所有操作系统卷都存储在 Azure 托管磁盘中。

  • Azure NetApp 文件提供由 NetApp 提供支持的企业级 Azure 文件共享。 借助 Azure NetApp 文件,可以轻松迁移和运行基于文件的复杂应用程序,而无需更改代码。 在此方案中,所有持久性数据(如数据库文件、保护日志、应用程序数据和备份文件)都使用 Azure NetApp 文件。

方案详细信息

近 50 年来,在大型计算机上运行的应用程序一直是大多数业务运营的核心。 尽管这些大型机系统多年来提供了卓越的可靠性,但它们也开始出现一些问题,因为它们是刚性的,在某些情况下,难以维护且运行成本高。

许多组织正在寻找将这些系统进行现代化改造的方法。 他们正在寻找方法来释放维护这些系统所需的受限资源,控制其成本,并在与系统的交互中获得更大的灵活性。

Software AG 提供了一个流行的 4GL 大型机平台,该平台基于 Natural 编程语言和 Adabas 数据库。

有两种云合理化模式允许在 Azure 上运行 Adabas 和 Natural 应用程序:重新托管和重构。 本文介绍如何使用在 AKS 中管理的容器重构应用程序。 有关详细信息,请参阅本文后面的基于容器的方法

可能的用例

无论任何组织,只要采用了运行 Adabas 和 Natural 的大型计算机并计划对这些工作负荷进行现代化改造并将其迁移到云中,此体系结构都适用。

注意事项

基于容器的方法

要充分利用 Azure 的灵活性、可靠性和功能,你需要重新设计大型机应用程序的架构。 我们建议你将单体应用程序重写为微服务,并使用基于容器的方法进行部署。 容器将执行所需的所有软件捆绑到一个可执行包中。 它包括应用程序的代码以及运行应用所需的相关配置文件、库和依赖项。 容器化应用程序可以快速部署并支持流行的 DevOps 实践,例如持续集成 (CI) 和持续部署 (CD)。

Adabas 和 Natural 容器在 Pod 中运行,每个 Pod 执行特定任务。 Pod 是一个或多个容器的单元,这些容器位于同一节点上,并共享主机名和 IP 地址等资源。 由于 Pod 与基础平台分离,因此 Pod 中的组件可以独立缩放并支持更高的可用性。 容器化应用程序也是可移植的:在任何基础设施上统一且一致地运行。

需要编排和管理容器化服务及其相关的网络和存储组件。 我们推荐 AKS,这是一种托管 Kubernetes 服务,可自动执行群集和资源管理。 你指定所需的节点数量,然后 AKS 会将你的容器安装到正确的节点上,以充分利用资源。 AKS 还支持自动推出和回滚、服务发现、负载平衡和存储编排。 AKS 支持自我修复:如果容器出现故障,AKS 会启动一个新容器。 此外,你可以安全地将机密和配置设置存储在容器之外。

本文中的体系结构图显示了 Adabas 和 Natural 的基于容器的实施。 设置 AKS 时,为节点指定 Azure VM 大小,VM 大小将定义存储 CPU、内存和类型,如高性能固态硬盘 (SSD) 或常规硬盘驱动器 (HDD)。 Natural 在三个或更多 VM 实例(节点)上运行,以提高用户界面(Natural Online 和 ApplinX)和 API 层(Natural Service 和 EntireX)的可扩展性和可用性。

在数据层,Adabas 在 AKS 群集中运行,它会根据资源使用情况自动扩展和扩展。 你可以在同一个 pod 中运行多个 Adabas 组件,或者为了提高规模,AKS 可以将它们分布在群集中的多个节点上。 Adabas 使用 Azure NetApp 文件,这是一种高性能的计量文件存储服务,用于存储所有持久数据,例如数据库文件、保护日志、应用数据和备份。

将 Natural 批次 Pod 与 Adabas Pod 置于同一可用性区域(数据中心)。 应该使用“邻近放置组”将 Adabas 和 Natural 批次 Pod 放置在同一可用性区域内的同一节点池中。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅可靠性设计审查检查表

这个体系结构主要建立在 Kubernetes 上,其中包括 pod 安全标准和机密等安全组件。 Azure 还提供其他功能,例如 Microsoft Entra ID、Microsoft Defender for Containers、Azure Policy、Azure Key Vault、网络安全组和协调群集升级。 重构后的容器应部署到可通过私有 API 服务器和内部 IP 地址进行入站访问的专用 AKS 群集。 所有出站流量都应通过出口防火墙层进行路由。

成本优化

成本优化就是减少不必要的费用和提高运营效率。 有关详细信息,请参阅成本优化设计评审核对清单

  • 使用“群集自动缩放程序”和“水平 Pod 自动缩放程序”,根据流量条件来缩放 Pod 和节点的数量。 Adabas Pod 可使用水平 Pod 自动缩放程序进行成本优化。

  • 使用“垂直 Pod 自动缩放程序”以分析并设置 Pod 所需的 CPU 和内存资源。 此方法可以优化资源分配。

  • 根据工作符合要求为节点池选择合适的 VM 大小

  • 为特定工作负荷创建具有不同 VM 大小的多个节点池。 使用节点标签、节点选择器和相关性规则来优化资源分配。

  • 为 Azure NetApp 文件选择正确的“服务级别”和“容量池大小”。 有关成本管理建议,请参阅 Azure NetApp 文档的成本模型

  • 对 Azure NetApp 文件使用“预留容量”

  • 要监控和优化成本,请使用“Azure 顾问”、“Azure 预留项”和“Azure 节约计划”等成本管理工具。

  • 要估算使用成本,请使用 Azure 成本计算器

  • 为改进成本跟踪和管理,可使用“Azure 标记”将 AKS 资源与特定工作负荷关联起来。

卓越运营

卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅设计卓越运营的审查清单

通过重构,可以加快云的采用。 它还促进采用 DevOps 和敏捷工作原则。 你在开发和生产部署选项方面拥有完全的灵活性。

性能效率

性能效率是指工作负荷能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率设计评审核对清单

Kubernetes 提供了一个群集自动缩放程序。 自动缩放程序根据节点池中请求的计算资源调整节点数。 自动缩放程序每 10 秒监视一次指标 API 服务器,以了解是否需要更改节点数。 如果群集自动缩放程序确定需要进行更改,则 AKS 群集中的节点数会相应增加或减少。 

作者

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

主要作者:

  • Marlon Johnson | 高级 TPM

参与者:

要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

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

下面是一些其他资源: