Information Technology Reference
In-Depth Information
8.6.2 What Is Continuous Delivery?
Continuous delivery (CD) is a set of principles and practices for delivery of software and
updates on an ongoing basis. Software delivery means the process by which software goes
from source code to ready-to-use installation packages. Included in this process are the
building (compiling) of the software packages as well as any quality testing. The process
stops if the build or testing fails. CD began as a design pattern in Extreme Programming
but has since become a discipline of its own.
Forexample,anorganizationthatpracticesCDbuildsthesoftwarefrequently,oftenim-
mediately after any new source code changes are detected. The change triggers the build
process, which, on successful completion, triggers an automated testing process. On suc-
cessful completion of the tests, the software packages are made available for use.
CD is different from traditional software methodologies where new software releases
areinfrequent,perhapsyearly.Inthelatterapproach,whenthesoftwarereleasedateisnear,
the packages are built, possibly involving a very manual process involving human inter-
vention and perhaps ad hoc processes. The testing is a mixture of automation and manual
testing that may last for days. If any problems are found, the entire process starts all over.
Continuous delivery stresses automation, packaging, and repeatability, with a culture of
shared responsibility for good outcomes. In continuous delivery we recognize that every
step of the process is part of the ultimate delivery of the software and updates, and that the
process is always occurring at every stage.
System operations and maintenance can be thought of as a form of continuous delivery.
Operations tasks are part of how software gets from a packaged build on the repository
onto the system. While these principles and practices came from software development, it
is easy to map them onto operations tasks and gain efficiency and reliability.
The eight principles of continuous delivery are codified by Humble and Farley ( 2010 ).
The Eight Principles of Continuous Delivery
1. The process for releasing/deploying must be repeatable and reliable.
2. Automate everything.
3. If something is difficult or painful, do it more often to improve and automate it.
4. Keep everything in source control.
5. “Done” means “released, working properly, in the hands of the end user.”
6. Build quality in.
7. Everybody has responsibility for the release process.
8. Improve continuously.
Search WWH ::




Custom Search