When a new version of your service is deployed for an application, a release policy is applied to determine if the new version should replace the current, live version of the service.
The policy conditions are evaluated every 30 second by the Vamp Release Agent running in the application namespace on your Kubernetes cluster. The Release Agent uses data from Kubernetes and your chosen Ingress controller plus any custom metrics that are part of the release policy.
Each release policy has at least one step. At the start of each step a percentage of users are exposed to the new version and the Release Agent monitors the performance of the new version. If the policy conditions are not met then the new version is rolled back with the minimum of impact on your user's experience.
If the new version of a service does not meet all the conditions described by the release policy Vamp immediately switches all users back to the current, live version.
A rollback takes 30 - 60 seconds.
Example: Creating a Policy for an Ecommerce Service
In this example we are going to create a policy for releasing minor versions of a service that is part of an ecommerce application.
First, we need to 3 crucial pieces of information about the service itself:
The response time SLO
The number of requests the service can be expect typical "peak" and "off peak" periods.