Continuous Delivery
is a software development practice where software is always in a releasable
state. Teams produce software in short cycles, ensuring that the
software can be reliably released at any time. By relying on automated testing and
deployment, as well as ensuring collaboration and communication between
development and operational teams (DevOps), the goal of building,
testing, and releasing software faster and more frequently can be achieved. This
approach can help to reduce the cost, time and risk of delivering changes by
allowing for more incremental updates to applications and configuration items
(CIs) into production.
A straightforward and repeatable deployment process is
important for continuous delivery and will be critical for operational
processes such as Change Management and Release and Deployment Management to be
agile and robust in the DevOps environments where continuous delivery will be
part of best practices.
Continuous Delivery is sometimes confused
with Continuous Deployment. Continuous Deployment means that every change is
automatically deployed to production. Continuous Delivery means that the team
ensures every change can be deployed to production but may choose not to do so,
usually due to business reasons. In order to do Continuous Deployment one must
be doing Continuous Delivery. (1)
Continuous delivery is enabled through the deployment pipeline.
The purpose of the deployment pipeline has three components: Visibility, Feedback
and Continually Deploy. (2)
·
Visibility – All aspects of the delivery system including
building, deploying, testing and releasing are visible to every member of the
team to promote collaboration.
·
Feedback – Team members learn of problems ASAP when they
occur so that they are able to fix them as quickly as possible.
·
Continually Deploy – Through a fully automated process you can deploy
and release any version of the software to any environment.
Continuous Delivery
also requires that whenever anyone makes a change that causes an automated test
to fail, breaking the deployment pipeline, the pipeline and all associated
systems must be brought back into a deployable state. In some cases, the Standard Operating Procedure
(SOP) may be to have continuous integration and deployment reject any changes
that take the code or configuration out of a deployable state.
Remember it is all
about “Flow” in which continuous delivery is just one of many practices utilized
in the “First Way”.
For more
information on DevOps, Agile and IT Service Management training and
certification: www.itsmacademy.com
2. Duvall Paul /Continuous Delivery: Patterns and
Anti-Patterns in Software Lifecycle"
Comments