Continuous delivery is a Release strategy which delivers Software Code Releases into Production (Live Environment), quickly but in a controlled & sustainable manner.
The main concept of continuous delivery is to focus on a routine and adopting a working release strategy that can be performed on demand, by the click of a button. This routine approach to code delivery can apply to a highly technical Production environment, an application component or simply upgrading a basic App. The key to this success is to ensure that code is constantly in a deployable state.
In order for this release process to be effective it works in conjunction with continuous integration. The key element with this is that software developers merge their code to the main branch as and when required, the developers code is then verified by creating a build executing against automated tests. This practice mitigates potential problems that can occur when merging down multiple changes on the day of a release into a release branch.
In accordance with your own business requirements you can dictate the continuous delivery release frequency, this could be daily, twice weekly, whatever fits your business model but best practice (and to achieve true benefits) there should be the aim to deploy to Production as soon as possible with smaller release content. Key benefits of adopting a continuous delivery release process is that you cannot only Release code more frequently, but the complexity of code deployment is reduced significantly as we negate the need to prepare in advance for a release.
Customers see true benefits with timely releases that are being delivered to Production at regular intervals, promoting a far greater customer engagement. It sometimes wrongly assumed that if we want to deploy software more frequently, we should accept a lower level of code stability and general reliability. However, with continuous delivery, release content tends to be smaller changes, which encourages less risk and a faster delivery.
There is a cost associated with continuous delivery as there is a reliance on automation. Code deployment is automated, albeit with a manual trigger but once the deployment is initiated there is no further human intervention. QA is paramount, with investment made in your Testing culture & Test suites must cover sufficient code coverage.
Continuous delivery is not to be confused with continuous deployment, as this is yet another release strategy. Continuous deployment is very similar to continuous delivery, again working in conjunction with continuous integration – but the key difference being that there is no human intervention at all.
Continuous deployment goes that bit further, as every single change that clears all stages of the Production pipeline is released to Production, with no need for human intervention. There is no-longer a release day & software developers see code get promoted to Live in minutes.
If, as part of a continuous delivery process, you adopt practices like feature flags or Server-side testing with Webtrends Optimize, it allows you to drip-feed features into your platform, quickly, and measure the effectiveness as you do so. It simply continues the idea of doing something quickly, getting a bit of feedback, and iterating swiftly, with confidence, based on what results you see.
What causes Content Flickering? Why is it important and how can you avoid it?READ MORE
How does a Content Management System work and why use one?READ MORE
What is a Control Page or Control Group? Why is one needed?READ MORE
What is Conversion Rate Optimisation? What are the benefits?READ MORE