Deployment pipeline

A deployment pipeline is a sequence of tools and programs that automate everything around the deployment of new versions of a service or application to various environments, including production. It forms the automation backbone of CI/CD.

The purpose of the deployment pipeline is to hide a lot of the complexity associated with releasing updates, such as database migrations, running tests (eg. smoke tests as a build verification gate), creating and destroying containers, updating load balancers, etc. The deployment strategy chosen determines how those updates are rolled out, for example a rolling deployment that replaces instances incrementally behind a load balancer.

A delivery pipeline speeds up continuous delivery and reduces the risk of human error. It is also what makes continuous deployment practical, releasing every passing change to production automatically. Other advantages include reduced overheads for the business, because operations staff don’t need to work in shifts outside of normal office hours to provide support for complex releases.

See also