More organizations are doing continuous delivery these days, despite the challenges. Writing for the Register, Adrian Bridgwater discusses situations in which continuous delivery may need to be modified to work well.
Bridgwater says web ops companies that have a web-based front end and cloud-based backend have the ideal environment for a "ship early and ship often" approach to continuous deployment. Continuous deployment differs from continuous delivery in that the last step — deploying to the production environment — is fully automated. With continuous delivery, testing is automated, but final deployment is normally manual. As Bridgwater points out, deploying multiple releases in a single day is an aggressive approach to continuous deployment, and it’s more feasible to do that when you’re deploying to a web application. The small changes will be no more noticeable to users than a page refresh.
Bridgwater notes that an organization must gear up its software development environment with continuous integration and automated testing tools as a necessary condition of continuous delivery. Many organizations become confident enough with their development process to ship new code on a continuous basis, yet there may be entirely valid business reasons for not moving to continuous deployment.
Test cycles on large installations can take longer than compile cycles; thus the organization can only deploy as quickly as it is able to test. In addition, there may be peculiarities of the operations environment that entail manual steps between production and deployment, in order to comply with industry regulations or security policies.
Web-scale companies such as Facebook and Twitter — or even Google — have it relatively easy in this respect. Though they’re working at very large scale, small imperfections in a deployed release don’t have the same immediate impact and implications that a similar problem could have in a financial or trading system.
Deployment speed — and degree of automation — must be measured against all the constraints that an enterprise faces. You can't have continuous deployment without continuous delivery, but continuous deployment isn't necessarily a reasonable target for every organization. Still, as Bridgwater says, continuous delivery is going to become more prevalent over time.
- The difference between continuous delivery and continuous deployment, in less than 350 words.
- What continuous delivery is, why it matters, and how to get started: Download our free ebook.
- FlowCon had some great presentations on continuous delivery. Here are the top 20 slides from the conference.
- PuppetConf 2013 had some great presentations on continuous delivery, too.
- Puppet Enterprise helps you implement continuous delivery by automatically configuring all your environments and enabling orchestration. Download and try it out for free on 10 nodes.