Continuous delivery lets development teams automate the process that moves software through the software development lifecycle, and it can provide many benefits when provisioning an integrated toolbox, including the following:
In the following video, Eric Minick explains more about continuous delivery:
The following are a set of best practices to consider when using continuous delivery:
To take advantage of the benefits of continuous delivery, you need other elements of the continuous framework, such as continuous exploration, continuous integration, continuous deployment, and release on demand.
When you use continuous delivery pipeline stages, you should divide them into separate jobs, which are execution units within a stage:
The continuous delivery pipeline can help development teams:
Continuous deployment can be part of a continuous delivery pipeline. Specifically, continuous delivery is the automated movement of code through the development lifecycle (sometimes called the delivery lifecycle); continuous deployment is the automated movement of that code into production, once it passes the required automated tests.
Whether you make continuous deployment part of your delivery pipeline depends on your business needs. If the business needs the delivery team to release new or updated software out to production repeatedly, reliably, or as quickly as possible, or if the solution has multiple dependencies, then it is likely you will benefit from continuous deployment.
For more information about the differences between continuous deployment and continuous delivery, see this video:
A continuous delivery tool enables you to use open source tools to build, deploy, and manage your applications. By integrating sets of tools, you can create repeatable and manageable tasks, not only for your development team but also your operations team.
Your toolbox can include your current cloud services, open source tools, and third-party tools, but you’ll also want to consider a continuous delivery tool that includes the following:
Open source continuous delivery tools you can use for a strong continuous delivery pipeline include Jenkins, Concourse CI, Spinnaker, Travis CI, GoCD and GitLab CI.
Agile continuous delivery
Previously, you would only release software once and then update it. You would then only consult customers at the beginning and the end to see if the software met their needs.
Agile is a way of producing software in short iterations on a continuous delivery schedule, and today’s agile continuous delivery process means you can release code to the customer as each defined feature becomes available. Agile development and continuous delivery are your keys to getting features to the customer as soon as production-ready. Your goal is to have each feature ready for release as it exits the pipeline.
Learn more about the benefits of agile principles.
DevOps and continuous delivery
In the last couple of decades, software development has undergone significant changes as it's moved from the standard waterfall concept to the more efficient agile methodology. To adapt, you need to shift to an approach focused on agile, DevOps, and continuous delivery. As part of a continuous delivery pipeline, these focused processes enable more reliable, high-quality software releases and updates.
As you make more rapid, smaller software releases through agile development, your focus will become tighter on the individual stages of software development. At the same time, DevOps keeps your mind focused on the “Bigger Picture” and cultural change as development and operations merge closely into one team working on the entire software development lifecycle, from coding to testing to deployment to support.
For a closer look at the DevOps process, watch the video below:
IBM Continuous Delivery is a cloud service that helps provision toolchains, automate builds and tests, and control quality with analytics.
The IBM UrbanCode family of software products helps you deliver software to market faster by accelerating application delivery and reducing manual processes.
Create Kubernetes-native CI/CD pipelines with maximum speed and flexibility.
DevOps speeds delivery of higher quality software by combining and automating the work of software development and IT operations teams.
Continuous integration is an iterative development process in which developers integrate new code into the code base at least once a day.