Continuous Delivery, Deployment and Integration Explained
There are a lot of buzzwords flying around the DevOps world. So we put together this post explaining the three most dear to us: Continuous Delivery, Continuous Deployment and Continuous Integration.
The difference between the three terms can be confusing. If you’re part of a small dev team, this post will provide some insight into where you can benefit the most.
The goal of Continuous Delivery is to always have code available to deploy at any given moment. Smaller sprints means a faster turnaround in identify and fixing bugs resulting in a more stable code base. Instead of waiting week or months for new features, like happens with the traditional waterfall method, continuous delivery shortens the time to days, if not hours. Continuous Delivery relies on automation to make the process more efficient, but requires a developer to approve the releases and then push the changes into production. That reliance on human intervention can cause a bottleneck.
Continuous Deployment is a software development practice where all the code changes, whether they are new features or bug fixes, are automatically built and pushed to multiple stage environments including production. It’s similar to Continuous Delivery, but does not rely on somebody pushing the changes to the servers. The major advantage to using Continuous Deployment is that it provides greater reliability and a more efficient workflow. Should a release prove to be problematic, you can quickly rollback to a stable prior version.
The idea behind Continuous Integration is to further increase speed to market by automating the testing process after each code change. With this process, developers define a set of tests where in order to continue with deployment, the code should pass all tests as defined.
Usually the tests are separated in two parts, the UI testing and the unit testing. The UI testing focus more on from the user's perspective on how things should work. Unit testing focuses more on low level code testing that is necessary for developers. Unit testing is typically run after each code change to ensure everything works as it should.
But according to a report in SD Times, the majority of developers aren’t using Continuous Delivery. Small development teams can find Continuous Integration overwhelming and too much work to set up. If you’re a development agency focused on Wordpress, Shopify, or other platforms, without the right tools, Continuous Integration may be more trouble than it’s worth.
Continuous Delivery vs Deployment vs Integration
Even if you're not doing Continuous Integration, deployment can be a problem. There are often extra steps like minifying code, updating assets on a CDN, installing dependencies, compiling, running a test suite, etc. DeployBot makes deployment easier, faster, and simpler, without the additional complexity of a full Continuous Integration process.