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)

Introduction


In the previous chapter, we looked at serverless scaling patterns and learned how to make serverless applications scale to millions of users. A large part of this revolves around shifting workloads to asynchronous methods. This is a great thing to do, but can lead to quite complex state management for long-running asynchronous methods.

Normal Azure Functions are fleeting, temporary compute environments. This is very useful when combined with their scaling capability, but sometimes you do need a longer-running workflow. This generally involves lots of work and non-business-logic code, particularly around handling transient or systematic failures and availability. Hence, this was previously not really possible in a serverless environment, and was generally only achievable on a Logic App, Azure App Service, or the Azure Data Factory. In the case of a Logic App, the workflow is defined in JSON or in a designer view that is very difficult to scale to a lot of complexity and is also...