Handling deployments effectively is an essential aspect of making the most of modern microservice architectures. How do you safely and quickly deploy updates? How do you test that your microservices work at scale in a full production system? How do you measure and respond to problems occurring shortly after an update?
A lot of techniques and solutions to these problems get mentioned: deployments can be ramped, blue/green or canary. System tests can take place in a staging environment or may be eschewed in favour of ““testing in production”” techniques, such as chaos monkeys and shadowing. However, whilst this gets talked about a lot, actual code examples and tools seem thinner on the ground.
In this talk, we’ll take a look at the various techniques, when you might want to use them, and provide practical examples on how to implement them.
8. www.container-solutions.com info@container-solutions.com
Horses For Courses
■ Different strategies in different circumstances
■ Financial trading or medical services
○ vs cat pictures
■ different tolerances for errors
■ amount of testing
■ rollout speed
■ cost of deployments
31. www.container-solutions.com info@container-solutions.com
The Future
■ More tooling building on top of Kubernetes
■ Primarily “service meshes”
○ Istio, linkerd
○ Sidecar containers providing intelligent routing
○ Out-of-the box support for canaries, blue-green
○ Better monitoring and observability
33. www.container-solutions.com info@container-solutions.com
References
■ Site Reliability Engineering
■ BitMovin Canary Deployments on Kubernetes
■ New Stack Article on Deployment Strategies by Etienne Tremel
■ Netflix Articles
○ http://techblog.netflix.com/2013/08/deploying-netflix-api.html
○ https://www.infoq.com/presentations/canary-analysis-deployment-pattern
■ Thanks to Tom Wilkie & Weave, colleagues at Container Solutions, Dave Farley, Ben
Whaley, Matt Heath, Daniel Hoelbling-Inzko