First we require you to get a basic understanding of the difference between Releasing software and Deploying software.
The key distinction between a deployment and a release is the business purpose.
A deploy or deployment includes all the technical activities that are needed to make a software system or feature available for use. Think of a fresh Docker container running in a pod on the Kubernetes cluster. The piece of software passed all checks and tests in your (CI/CD) pipeline, and is ready to receive traffic from production users, but it is not actually receiving any, yet. This part of the process is just to make sure that the new version is healthy and running smoothly. It takes care of all the technical checks and balances, without any of the risk incurred by serving actual production traffic. You can conclude that deploying a piece of software is a mundane and risk-free activity. A release comes after a deployment and includes all the activities that are needed to move part of, or all, production traffic to the new version. All the risks and things that could go wrong - downtime, lost revenue, angry managers and customers - are related to the release, and not deploy, to production. You can conclude that releasing a piece of software is an exciting and pretty risky activity. It’s an activity that deserves more attention. You may choose to release a new version as soon as it is deployed into production but that should be a conscious business decision. When done correctly, deploying a new version of a microservice to production should have no direct impact on your users' experience. In contrast, releasing deliberately impacts your users' experience. You want your users to experience the product features and improvements provided by that the new version, in the expectation that this will deliver additional business value. However, there is always a risk that the new version will deliver a degraded user experience. This could be the result of technical issues or it could be because your users don't like the product features and improvements provided by that the new version. Vamp's Continuous Release Orchestration solution provides you with the tools to manage that risk. Simultaneously, safeguarding your users' experience and ensuring that new microservices versions are truly delivering additional business value.