Techโ—โ—โ—โ—โ—Difficulty 3 of 5

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 story

A 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.

Delivery or deployment?

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

  1. 1.What is the difference between continuous delivery and continuous deployment?
  2. 2.Why are small, frequent releases considered safer than big, rare ones?
  3. 3.What has to be very strong before a company can use continuous deployment?

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.

  1. [1]Continuous Delivery ยท martinfowler.com
  2. [2]Continuous delivery ยท Wikipedia
  3. [3]Continuous integration ยท Wikipedia
  4. [4]Continuous deployment ยท Wikipedia
  5. [5]Release Engineering (Site Reliability Engineering book) ยท Google
More lessons in ๐Ÿ’ป Tech (3) See all tech lessons โ†’

One more light on your map.

Get one lesson like this every day, about the things you love. Free, in two or five minutes.

Get the share card for this lesson โ†—