Deployment

Deployment is the process of making a new or updated version of a software system available to its users, by bringing it onto the environment where it executes — the hardware, processors, and other infrastructure described in a system’s deployment view. It is the step that turns a built artifact into a running system.

A handful of concepts recur across mature deployment practice: deployments are automated rather than performed by hand, builds are repeatable so the same source always produces the same artifact, environments are kept consistent — often by treating infrastructure as immutable and disposable rather than patched in place — and everything involved, from application code to infrastructure definitions, is kept under version control.

The deployment pipeline is the automation system that carries out these steps, and the deployment strategy determines how a new version replaces the old one with minimal disruption.

Deployment is one part of the broader discipline of software delivery and operations, which also covers how a change is built, tested, and observed once it is running.