deployment

/dɪˈplɔɪmənt/noun

A deployment is the process of installing and starting a chosen software version in a target environment so it can be tested or used there.

After the final checks, the team schedules the deployment to production.

A deployment takes software from a stored version to an environment where it can run. This might be a test environment, an acceptance environment or the production environment used by customers. The term rollout is often used for the same process.

Which steps does a deployment involve?

A deployment usually starts with a build: source code and dependencies are assembled into an executable package or Glossary · In briefcontainerA container is an isolated application process with the files and settings it needs. Containers on the same machine usually share the operating system kernel.Read more. A pipeline then puts that package in the chosen environment, applies configuration and starts or replaces the required processes. Checks can verify that the application is reachable and key functions still work.

Teams often automate these steps with Glossary · In briefCI/CDCI/CD is a way of working in which teams frequently merge software changes, check them automatically and use a defined sequence of steps to prepare or deploy them to production.Read more. Each deployment follows the same process and requires fewer manual actions. Automation alone does not make deployment safe. Tests, access management, Glossary · In briefmonitoringMonitoring systematically tracks software, infrastructure or processes through measurements and checks. Deviations can trigger alerts so an administrator can investigate.Read more and a Glossary · In briefrollbackA rollback reverses a change so software, configuration or data returns to an earlier state. Teams use it when a change causes errors or other unwanted effects.Read more option remain necessary to detect problems and undo a change when needed.

Deployment and release

A deployment is the technical installation of software in an environment. A Glossary · In briefreleaseA release is an identifiable software version prepared to be made available to users. It brings together one or more checked changes.Read more makes new functionality available to users. These can happen at the same time, but do not have to. A team can deploy code to production while a Glossary · In brieffeature flagA feature flag is a setting that enables or disables software functionality without another code deployment. It can apply to all users or a particular group.Read more keeps the new feature hidden.

Deployment strategies also vary. A gradual deployment gives the new version to a subset of servers or users first. A blue-green deployment uses two production environments and switches traffic only when the new version is ready. These strategies reduce the risk of Glossary · In briefdowntimeDowntime is the period when software, a system or an online service is unavailable or its essential functions cannot be used.Read more, but require suitable infrastructure and checks.