A snapshot represents a specific state of an application in an environment. Snapshots specify the combination of component versions that you are going to deploy together. When a snapshot is created, Deployment Automation gathers together information about the application for a given environment, including the component versions, process versions, and properties.

Typically, the snapshot is generated in an uncontrolled environment, where there are no approval processes or gates defined. Once a snapshot is created, it can then be promoted through a deployment pipeline. For example, as the application moves through various testing environments, Deployment Automation ensures that the exact versions, bit for bit, are used in every environment. Once all the appropriate stages and approvals for a snapshot are complete, the snapshot is deployed to production.

Snapshots help manage complex deployments, such as deployments with multiple tiers and development teams. For example, after testing and confirming that team A's component works with teams B's, a snapshot can be taken. Then, as development progresses, additional snapshots can be taken and used to model the effort and drive the entire deployment, coordinating versions, configurations, and processes.

Snapshots include the following: