大型机现代化: DevOps 在 AWS 上使用 Micro Focus - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

大型机现代化: DevOps 在 AWS 上使用 Micro Focus

由 Kevin Yung (AWS) 编写

源:IBM z/OS 大型机

目标:AWS

R 类型:不适用

环境:PoC 或试点

技术: DevOps; 基础架构

AWS 服务:亚马逊 EC2;AWS;AWS CloudFormation;AWS CodeBuild;AWS CodeCommit CodeDeploy;AWS Systems Manager;AWS CodePipeline

总结

客户面临的挑战

在大型机硬件上运行核心应用程序的组织,在硬件需要纵向扩展以满足数字创新需求时,通常会遇到一些挑战。这些挑战包括以下制约因素。 

  • 由于大型机硬件组件不灵活,更换成本高昂,因此大型机开发和测试环境无法扩展。

  • 由于新开发人员对传统大型机开发工具不熟悉、不感兴趣,大型机开发正面临技能短缺的问题。大型机开发中不具备容器、持续集成/持续交付(CI/CD)管道和现代测试框架等现代技术。

模式结果

为了应对这些挑战,Amazon Web Services (AWS)和 Amazon Web Services Partner Network 合作伙伴 Micro Focus 合作创建了此模式。该解决方案旨在帮助您实现以下成果。

  • 提高开发人员的工作效率。开发人员可以在几分钟内获得新的大型机开发实例。

  • 使用 Amazon Web Services Cloud 创建容量几乎不受限制的新大型机测试环境。

  • 快速配置新的大型机 CI/CD 基础架构。使用 AWS CloudFormation 和 AWS Systems Manager 可以在一小时内完成 AWS 上的预配置。

  • 原生使用 AWS DevOps 工具进行大型机开发,包括 AWS、AWS CodeBuild、AWS CodeCommit、AWS CodePipeline 和亚马逊弹性容器注册表 (A CodeDeploy mazon ECR) Amazon ECR。

  • 将大型机项目中的传统瀑布式开发转变为灵活开发。

技术摘要

在此模式中,目标堆栈包含以下组件。

逻辑组件

实施方案

描述

源代码存储库

Micro Focu AccuRev s Server CodeCommit、Amazon ECR

源代码管理 - 该解决方案使用两种类型的源代码。 

  • 大型机源代码,例如 COBOL、JCL 等。 

  • AWS 基础设施模板和自动化脚本 

这两种类型的源代码都需要版本控制,但它们在不同的 SCM 中进行管理。部署到大型机或 Micro Focus 企业服务器中的源代码在 Micro Focus AccuRev Server 中管理。AWS 模板和自动化脚本在中进行管理 CodeCommit。Amazon ECR 用于 Docker 映像存储库。

企业开发人员实例

Amazon Elastic Compute Cloud(Amazon EC2)、适用于 Eclipse 的 Micro Focus 企业开发人员

大型机开发人员可以使用 Micro Focus Enterprise Developer for Eclipse 在 Amazon EC2 中开发代码。这样就无需依赖大型机硬件来编写和测试代码。 

Micro Focus 许可证管理

Micro Focus 许可证管理器

对于集中式 Micro Focus 许可证管理和治理,该解决方案使用 Micro Focus License Manager 来托管所需的许可证。

CI/CD 管道

CodePipeline、、 CodeBuild CodeDeploy、容器中的 Micro Focus 企业开发人员、容器中的 Micro Focus 企业测试服务器、Micro Focus 企业服务器

大型机开发团队需要 CI/CD 管道来执行代码编译、集成测试和回归测试。在 AWS 中 CodePipeline , CodeBuild 可以原生使用容器中的 Micro Focus 企业开发人员和企业测试服务器。

先决条件和限制

先决条件

名称

描述

py3270

py3270 是 x3270(IBM 3270 终端模拟器)的 Python 接口。它为 x3270 或 s3270 子进程提供 API。

x3270

x3270 是用于 X Window System 和 Windows 的 IBM 3270 终端模拟器。 开发人员可以使用它来进行本地单元测试。

机器人框架-大型机-3270-库

Mainframe3270 是基于 py3270 项目的 Robot Framework 库。

Micro Focus Verastream

Micro Focus Verastream 是一个集成平台,支持以测试移动应用程序、Web 应用程序和 SOA Web 服务的方式测试大型机资产。

Micro Focus 统一功能测试(UFT)安装程序和许可证

Micro Focus Unified Functional Testing 是一款为软件应用程序和环境提供功能和回归测试自动化的软件。

Micro Focus Enterprise Server 安装程序和许可证

Enterprise Server 为大型机应用程序提供运行时系统环境。

