Book Image

Advanced Serverless Architectures with Microsoft Azure

By : Daniel Bass
Book Image

Advanced Serverless Architectures with Microsoft Azure

By: Daniel Bass

Overview of this book

Advanced Serverless Architectures with Microsoft Azure redefines your experience of designing serverless systems. It shows you how to tackle challenges of varying levels, not just the straightforward ones. You'll be learning how to deliver features quickly by building systems, which retain the scalability and benefits of serverless. You'll begin your journey by learning how to build a simple, completely serverless application. Then, you'll build a highly scalable solution using a queue, load messages onto the queue, and read them asynchronously. To boost your knowledge further, the book also features durable functions and ways to use them to solve errors in a complex system. You'll then learn about security by building a security solution from serverless components. Next, you’ll gain an understanding of observability and ways to leverage application insights to bring you performance benefits. As you approach the concluding chapters, you’ll explore chaos engineering and the benefits of resilience, by actively switching off a few of the functions within a complex system, submitting a request, and observing the resulting behavior. By the end of this book, you will have developed the skills you need to build and maintain increasingly complex systems that match evolving platform requirements.
Table of Contents (8 chapters)

Chaos Engineering


Chaos engineering consists of testing software systems in production in order to build the systems' resilience to unexpected and unpredictable real-life failures. Simply put, an engineering team or automated software suite injects purposeful errors into production as part of experiments that then developers/engineers have to make their systems resilient to.

Usually, with systems we think of some simple error scenarios and put in error handling for them. However, with complex distributed systems such as a serverless architecture, this no longer really works due to the problem of second-order effects. For instance, if you have a network failure of the connection to your Azure SQL Server, then you might expect the function calling it directly to retrieve records to fail. But what about the behavior of the SQL Server triggered function? Will that pick up the lost messages when the connection has recovered? Or will that trigger continue to function, running the risk of you sending...