Releases, deployments and variable snapshots
Blog post from Octopus Deploy
Octopus is an automated release management and deployment solution that differentiates between a project, a release, and a deployment to streamline software delivery processes. A project acts as a deployment template, including steps and variables for configuration, while a release involves selecting specific NuGet packages and versions, forming a "release candidate" that can be deployed to various environments like Dev, Test, Staging, or Production. Once a release is created, it becomes read-only to ensure consistency across deployments, with snapshots capturing project details at the time of release creation to prevent issues when project changes occur later. To address challenges with redeployments not reflecting updated variables, Octopus plans to notify users to create new releases after edits and introduce "roles" to streamline machine management across environments. This will allow for flexibility in adding or removing machines without affecting existing releases, by tagging machines with roles that dictate deployment targets. This innovation aims to simplify the architecture and improve usability while maintaining the stability of existing releases.