Production is where the money is made and where customers are satisfied – but only if our application is up, running and responsive. If our application is down or latent, it’s worthless – and even worse, we loose money and reputation. This is a real challenge with today’s complex, distributed and highly interconnected application landscapes – and concepts like cloud computing or microservices make it even more challenging. That’s what resilience is about: how to design applications that they are highly available and responsive – even in the face of unexpected failure and load situations. In this tutorial we will first learn a few basics about making an application more resilient, including a few basic patterns. Then we will take a simple application that is not yet resilient and transform it step by step into a resilient application applying the patterns we have just learned before.