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)

Asynchronous by Default


A lot of applications are synchronous. That is to say, when you perform an action, the program processes it and returns the answer, holding up the program and the user from doing anything else until it has returned the answer. This is the way most developers design their applications, particularly those used to REST. However, this can become a serious barrier to scalability. If your application needs to process complex requests, the time taken becomes intolerable to the end user. This is the point where most developers will decide to adjust the behavior for this request so that the synchronous part simply includes validation, and processing is done asynchronously. Asynchronous behavior is where the user performs an action and the application processes it when it has time, rather than keeping the user sitting there.

With a serverless architecture, it is a very good idea to shift your mindset. When designing applications, you should endeavor to be asynchronous by default...