Continuous Delivery

Term of Continuous Delivery is introduced by ThoughWorks. Continuous Delivery is the natural extension of Continuous Integration: an approach in which teams ensure that every change to the system is releasable, and that we can release any version at the push of a button. Continuous Delivery aims to make releases boring, so we can deliver frequently and get fast feedback on what users care about.

This is where the wall between developers and system administrators falls, this is when they start working together, this is where DevOps comes in: practice that stresses communication, collaboration and integration between software developers and information technology (IT) professionals.

Here are a few patterns of Continuous Delivery:

  • Automate the verification and validation of software to include unit, component, capacity, functional, and deployment tests
  • A deployment pipeline is an automated implementation of your application’s build, deploy, test, and release process
  • Centralize all dependent libraries to reduce bloat, classpath problems, and repetition of the same dependent libraries and transitive dependencies from project to project
  • Fix software delivery errors as soon as they occur; stop the line. No one checks in on a broken build as the fix becomes the highest priority

Continuous Delivery is not platform specific. It is possible on Unix-like operating systems and Windows