Continuous delivery - kubapeter/portfolio GitHub Wiki

Continuous delivery is a practice to produce valuable software in short iterations to ensure that (some prototype of) the software can be reliably released at any time.

The practice of continuous delivery fits well with iterative and parallel process models.

Automation

Continuous Delivery applies automation so that intermediate releases of working software can be more disciplined and frequent. This allows developers to more easily deliver versions of a product continuously as it is constructed. Whenever a developer commits a code change, it will be automatically

  • built
  • integrated
  • tested
  • released
  • deployed

Ideally, the time from making a product change to having it tried by an end user can be short and frequent. Problems arising in any of these automated steps can be noticed earlier, rather than later.

Channels

Versions that are not ready are not forced to be released. Typically, releases of prototypes are placed in specific channels. For example, there can be a

  • developer channel - day-to-day releases that developers generate
  • test channel - for a wider group internal to a company
  • stable channel - releases that are more proven.

Different expectations of feedback and tolerances to issues could occur on each channel.