DevOps with IBM z/OS Connect

Identify a DevOps process before you start your development to automate the building, deploying and administering of APIs for continuous integration and delivery.

A DevOps pipeline defines a series of tasks that are run in a predefined order to automate the development and deployment of IBM z/OS Connect projects for continuous integration and delivery. You can choose to automate the start of the DevOps pipeline by using technologies such as webhooks with GitHub, or you can manually start the DevOps pipelines.

Enterprise DevOps workflow

An enterprise DevOps workflow typically involves automated processes and includes the following key characteristics:
  • Properties files and project files for generating the archive files are treated as source code.
  • Changes to the source code are managed by an SCM.
  • A build tool is used to generate the archive files as part of build automation scripts.
  • The generated archive files are not stored in the SCM, but in a location that the deployment automation script can access.

For example, when a z/OS Connect API project or service project is created or modified, the property files and project files are checked into a source control management (SCM) system. Changes to the SCM trigger a script in a build environment, such as Jenkins, that runs the build to generate the deployable file. Or a DevOps tool, such as IBM UrbanCode Deploy or webhooks with GitHub can be configured to pull the SCM for updates and then run the build to generate the archive file.

The generated file is then automatically deployed by using REST calls, or by copying the files to the designated directories for automated deployment, or by deploying the container image.

DevOps with zosConnect-2.0

The following diagram demonstrates how the build toolkit supports the DevOps workflow by taking defined properties files or project directories from the API toolkit to create the service archive, API archive, and API requester archive files.
Figure 1. DevOps support with the build toolkit
In a DevOps environment, you can use the build toolkit to generate the service archive (.sar) file, API archive (.aar) file, and API requester artifacts, which include the API requester archive (.ara) file. The input is either a properties file, or a service or API project from the API toolkit.

DevOps with zosConnect-3.0

As developers make changes in the API project, these changes are updated on the file system in the API project that was mounted. These files are the source code for your API and should be checked into SCM. The API source is then available to anyone who needs to make future updates and the most recent version is always used for deployment.

With z/OS Connect Designer, it is recommended that the API project folder should be an SCM-controlled directory so changes are tracked. When the API project is first created (by importing an OpenAPI 3.0 document) in z/OS Connect Designer, an API project template is created in the API project folder. This includes a default .gitignore file that is used by Git SCM. The .gitignore file has defaults detailing files and patterns to exclude from the repository and is hidden by default on most operating systems due to starting with a .. It can be used as a reference ignore file when other SCM solutions are used.

Attached to the SCM solution is a DevOps pipeline of familiar enterprise tools that use a z/OS Connect API project in a build process to create an API server image.

This API server image is used through development, staging, test, user acceptance testing (UAT), pre-production and eventually deploying to a live production environment.
Figure 2. A z/OS Connect zosConnect-3.0 containerized API project in a DevOps pipeline
A z/OS Connect API project in a DevOps pipeline. Starting with the z/OS Connect API project in SCM, to the build process with the API project, the downloaded z/OS Connect Server image and the configuration files, pushing the image to an image repository and from there, available for lifecycle testing environments through to production.