Micro Focus Enterprise Test Server 安装程序和许可证

Micro Focus Enterprise Test Server 是一个 IBM 大型机应用程序测试环境

适用于服务器的 Micro Focus AccuRev 安装程序和许可证,以及 Windows 和 Linux 操作系统的 Micro Focus AccuRev 安装程序和许可证

AccuRev 提供源代码管理 (SCM)。该 AccuRev 系统专为一组正在开发一组文件的人员使用而设计。

Micro Focus Enterprise Developer for Eclipse 安装程序、修补程序和许可证

Enterprise Developer 为大型机开发人员提供了一个平台,用于开发和维护核心大型机在线和批处理应用程序。

限制

  • 中不支持构建 Windows Docker 镜像。 CodeBuild此报告问题需要 Windows 内核/HCS 和 Docker 团队的支持。解决方法是使用 Systems Manager 创建 Docker 映像构建运行手册。此模式使用变通方法构建 Micro Focus Enterpise Developer for Eclipse 和 Micro Focus Enterprise Test Server Container 映像。 

  • Windows 尚不支持来自的虚拟私有云 (VPC) 连接,因此该模式不使用 Micro Foc CodeBuild us License Manager 来管理 Micro Focus Enterprise Developer 和 Micro Focus 企业测试服务器容器中的许可证。

产品版本

  • Micro Focus Enterprise Developer 5.5 或更高版本

  • Micro Focus Enterprise Test Server 5.5 或更高版本

  • Micro Focus Enterprise Server 5.5 或更高版本

  • 微焦点 AccuRev 7.x 或更高版本

  • 适用于 Micro Focus Enterprise Developer 和 Enterprise Test Server 的 Windows Docker 基础映像:microsoft/dotnet-framework-4.7.2-runtime

  • 适用于 AccuRev 客户的 Linux Docker 基础镜像:amazonlinux: 2

架构

大型机环境

在传统的大型机开发中,开发人员需要使用大型机硬件来开发和测试程序。它们面临容量限制,例如,开发/测试环境的每秒百万条指令数(MIPS)受到限制,并且它们必须依赖大型计算机上可用的工具。

在许多组织中,大型机开发遵循瀑布式开发方法,团队依靠较长的周期来发布变更。这些产品的发布周期通常长于数字产品开发。  

下图显示了多个大型机项目共享大型机硬件进行开发的情况。在大型机硬件中,为更多项目横向扩展开发和测试环境的成本很高。

Diagram showing mainframe architecture with z/OS, IBM Z, and various components for project teams.

 

 

SaaS 架构

这种模式将大型机开发扩展到 AWS Cloud。首先,它使用 Micro Foc AccuRev us SCM 在 AWS 上托管大型机源代码。然后,它使 Micro Focus Enterprise Developer 和 Micro Focus Enterprise Test Server 可用于在 AWS 上构建和测试大型机代码。 

下文将介绍该模式的三个主要组成部分。

1。SCM

在 AWS 中,该模式使用 Micro Foc AccuRev us 为大型机源代码创建一组 SCM 工作空间和版本控制。其基于流的架构可实现多个团队的并行大型机开发。要合并更改,请 AccuRev 使用升级概念。要将该更改添加到其他工作空间,请 AccuRev 使用更新概念。

在项目级别,每个团队可以创建一个或多个直播 AccuRev 来跟踪项目级别的变化。这些被称为项目流。这些项目流继承自同一父流。父流用于合并来自不同项目流的更改。

每个项目流都可以将代码提升到 AccuRev,并且设置了提升后触发器来启动 AWS CI/CD 管道。项目流更改的成功生成可以提升到其父流,以进行更多回归测试。 

通常,父流被称为系统集成流。当从项目流提升到系统集成流时,提升后触发器会启动另一个 CI/CD 管道来运行回归测试。

除大型机代码外,此模式还包括 AWS CloudFormation 模板、Systems Manager Automation 文档和脚本。按照 infrastructure-as-code 最佳实践,它们在 AWS 中受版本控制。 CodeCommit 

如果您需要将大型机代码同步回大型机环境进行部署,Micro Focus 提供了企业同步解决方案,该解决方案可将 SCM 中的代码同步回大型机 AccuRev SCM。

2。开发人员和测试环境

在大型组织中,要扩展成百甚至上千名大型机开发人员是一项挑战。为了解决此限制,该模式使用 Amazon EC2 Windows 实例进行开发。在实例上,安装了 Micro Focus Enterprise Developer for Eclipse 工具。开发人员可以在实例上本地执行所有大型机代码测试和调试。 

