zDevops Integration with GITHub and Jenkins
DevOps becomes popular and familiarized with in IT industry. Wherever go, start up to Enterprise companies adopting DevOps which is set of new tools, process and technique where software development(Dev) and IT Operations(Ops) collaborates and implements new process with new roles in place.
What is zDevOPs?
Implementing the DevOps Key functions like Continuous Integration and Continuous Delivery for z artifacts is zDevOps. We can also name as Enterprise DevOps as system z is Enterprise Server managing mission critical business applications of several million instructions per second. In DevOps phases, Build and Deployment were very unique and different from distributed applications. The typical Build for z application or z/OS application is IBM Dependency Based Build ( IBM DBB). The deployment can be handled by Urbancode Deploy for z (UCDz).
IBM Dependency Based Build (DBB)
IBM Dependency Based Build (DBB) is an intelligent build system for traditional z/OS applications written in languages such as COBOL and PL/I that allows the analysis of build dependencies between objects. The goal of DBB is to provide automation capabilities that can be used on z/OS.
Our Enterprise zDevOps services includes
- System z application and z Infra with Enterprise DevOps consultation
- IBM Developer for z Implementation
- Mainframe Build tool IBM Dependency Based Build
- Mainframe Deployment tool Urban Code Deploy for z
- IDz with GITHUB with Git Perspective
- Jenkins Integration with ssh and IBM DBB
- zDevOps Integration Jenkins, IBM DBB with UCDz
- ZUnit Testing consultation and zUnit Testing training
- Mainframe with DevOps Integration tools
- Urbancode Deploy for z ( UCDz)
zDevOps Implementation with GITHub
Git helps software developer for sharing code, and do version control of code with GIT. It provides the distributed version control of Git, allows to create repositories, branches, commits, and pull requests. Git is a free and open source distributed version control tool, runs on all the platforms Windows, Linux, Mac and even z/OS (Mainframe Operating System)
It allows the developer to do parallel development, branching concepts helps to achieve this.
Git for z is with Rocket software open solution for z can be installed on z, to get connect with GIT server component. The pre-requisite for Rocket Git on z is z/OS v 2.14.4. This is as similar to SMP/e process, We can install Rocket Git on USS.
EGIT plugin installed on IBM Explorer for z, or IBM Developer for z to get the GIT perspective and to connect with Git Repository to clone or create the project, then commit changes with commit comments, and further pull request.
To enable z/OS with GIT | zDevOps Integration with ssh and IBM DBB
Understanding How GitHub Fits in A Mainframe DevOps Toolchain
Perhaps your distributed development teams use Git in some form or
fashion. There are a few options here:
This is a minimal toolchain that can be expanded as desired, adding tools such as ElasticSearch for distributed logging, SonarQube for automated code quality, IBM Test Data Manager for generation of masked test data from production data, and the list continues from there.
Here, the GitHub serves as a central hub (pardon the pun) of the toolchain as it acts like the glue between nearly all the components. What is not shown is much of the collaboration features of the tool that can control code reviews, pull request approvals, developer discussion threads as well as the ability to branch and merge from the master thus allowing developers to do parallel development.
IBM Dependency Based Build is required to handle the compilation and generation of deployable artifacts (load modules, listings, debug files,
etc). It has the intelligence to only compile what is needed based on the source members that have been edited. There is no need to recompile an
entire branch (which could potentially have hundreds of thousands of source members). In the image above, DBB will pull source from the
GitHub development branch for compilation.
Jenkins in this case handles the pipeline and controls when DBB is run, and also calls IBM Urbancode Deploy to handle the deployment steps
which can include such activities as the following:
- Copying out of dataset members to target z/OS LPARS
- Processing DB2 BINDS on packages and plans
- Performing CICS NEWCOPY steps on CICS load modules
- Performing ACB gens on IMS PSB files
- Integrating with a change control system such as Service Now to automate change request tickets.
- Completing a merge request in GitHub to move development code into a production branch upon successful deployment.
Also in this image, is IBM Developer for System z, an integrated development environment (IDE) for editing, analyzing, refactoring, and debugging code on z/OS such as COBOL, PL/I, Assembler, and C/C++. This is an Eclipse based tool that includes a Git client plugin, allowing the developer to pull source from the GitHub development stream, create pull requests, and merge pull requests from other developers.
IDz has both a desktop client as well as z/OS host FMIDs. That is the only part of the toolchain that is installed on the desktop. All others are installed on z/OS as started tasks, or on a Linux server.
A complete solution for choice and flexibility in Git implementation
As organizations look for the benefits of mainframe DevOps, our new Git integration with BMC Compuware ISPW gives mainframe development teams the flexibility to fully adopt Git or use the ISPW feature-branching sandbox for a controlled and isolated environment to create and change code. With a simple right-click, Git users take full advantage of the ISPW mainframe build, test, and deploy capabilities in their CI/CD pipeline.
Each team can choose to go 100 percent Git or have the option to use ISPW with feature branching for SCM. Both options provide an agile
and flexible mainframe developer experience, giving organizations the ability to use Git workflow and the flexibility to choose the SCM tool that works best for their development teams while leveraging the best of ISPW for mainframe build, test and deploy.
DevOps for z as next level ahead
This is DevOps era, and mainframe technologies remain legacy and as dependable. Git along with BMC Compuware ISPW gives as flexible options for DevOps implementations to avail benefits of DevOps.
Git along with Broadcom has Endevor Bridge for Git tool that ensures Intagration of GIT with Endevor as SCM in Mainframe. This helps the modern general-purpose IDE to perform source code changes in the mainframe environment, for example, Visual Studio Code, you push the updated code to a version control system, for example, Git or Bitbucket. To promote the updated source code from the version control to Endevor and, reversely, retrieve and pull the code from Endevor to your local IDE, you establish an integration between the version control system and Endevor
zDevOps Implementation with GITHub and IBM DBB
SSH or Secure Shell is a network communication protocol that enables two computers to communicate (c.f http or hypertext transfer protocol, which is the protocol used to transfer hypertext such as web pages) and share data.
With SSH keys, you can connect to GitHub without supplying your username and personal access token at each visit. You can also use an SSH key to sign commits. You can access and write data in repositories on GitHub.com using SSH (Secure Shell Protocol).
Jenkins achieves Continuous Integration with the help of plugins. Plugins allow the integration of Various DevOps stages. If you want to integrate a particular tool, you need to install the plugins for that tool. For example Git, Maven 2 project, Amazon EC2, HTML publisher etc.
DevOps eight stages for successful DevOps workflow as follows.
We will help zDevOps Adoption and Implementations with tools like
- IBM Developer for z
- Git for z/OS
- IBM dependency based Build(IBM DBB)
- Urbancode Deploy for z(UCDz)
- Jenkin with z integrations
Typically a product manager and an engineering lead will work in tandem to plan roadmaps and sprints. Teams will leverage project management tools such as kanban boards to build out development schedules.
After planning is complete, developers will begin building code and engage in subsequent tasks such as code review, code merges, and code management in a shared repository.
As code is developed and reviewed, engineers will engage in merging—or continuously integrating—that code with their source code in a shared and centralized code repository. This is typically done with continuous integration to test code changes and version control tools to track new code commits.
During the build process, continuous testing helps ensure new code additions don’t introduce bugs, performance dips, or security flaws to the source code. This is accomplished through a series of automated tests that are applied to each new code commit. For Mainframe application the zUnit Automation help for test automation implementations.
Before launching a new iteration of an application, a team will package its code in a structure that can be deployed. This can sometimes include sharing reusable components for sharing via package ecosystems such as npm, Maven, or Nuget. This can also involve packaging code into artifacts, which are created throughout the software development lifecycle, and deploying them to a staging environment to do final checks and store any
The team will release a new iterative version of an application to end users. This typically includes release automation tooling or scripts and change management tools which can be used in the event a change doesn’t work in deployment and needs to be rolled back.
Throughout all stages of the SDLC, DevOps practitioners ensure the core infrastructure the application needs to run on works—this includes setting up testing environments, staging or pre-deployment environments, and deployment environments.
DevOps practitioners implement a mixture of tooling and automation to engage in continuous monitoring across the software development lifecycle—especially after that software is shipped to end users. This includes service performance monitoring, security monitoring, end user experience
monitoring, and incident management.