This blog was originally published on June 5, 2018, by Yee Rong Lai. |
A z/OS Connect EE service, API, or API requester is deployed and started in a compressed archive format known as the service archive (.SAR) file, API archive (.AAR) file, or API requester archive (.ARA) file. In a DevOps environment where a team needs to share, maintain, update, and test the same set of services, APIs, and API requesters, source files must be available from a central repository and their corresponding archive files must be deployed in an automated fashion. The source files are properties files or project files in the API toolkit, not the generated archive files.
For example, for z/OS Connect EE services and APIs that are created and modified in the Eclipse-based z/OS Connect EE API toolkit:
- The service project folder and the API project folder can be stored in a SCM.
- Changes to the SCM trigger a script in tools such as Jenkins or IBM UrbanCode Deploy that runs the build toolkit to generate a service archive or API archive file.
- The updated service archive or API archive is deployed by using the z/OS Connect EE RESTful administration interface.
The diagram below shows the general DevOps process flow. It demonstrates that source files to be stored in an SCM are project files from the API toolkit or properties files that are used by the Build toolkit to generate the archive files. The archive files should not be stored in SCM.
Figure 1 DevOps Workflow
Sample DevOps pipeline
The following diagram shows a sample DevOps pipeline using Jenkins, Artifactory, and IBM UrbanCode Deploy.
- The build toolkit is used as part of the build automation scripts to build the archive files for test and production.
- The generated archive files can be stored in an artifact repository.
- Deployment Orchestration Automation is used to deploy stored archive files by using the RESTful interface or the so-called “dropins” mechanism.
Figure 2 Sample DevOps pipelineWhen the z/OS Connect EE server is configured to monitor changes to the designated directories for services, APIs, and API requesters, the archive files can be simply “dropped” into those directories. You can also use the RESTful administration interface to check for the status of the service, API, or API requester. If it is started, you can stop it before copying the new archive file over by using the RESTful administration interface.