A snapshot is typically generated in an uncontrolled environment, which means an environment that does not have approvals. When a snapshot is created, a picture of the application's current state is captured. As an application moves through different environments in the pipeline, snapshots can ensure that the correct component versions are used.
Snapshots can help manage complex deployments, which have multiple tiers and development teams. For example, after you test and confirm that team A's component works with team B's component, you can create a snapshot. Then, as development progresses, you can create more snapshots to model the effort and drive the entire deployment, coordinating versions, configurations, and processes.