Continuous Integration, Continuous Delivery and Continuous Deployment with Red Hat OpenShift

openshift persistent volumes

In this post, I want to briefly explain the differences between Continuous Integration, Continuous Delivery, and Continuous Deployment. I will keep this very brief and try to make it as easy to understand as possible.


What is Continuous Integration

Continuous integration is about automating building and testing of software and performing these two processes as frequently as possible. Continuous Integration aims to avoid the integration problems of midsize to large projects by building and testing the code automatically whenever a new code is submitted to your repository. For example, in our project, we trigger a Jenkins pipeline whenever a new pull-request is created in Bitbucket. This way, you can avoid the Integration hell problem that you would face otherwise.


What is Continuous Delivery

Continuous Delivery is Continuous Integration + artifact generation & storage. Continuous delivery takes us one step further and adds to the pipeline the necessary steps for creating executables that are ready to be deployed.


What is Continuous Deployment

You can think about Continuous Deployment as Continuous Integration + Continuous Delivery + deployment of the generated executables to the production or similar environment. In our case, it is the DEV project (namespace) in OpenShift (see the diagram below).


Continuous Integration and Continuous Deployment with OpenShift

Not too many words are needed here. Just see the diagram below to understand what is going on. This is the pipeline that I have set up for our project with help from my friends in Red Hat (cheers to Michael Thirion).


Hope this helps.
Good Luck,