The Following events may or may not have happened between Webomates’ CEO Aseem Bakshi and CTO Mark Sawers as part of the Webomates CI/CD offerings development.
CEO: We have been using CI/CD in our development for quite a while now and started building tools for regression testing with CI/CD a year back. But I don’t really get the difference between Continuous Delivery versus Continuous Deployment.
CTO : Well one is about delivery and the other is about deployment.
CEO : Thanks that was truly helpful. No sarcasm in that statement.
CTO : Ok. Ok. Here are the full details:
Continuous Deployment is a critical phase of the CI/CD process of DevOps. Rapidly changing requirements, demands for introduction of new features and improvements in software makes it imperative to have a fast and seamless process in place for quick development, testing, deployment and final release.
Continuous Deployment achieves this by fully automating software delivery pipelines.
Continuous Deployment enables businesses to respond to market demands for high quality solutions in a lesser amount of time. It is a strategy which allows companies to achieve intermittent release milestones without affecting the current software functionality.
Continuous Delivery and Continuous Deployment are two terms that are often used interchangeably when it comes to software releases. However, they are very different when it comes to implementation.
Continuous delivery and Continuous Deployment hold the key for releases as per the business demands.
Continuous delivery is the practice that ensures that the tested and verified modules are always in a ready state for release. These changes can be released to production on demand. Continuous Delivery process includes one manual step which initiates the deployment to production. This practice gives the development team the flexibility to make smaller, incremental changes on a continuous basis, but are not released to end users until there is a requirement for it.
While in Continuous Deployment, any new changes that are committed to the master code are automatically deployed to production environment, if they pass the testing phase.
CEO: Seriously there is more than one definition to pick from?
CTO: Yup there are at least two. And as typically happens in a new and rapidly advancing area definitions are changing.
CTO: Don’t get me started on the difference between machine learning and AI. Last count I had found 5 different definitions!
In the second version of these definitions Continuous Delivery is the process by which your code is packaged and delivered to an environment. That environment could be:
Thus if the target is staging then the automated process of Continuous Delivery is carried out in development, integration and finally staging. As you move further down the pipeline the amount of work to automate for deployment, testing and validation increases significantly.
Continuous Deployment on the other hand mandates that the entire process is automated and code change goes straight to production, after running the gamut of the CI/CD pipeline. If there is not an extremely robust CI/CD process in place of course this is fraught with risk. However if you build a robust CI/CD pipeline your speed of delivering features to production increase significantly.
CEO: These are just semantic differences to create confusion as far as I can tell. At the end of the day you are basically determining how close to production you are taking your CI/CD pipeline.
CTO: Indeed.
CTO: However there are very real and practical difference that are incredibly important. I think we need to spend a day long session in determining which version of the definition we should use.
Continuous Delivery and Continuous Deployment are inter-related terms. There is some debate in the definitions of both terms. In one definition Continuous Delivery is a manual process for the final delivery to production whereas Continuous Deployment directly delivers code changes to production. In an alternative definition Continuous Delivery is the process of delivering software to a destination such as integration, or staging deployment. Continuous Delivery defines that the delivery of the software is straight to production. At Webomates we currently use the first set of definitions. In addition, we have connected our Webomates CQ service to CI/CD execution environments such as Jenkins. This allows our customers to use the Webomates CQ service to validate the latest version of software in under one hour in development, integration, staging or production.
If you are interested in learning more about Webomates’ CQ service please click here and schedule a demo or reach out to us at info@webomates.com
Tags: Continuous Delivery, Continuous Deployment, Software Testing
Test Smarter, Not Harder: Get Your Free Trial Today!
Start Free Trial
Leave a Reply