Testing, releases, and cutovers
The rolling update feature can work well for a simple blue-green deployment scenario. However, in a real-world blue-green deployment with a stack of multiple applications, there can be a variety of interdependencies that require in-depth testing. The update-period
command allows us to add a timeout
flag where some testing can be done, but this will not always be satisfactory for testing purposes.
Similarly, you may want partial changes to persist for a longer time and all the way up to the load balancer or service level. For example, you may wish to run an A/B test on a new user interface feature with a portion of your users. Another example is running a canary release (a replica in this case) of your application on new infrastructure like a newly added cluster node.
Let's take a look at an A/B testing example. For this example, we will need to create a new service that uses sessionAffinity
. We will set the affinity to ClientIP
, which will allow us to forward...