AWS Systems Manager 状态管理器和 Automation 文档用于自动预置开发人员实例。创建开发者实例的平均时间在 15 分钟以内。准备了以下软件和配置。

  • AccuRev Windows 客户端,用于检出源代码并将其提交到 AccuRev

  • Micro Focus Enterprise Developers for Eclipse 工具,用于在本地编写、测试和调试大型机代码

  • 开源测试框架 Python 行为驱动开发(BDD)测试框架 Behave、py3270 和 x3270 模拟器,用于创建脚本来测试应用程序

  • 一个 Docker 开发人员工具,用于生成企业测试服务器 Docker 映像并在企业测试服务器 Docker 容器中测试应用程序 

在开发周期中,开发人员使用 EC2 实例在本地开发和测试大型机代码。成功测试本地更改后,开发人员会将更改推广到 AccuRev 服务器。 

3。CI/CD 管道

在该模式中,CI/CD 管道用于在部署到生产环境之前进行集成测试和回归测试。 

正如 SCM 部分所述, AccuRev 使用两种类型的流:项目流和集成流。每个流都与 CI/CD 管道挂钩。为了在 AccuRev 服务器和 AWS 之间执行集成 CodePipeline,该模式使用升级 AccuRev 后脚本创建事件来启动 CI/CD。

例如,当开发者在中推广对项目流的更改时 AccuRev,它会启动一个升级后脚本以在 AccuRev Server 中运行。然后,该脚本将更改的元数据上传到 Amazon Simple Storage Service (Amazon S3)桶以创建 Amazon S3 事件。此事件将启动 CodePipeline 已配置的管道运行。 

集成流及其关联的管道使用相同的事件启动机制。 

在 CI/CD 管道中, CodeBuild 与 Micro Foc AccuRev us Linux 客户端容器一起 CodePipeline 使用来查看直播中的 AccuRev 最新代码。然后,管道开始 CodeBuild 使用 Micro Focus Enterprise Developer Windows 容器来编译源代码,并使用 Micro Focus 企业测试服务器 Windows 容器 CodeBuild 来测试大型机应用程序。

CI/CD 管道使用 AWS CloudFormation 模板构建,蓝图将用于新项目。通过使用这些模板,项目只需不到一个小时即可在 AWS 中创建新的 CI/CD 管道。

为了在 AWS 上扩展您的大型机测试能力,该模式构建了 Micro Focus DevOps 测试套件、Micro Focus Verastream 和 Micro Focus UFT 服务器。通过使用现代 DevOps 工具,您可以根据需要在 AWS 上运行任意数量的测试。

下图显示了在 AWS 上使用 Micro Focus 的大型机开发环境示例。

AWS development pipeline with shared components for multiple project teams.

 

目标技术堆栈

本节将详细介绍该模式中每个组件的架构。

1。源代码存储库 — AccuRev SCM

Micro Foc AccuRev us SCM 的设置是为了管理大型机源代码版本。为了获得高可用性, AccuRev 支持主模式和副本模式。操作员在主节点上执行维护时可以故障转移到副本。 

为了加快 CI/CD 管道的响应速度,该模式使用 Amazon E CloudWatch vents 来检测源代码更改并启动管道的启动。

  1. 设置 CodePipeline 为使用 Amazon S3 来源。

  2. 设置 CloudWatch 事件规则是为了从源 S3 存储桶中捕获 S3 事件。

  3. CloudWatch 事件规则为管道设置了目标。

  4. AccuRev SCM 配置为在升级完成后在本地运行升级后脚本。

  5. AccuRev SCM 生成一个包含促销元数据的 XML 文件,脚本会将该 XML 文件上传到源 S3 存储桶。

  6. 上传后,源 S3 存储桶发送事件以匹配 CloudWatch 事件规则, CloudWatch 事件规则启动 CodePipeline 要运行的事件。 

当管道运行时,它会启动一个 CodeBuild 项目,使用 AccuRev Linux 客户端容器从关联 AccuRev 的流中查看最新的大型机代码。  

下图显示了 AccuRev 服务器设置。

AWS architecture diagram showing VPC with two Availability Zones, primary and replica instances, and data flow between components.

2。企业开发人员模板 

该模式使用 Amazon EC2 模板来简化开发人员实例的创建。通过使用 State Manager,它可以一致地将软件和许可证设置应用于 EC2 实例。

Amazon EC2 模板在其 VPC 上下文设置和默认实例设置中进行构建,并遵循企业标签要求。通过使用模板,团队可以创建自己的新开发实例。 

