Continuous delivery

from Wikipedia, the free encyclopedia

Continuous Delivery ( CD ) describes a collection of techniques, processes and tools that improve the software delivery process (English: Deployment ).

Techniques such as continuous integration (CI), test automation and continuous installation , in combination with agile methods, allow the development of high-quality software. Software build jobs on CI servers such as Jenkins enable automated testing and creation of “nightly” or “release” versions. These versions can be automatically imported into development, test, integration and productive environments using CD.

The automation of the integration and delivery processes enables fast, reliable and repeatable deployments. Extensions or error corrections can thus be delivered to the productive environment or to the customer with little risk and little manual effort. Continuous delivery is primarily used in combination with agile methods . Implementing the DevOps approach is often recommended when introducing continuous delivery .

Principles

A central concept of the CD is the deployment pipeline as Lean Poka Yoke : a set of validations that software has to pass on its way to publication. For this purpose, the program code for every change made in the version management is compiled on the build server if necessary and then packaged . A number of different tests, including manual tests, are run before the software can be considered publishable.

Developers who switch to a CD process and are used to long release cycles need to adapt their development techniques. Every version in the version management should be available at any time. Development patterns such as feature toggles help versioning code early, even if it is not yet intended for use by the end user. Other techniques such as branching are not obsolete, but must be adapted to the process.

Continuous deployment

Although colloquially incorrectly often used synonymously, the term Continuous Deployment describes a more extensive form of Continuous Delivery in which the software is also automatically delivered to the productive infrastructure. In contrast to this, with continuous delivery the software is only delivered to a staging area , from which it can then be published manually to the productive infrastructure.

See also

  • Quality Gate - quality criteria that software must meet in order to begin the next process step
  • DevOps - A collection of incentives, processes and tools that aim to overcome gaps between development and IT operations

literature

  • Jez Humble, David Farley: Continuous Delivery . Reliable Software Releases Through Build, Test, and Deployment Automation (=  Addison-Wesley Signature ). Addison-Wesley, Upper Saddle River 2010, ISBN 978-0-321-60191-9 (English).
  • Eberhard Wolff: Continuous Delivery, 2nd edition . The pragmatic entry. dpunkt, Heidelberg 2016, ISBN 978-3-86490-371-7 ( [1] ).
  • Michael Hüttermann: DevOps for Developers . Integrate Development and Operations, The Agile Way. Apress, New York 2012, ISBN 978-1-4302-4569-8 (English).

Individual evidence

  1. ^ Jez Humble, Chris Read, Dan North: The Deployment Production Line . In: Joseph Chao et al. (Ed.): Agile Conference, 2006 . IEEE Computer Society, Washington 2006, ISBN 0-7695-2562-8 , doi : 10.1109 / AGILE.2006.53 .
  2. Carl Caum: Continuous Delivery Vs. Continuous Deployment: What's the Diff? Puppet , August 30, 2013, accessed December 6, 2018 .