As your application grows, the effort required to test and deploy it also grows exponentially. There is an entire layer of errors that just can’t be found via automated and manual testing: concurrency, server environment specific bugs, bugs that occur from requests called in a particular order, and much more. Humans, browsers, and robots all do strange things that affect the frequency of requests, URL weighting, size of headers, etc.
The idea is to have safe, reliable and stress free release with use of Canary and mirroring of production traffic
- Canary: Canary deployments are a popular technique for incrementally testing changes on real-world traffic - Kubernetes support multiple deployments strategies like rolling updates etc However, gradual rollouts of new feature version don’t come out of the box but can be achieved by adding ingress controller inside K8s and using weighted round robin scheme to route traffic between K8s services. During this session we will discuss about strategies and learning of Canary release implementations on Kubernetes.
- Traffic Mirroring: Use varieties of traffic generated in production, to check your new version of application before release. You should be able to record the traffic and replay it in a manner that is absolutely identical to the testing environment. Filter the traffic, limit the load of requests and then forward to multiple hosts would be key aspects in replay. At the end, you should see a comprehensive report that will really boost your and your client's confidence to upgrade the application successfully.