Delivery Pipeline – Continuous Integration VS Continuous Deployment VS Continuous Delivery

Delivering software development is always challenging in terms of effectiveness, quality and secured product. In order to utilize the people and other resources, maintain the quality in faster development and maintaining the security and make the application complies with the security policies, we need structured workflow or process or strategy called a delivery pipeline. As days go by, The delivery pipeline evolves by adopting cultures like Devops and DevSecOps. So other new strategies called Continuous Integration, Continuous Deployment, Continuous delivery came along.

Delivery Pipeline

Delivery pipeline in software development life cycle is the process/workflow/strategy of driving the development process from product’s story backlogs to deploying it to the live production system. This constructive workflow will ensure the conversion of backlogs -> features -> tasks -> build -> packages -> deployment. This entire life cycle needs a lot of collaboration and communication between teams and stakeholders. So the Delivery pipeline is creating a systematic flow in this cycle which will enable the communication between the team and logging mechanism for the reporting and auditing purpose.

Say we have a project of building e-commerce website. So, we are targeting couple of features to be delivered on the particular Sprint. Assume we have java based platform, GitHub as the version control system, Linux based machines for serving the website.

A Typical Delivery Pipeline

So, Delivery pipeline starts with assigning features to developers as tasks. Once Developers are done with the coding, Versions of their codes will be pushed to the version control (In our case GitHub), Once the code is merged with the respective branch (Environment specific), Build tool (In our case, Jenkins) should trigger the job to build the committed code & and get the Package out of it. Then Trigger the Configuration Management tool (In Our case Ansible) to deploy the package to the servers. So enabling tools like Jira, Slack and other tools will enable communication between the teams.

Continuous Integration

In order to speed up and make a quality software product, we need to customize the strategy. Continuous Integration is one of the best strategy or practice that helps to quickly deliver a quality software product.

Continuous Integration is a development Practice where developers integrate their code in the shared version control system often in a day and each commitment is verified by the automated pipeline which will check-in the new code, Build and run the integration testing to ensure the problems and defects early as possible

Continuous Integration

By Integrating the code frequently, back-tracking or troubleshooting process become very easy and this process will avoid long integration before delivering the product. This stratergy has following major advantages.

  • Finds the issues and clear it as early as possible
  • This will help developers to spend less time in debugging and spend more time in developing new features
  • this will enable good communication between developers and other stakeholders.
  • This will avoid the tense long integration after the week of developement process.

Continuous Delivery

Continuous Delivery is the development strategy that delivers the integrated code into the respective environment, Like QA then Stage. Once the feature is tested in terms of build and the business point of view, Code will be built as a package that is ready for the production deployment.

Continuous Delivery

Continuous Delivery is one more add-on for the Continuous Integration. By adding this, This will ensure following more advantages over the Continuous Integration

  • Low Risk in integrating bulk code
  • Deliver to the environments as fast as possible
  • Enables Communication between Development and Operational teams.
  • Makes the new features available for the test and review will enable more agility

Continuous Deployment

Continuous Deployment is the strategy that it is the next step of continuous delivery which will deploy the integrated code into production as soon as it is delivered and verified by the QA or other testing environments.

Continuous Deployment.

So the Basic Difference between the Continuous Delivery and Deployment is that the Continuous delivery is the automated repeating process till deploying the changes in QA or Stage or UAT. Where in, the Continuous Deployment is the completely automated process of deploying the packages into the production frequently as soon as the package is ready.

Get the DevOps Handbook to learn DevOps [The DevOPS Handbook]

Stay tuned to get more whispers of Digital Varys

3 thoughts on “Delivery Pipeline – Continuous Integration VS Continuous Deployment VS Continuous Delivery”

Leave a Reply