How can a company release new software many times a day?
The secret is not working faster: it is making every release so small and so well tested that it is boring.
โถ Start the storyA company can release new software many times a day because it has automated the road from a programmer's laptop to the customer. The practice is called continuous delivery: building software so that it can be released to at any time. If the code is always in a releasable state, putting it live becomes a routine button press instead of a big event.
The road is called a . Every time a change is saved to the shared code, a packages it, and then it goes through a series of tests before it is marked as ready to release. Fowler says the test of doing it right is that a business sponsor could ask for the current version to go live at a moment's notice, and nobody would panic. You can push any version to any environment on demand.
There is a second, bolder step. Continuous deployment sends every change that passes the pipeline straight into without a human pressing the button, resulting in many deployments every day. Continuous delivery only means you could, and some businesses prefer a slower rhythm. Both are abbreviated CD, so it pays to ask which one people mean, and you cannot do the second without the first.
Continuous delivery
- Always ready to release
- A person decides when
- Can be as slow as the business wants
Continuous deployment
- Every passing change goes live
- No manual step
- Needs very strong automated tests
Why do it at all? Because small releases are safer. When you deploy smaller changes there is less to go wrong, and it is easier to fix a problem. Not everyone can do it: in fields such as medical devices, avionics and railways, may require testing on the customer's own site.
Quiz me
0/3
Recap
If every change travels an automated pipeline of checks, releasing is a button press, not a big event.
๐ก A trick to remember it ยท Delivery: you could. Deployment: you do. Either way, the pipeline decides what is ready.
Surprising fact ยท The same abbreviation, CD, stands for both continuous delivery and continuous deployment.
Sources (5)
No source, no claim. Every fact in this lesson (16 claims) cites at least one of these.