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 Observability


Observability is a measure of how much you can infer the inner workings of a closed system through external information. This is a very wide definition. This includes, for example, knowing that a server is at least switched on because you receive a response code of some kind rather than a network error. A more purposeful example would be a "heartbeat" endpoint or page, often implemented and called regularly to check that a service is up and responding. This can help you diagnose simple issues, but it's unlikely to help with issues such as a database being intermittently available.

Observability in a software context is said to depend on three pillars: logs, metrics, and traces. We will discuss these in the subsequent sections.

Logs

Logs are system records of event occurrences such as the arrival of a request or completion of some process. This is the most easily and commonly introduced form of observability. They are often recorded in plaintext format—most software...