Modernization with IBM Z and Cloud - Group home

Bring Your Mainframe Application Development into Your Enterprise AWS Code Pipelines

  

Bring Your Mainframe Application Development into Your Enterprise AWS Code Pipelines

By Suman Gopinath, STSM & Chief Architect DevOps for IBM Z Hybrid Cloud – IBM
By Mathieu Dalbin, IBM DevOps Transformation Specialist – IBM
By Gilberto Biondo, Mainframe Modernization Specialist SA – AWS
By Paulo Vitor Pereira, Mainframe Modernization WW Tech Leader – AWS

For more than a decade, DevOps has been a major trend for enterprises willing to improve the time to market and increase the quality of their delivered applications.

In a recent IBV study, four out of five organizations express their needs to rapidly transform to keep up with competition, including modernizing their mainframe-based applications and adopting more open development practices.

In this aspect, it’s important for the mainframe applications to implement the same CI/CD toolchain and practices as the rest of the enterprise. But what if the rest of the enterprise systems use AWS code pipelines?

Developers who build and deploy applications on the cloud leverage open-source, de-facto standard solutions—like Git and CI/CD orchestration brought by DevOps services—to automate the build and the deployment of their applications through CI/CD pipelines.

In combination with IBM z/OS DevOps solutions designed to address mainframe-specific needs, developers can benefit from the same cloud services, all offering a cloud-native experience with the IBM Z and Cloud Modernization Stack components, available on Amazon Web Services (AWS), to automatically build and deploy z/OS applications.

Solution Overview

IBM Z and Cloud Modernization Stack on AWS provide a cloud-native experience to modernize development practices, helping developers to adopt a unified set of tools and DevOps methodology.

The Wazi components available in IBM Z and Cloud Modernization Stack provide modern experiences for analyzing, developing, and testing mainframe applications in an isolated way, implementing the DevOps philosophy for developers to gain speed and flexibility.

Wazi Analyze and Wazi DevSpaces bring the capability to analyze and edit source code from a modern source control management (SCM) tool like Git.

Wazi DevSpaces provides an in-browser integrated developer environment (IDE) that you can use to code, build, and debug Cobol, PL/1, Assembler, REXX, and JCL applications, with a single-click developer workspace that eliminates local environment configuration.

Through its web-based interface, Wazi Analyze helps developers visually comprehend relationships between applications and make changes with confidence before their deployment.

With Wazi Sandbox, a personal z/OS environment can be provisioned on AWS, with all the required z/OS resources (IMS and CICS, for example) for developers to work in isolation, execute initial builds, and conduct early tests to verify the correct execution after code changes.

IBM Z and Cloud Modernization Stack includes components that are containerized and orchestrated through Red Hat OpenShift Container Platform (OCP), enabling developers with self-service cloud-native tools available on AWS.

The DevOps toolchain for mainframe applications can use the same AWS services, such as AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy, and AWS CodePipeline as the rest of the enterprise, to implement a CI/CD pipeline for z/OS software development.

These services can interact with IBM Dependency Based Build and Ansible playbooks from IBM zStack Certified Content for Ansible collections for build and deployment, as illustrated below.

Architecture and Deployment Options

The following diagram depicts the architecture set in place on AWS to demonstrate development solutions and a CI/CD pipeline for mainframe applications.


Figure 1 –  CI/CD pipeline architecture for mainframe applications on AWS.

In the development environment defined on AWS in a virtual private cloud (VPC), an OpenShift Container Platform is provisioned to support the containerized Wazi components that developers will use from the IBM Z and Cloud Modernization Stack.

AWS CodeCommit

The AWS CodeCommit service is hosting and controlling the lifecycle of the source code of the Cobol-based mainframe application. It’s a highly scalable, managed source control service that hosts private Git repositories, helping you collaborate on code with pull requests, branching, and merging, integrating with other AWS services, identity and access management (IAM) users and roles, and can be used by any Git-compatible client, including Wazi DevSpaces.

AWS CodeBuild

AWS CodeBuild is a fully managed continuous integration service that compiles source code, runs tests, and produces ready-to-deploy software packages. Because we are building for the IBM z/OS platform, AWS CodeBuild will run your build scripts in a container that connects to the z/OS system running in Wazi Sandbox, to execute incremental builds with IBM Dependency Based Build.

The artifacts (like load modules and database request modules) produced by the build process on Wazi Sandbox are then transferred back to the build container, packaged, and stored to an Amazon Simple Storage Service (Amazon S3) bucket where they are versioned.

AWS CodeDeploy

AWS CodeDeploy, a fully managed deployment service that automates software deployments to a variety of compute services, is used to deploy these packages to a target z/OS test environment, through an Amazon Elastic Compute Cloud (Amazon EC2) instance.

AWS CodeDeploy can interact with z/OS deployment frameworks. On this instance, Ansible playbooks are created based on the content of the package to deploy, and executed to perform z/OS-specific tasks, like copying the artifacts to be deployed to identified datasets, and eventually performing DB2 Bind and CICS NEWCOPY actions.

AWS CodePipeline

These CI/CD actions are orchestrated with AWS CodePipeline, a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable application and infrastructure updates. This can be extended to add additional steps for quality checking or integration tests.

When developers commit their change in AWS CodeCommit through Wazi DevSpaces (after analyzing the impact of the changes with Wazi Analyze and debugging the new versions of programs), AWS CodePipeline automatically triggers the execution of a CI/CD pipeline, building the z/OS programs with AWS CodeBuild and Wazi Sandbox, and deploying to a z/OS environment with Ansible playbooks driven by AWS CodeDeploy.

The pipeline can be extended to include a manual approval, to then build and deploy the artifacts to the test environments and production environment running on IBM zSystems.

Solution Benefits

Developing z/OS applications does not have to be any different from developing on any other platform. Developers can get the same tooling that provides the flexibility and agility that comes with cloud-native development tools, when they look to adopt new ways of developing mainframe applications.

Setting up this development framework to support modern development practices based on DevSecOps concepts empowers mainframe developers to deliver faster, reducing time to market and increasing velocity and software quality.

Conclusion

Enterprises can achieve increased agility using the same CI/CD pipeline on AWS for their mainframe workloads, using the IBM Z and Cloud Modernization Stack. Ready to get started? Click here to use the AWS Marketplace offering of IBM Z and Cloud Modernization Stack, or click here to learn more about IBM Z and Cloud Modernization Stack.

 

1  Application modernization on the mainframe – IBV Study, March 2022