Microservices and containers have transformed application design and deployment patterns. Modern cloud native architectures - which underpin many of the world's ground-breaking tech companies such as Uber, Netflix and Airbnb - afford unparalleled levels of agility and scale but are not without trade-offs. Testing in particular poses a significant challenge. With a complex adaptive system that can fail in myriad different ways, what confidence can we really gain from proving it works in a test environment with a certain data set at one particular point in time? Faced with such challenges, "testing in production" has become an attractive approach for enabling the safe deployment and release of software systems at speed.
In this talk, we will explore the gamut of techniques that comprise testing in production including: traffic shadowing at deploy time; feature flags and canarying at release time; as well as chaos testing, A/B tests and tracing post release. Additionally, we will see through a series of live demonstrations how Kubernetes and Istio, a leading open source service mesh, can bring these advanced techniques within reach of mere mortals.
By the end of the session, you will not only understand the techniques involved in safely testing in production but also have the knowledge to put them into practice.