The difference between a deployment and a release
In software development, the words deployment and release are often used interchangeably, but I consider these fundamentally different:
- A deployment happens when new code is installed into an environment, but these new code paths are not yet exposed to end-users. For example due to a loadbalancer still directing traffic to previous instances, or feature flags preventing new code paths from being activated yet.
- A release happens when these new code paths are actually exposed to users, for example by shifting traffic over to the new instances, or feature flags being toggled that cause new features to be turned on.
(See also Canary Releases)