Continuous deployment

Continuous deployment (CD) in software engineering means that features are frequently released to the production environment, using automated testing. In practice, this means that a change to an application can go live within minutes if it passes the tests. 

The acronym CD can also stand for continuous delivery which is a similar practice. It can create confusion because continuous delivery is sometimes used in a way that also covers the deployment processes. However, the most important distinction between the two approaches is that in continuous delivery, there is a manual step between testing and deploying while in continuous deployment, the same step is automated.

As for main advantages, continuous deployment:

  • enables earlier return on investment from each developed feature;
  • provides earlier user feedback to respond to the changing market conditions;
  • ensures a continuous stream of improvements for better user experience;
  • facilitates fixing errors since features are deployed in small batches;
  • enables developers to rapidly validate new ideas and features.

The main disadvantage of this approach is its cost. Both the initial engineering and maintenance of a smoothly working deployment pipeline can be expensive. It depends on the business goals of a company if the advantages outweigh the disadvantages.