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:
When you create a snapshot, you can manually specify the version for each component, or you can copy the versions used in a specified environment or snapshot.
A snapshot contains the versions of the processes that have been designed, the properties that these processes use, and other information. From the configuration, you can view and set the versions of the processes and properties used in the snapshot.
You can apply a status to a snapshot, which typically indicates whether the snapshot has been deployed successfully to an environment. You can use this status along with gates, which enable you to allow deployments to an environment only if the snapshot has reached a particular status. For example, you could set the INT environment gate condition so that if the status is set to Dev_Complete, the snapshot can be deployed to the INT environment.
You can lock snapshots when they are deployed to a particular environment, ensuring that nothing can be changed. Typically, you lock a snapshot when it goes into a pre-production environment before being deployed to production.