当开发人员实例启动时,通过与标签关联,Systems Manager 使用 State Manager 来应用自动化。自动化包括以下常规步骤。

  1. 安装 Micro Focus Enterprise Developer 软件并安装补丁。

  2. 安装适用于 Windows 的 Micro AccuRev Focus 客户端。

  3. 安装预先配置的脚本以供开发者加入 AccuRev 直播。初始化 Eclipse 工作区。

  4. 安装开发工具,包括 x3270、py3270 和 Docker。

  5. 将许可证设置配置为指向 Micro Focus License Manager 负载均衡器。

下图显示了由 Amazon EC2 模板创建的 Enterprise 开发人员实例,其中软件和配置由 State Manager 应用于该实例。企业开发人员实例连接到 Micro Focus License Manager 以激活其许可证。

AWS architecture diagram showing VPC across two availability zones with auto scaling group and instances.

 

3。 CI/CD 管道

如 AWS 架构部分所述,在该模式中,有项目级 CI/CD 管道和系统集成管道。每个大型机项目团队都会创建一个或多个 CI/CD 管道,用于构建他们在项目中开发的程序。这些项目 CI/CD 管道从关联 AccuRev 的流中检出源代码。 

在项目团队中,开发人员在关联的 AccuRev 流中推广他们的代码。然后,升级将启动项目管道以生成代码并运行和集成测试。 

每个项目 CI/CD 管道都使用带有 Micro Focus 企业开发者工具 Amazon ECR 镜像和 Micro Focus 企业测试服务器工具 Amazon ECR 镜像的 CodeBuild 项目。 

CodePipeline 并 CodeBuild 用于创建 CI/CDS 管道。因为 CodeBuild 并且 CodePipeline 没有预付费用或承诺,因此您只需为实际使用量付费。与大型机硬件相比,AWS 解决方案大大缩短了硬件预置的提前期,并降低了测试环境的成本。

在现代开发中,使用了多种测试方法。例如,测试驱动开发(TDD)、BDD 和机器人框架。通过此模式,开发人员可以使用这些现代工具进行大型机测试。例如,通过使用 x3270、py3270 和行为 python 测试工具,可以定义联机应用程序的行为。您还可以在这些 CI/CD 管道中使用构建大型机 3270 机器人框架。

下图显示了团队流 CI/CD 管道。 

Diagram showing image processing workflow with AWS 服务 and components.

下图显示了 Mainframe3270 Robot Framework CodePipeline 中生成的项目 CI/CD 测试报告。

Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.

下图显示了 Py3270 和 Behave BDD CodePipeline 中生成的项目 CI/CD 测试报告。

Test report summary showing 100% pass rate for 2 test cases related to bank demo functions.

成功通过项目级测试后,将测试的代码手动提升到 AccuRev SCM 中的集成流。在团队对其项目管道的测试覆盖率有信心后,可以自动执行此步骤。

升级代码时,系统集成 CI/CD 管道会签出合并的代码并执行回归测试。合并的代码将从所有并行项目流中提升。

根据测试环境所需的精细程度,客户可以在不同的环境中拥有更多的系统集成 CI/CD 管道,例如 UAT、Pre-Production。 

在该模式中,系统集成管道中使用的工具包括 Micro Focus Enterprise Test Server、Micro Focus UFT Server 和 Micro Focus Verastream。所有这些工具都可以部署到 Docker 容器中并与之一起 CodeBuild使用。

成功测试大型机程序后,构件将通过版本控制存储在 S3 存储桶中。 

下图显示了系统集成 CI/CD 管道。

Diagram showing AWS image processing workflow with Amplify SDK, Lambda functions, and S3 storage.

 

在系统集成 CI/CD 管道中成功测试构件后,可以将其提升为生产部署。 

如果您需要将源代码部署回大型机,Micro Focus 提供了企业同步解决方案,用于将源代码从 Mainframe Endeavor 同步 AccuRev 回 Mainframe Endeavor。

下图显示了将构件部署到 Micro Focus Enterprise Server 中的生产 CI/CD 管道。在此示例中, CodeDeploy 精心安排将经过测试的大型机工件部署到 Micro Focus Enterprise Server 中。

Workflow diagram showing steps from code to deployment with AWS 服务 icons.

除了 CI/CD 管道的架构演练外,您还可以阅读 AWS DevOps 博客文章使用 Micro Focus Enterprise Suite 在 AWS 上自动执行数千个大型机测试,了解有关在和中测试大型机应用程序的更多信息。 CodeBuild CodePipeline请参阅博客文章,了解在 AWS 上执行大型机测试的最佳实践和详细信息。

工具

工具

AWS 自动化工具

Micro Focus 工具

其他工具

操作说明

任务描述所需技能
使用 AWS CloudFormation 部署主 AccuRev SCM 服务器。AWS CloudFormation
创建 AccuRev 管理员用户。

登录 AccuRev SCM 服务器,然后运行 CLI 命令创建管理员用户。

AccuRev SCM 服务器管理员
创建 AccuRev 直播。

按顺序创建 AccuRev 从上层流继承的直播:制作、系统集成、团队直播。

AccuRev SCM 管理员
创建开发者 AccuRev 登录账户。

使用 AccuRev SCM CLI 命令为大型机开发人员创建 AccuRev 用户登录帐户。

AccuRev SCM 管理员
任务描述所需技能
使用 AWS 部署 Amazon EC2 启动模板 CloudFormation。

使用 AWS CloudFormation 为 Micro Focus 企业开发者实例部署 Amazon EC2 启动模板。该模板包括 Micro Focus Enterprise Developer 实例的 Systems Manager Automation 文档。

AWS CloudFormation
从 Amazon EC2 模板创建 Enterprise Developer 实例。Amazon Web Services Console 登录和大型机开发人员技能
任务描述所需技能
创建 Micro Focus Enterprise Developer 工具 Docker 映像。

使用 Docker 命令和 Micro Focus Enterprise Developer 工具 Dockerfile 创建 Docker 映像。

Docker
在 Amazon ECR 中创建 Docker 存储库。

在 Amazon ECR 控制台上,为 Micro Focus Enterprise Developer Docker 映像创建存储库。

Amazon ECR
将 Micro Focus Enterprise Developer 工具 Docker 映像推送到 Amazon ECR。

运行 Docker push 命令以推送企业开发人员工具 Docker 映像,以将其保存在 Amazon ECR 的 Docker 存储库中。

Docker
任务描述所需技能
创建 Micro Focus Enterprise Test Server Docker 映像。

使用 Docker 命令和 Micro Focus Enterprise Test Server Dockerfile 创建 Docker 映像。

Docker
在 Amazon ECR 中创建 Docker 存储库。

在 Amazon ECR 控制台上,为 Micro Focus Enterprise Test Server Docker 映像创建 Amazon ECR 存储库。

Amazon ECR
将 Micro Focus Enterprise Test Server Docker 映像推送到 Amazon ECR。

运行 Docker push 命令以在 Amazon ECR 中推送和保存企业测试服务器 Docker 映像。

Docker
任务描述所需技能
创建 AWS CodeCommit 存储库。

在 CodeCommit 控制台上,为基础设施和 AWS CloudFormation 代码创建基于 Git 的存储库。

AWS CodeCommit
将 AWS CloudFormation 模板和自动化代码上传到 CodeCommit 存储库。

运行 Git push 命令将 AWS CloudFormation 模板和自动化代码上传到存储库。

Git
通过部署团队直播 CI/CD 管道。 CloudFormation

使用准备好的 AWS CloudFormation 模板部署团队流 CI/CD 管道。

AWS CloudFormation
任务描述所需技能
创建 Micro Focus UFT Docker 映像。

使用 Docker 命令和 Micro Focus UFT Dockerfile 创建 Micro Focus Docker 映像。

Docker
在 Amazon ECR 中为 Micro Focus UFT 映像创建 Docker 存储库。

在 Amazon ECR 控制台上,为 Micro Focus UFT 映像创建 Docker 存储库。

Amazon ECR
将 Micro Focus UFT Docker 映像推送到 Amazon ECR。

运行 Docker push 命令以在 Amazon ECR 中推送和保存企业测试服务器 Docker 映像。

Docker
创建 Micro Focus Verastream Docker 映像。

使用 Docker 命令和 Micro Focus Verastream Dockerfile 创建 Docker 映像。

Docker
在 Amazon ECR 中为 Micro Focus Verastream 映像创建 Docker 存储库。

在 Amazon ECR 控制台上,为 Micro Focus Verastream 映像创建 Docker 存储库。

Amazon ECR
通过部署系统集成 CI/CD 管道。 CloudFormation

使用准备好的 AWS CloudFormation 模板部署系统集成 CI/CD 管道。

AWS CloudFormation
任务描述所需技能
使用 AWS Quick Start 部署 Micro Focus Enterprise Server。

要使用 AWS 部署 Micro Focus 企业服务器 CloudFormation,请在 AWS 快速入门上启动 Micro Focus 企业服务器。

AWS CloudFormation
部署生产部署 CI/CD 管道。

在 AWS CloudFormation 控制台上,使用 AWS CloudFormation 模板部署生产部署 CI/CD 管道。

AWS CloudFormation

相关资源

参考

Amazon Web Services Marketplace

AWS 快速入门