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)

Understanding Azure Durable Functions


Azure Durable Functions can be understood as asynchronous jobs that save their state and switch off while waiting for work to be completed. To understand this concept better, consider a normal Azure Function running a potentially long-running process. If you await the result of this process, you may exceed the 10-minute limit and the Azure Function will be killed by the runtime and lose all data.

An Azure Durable Function, however, will save its state and pick up where it left off when it receives results (hence, it is durable). This is incredibly useful as it saves a lot of "boilerplate" infrastructure that you usually have to create when trying to implement complex workflows in Azure Functions (you would generally have to process a small amount of data and then store it in a queue, whose only real purpose is to trigger the next function).

Another important differentiator to Logic Apps, Data Factory, or AWS Step Functions is that Durable Functions are...