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)

Preface

Note

About

This section briefly introduces the author, the coverage of this book, the technical skills you'll need to get started, and the hardware and software required to complete all of the included activities and exercises.

About the Book

Advanced Serverless Architectures with Microsoft Azure will redefine your experience of designing serverless systems. It shows you how to tackle challenges of varying levels, not just straightforward ones. You'll learn how to deliver features quickly by building systems that 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. In 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. You will finally build a continuous chaos pipeline that will test your systems' resilience to this chaos.

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.

About the Author

Daniel Bass is the author of Beginning Serverless Architectures with Microsoft Azure and is a developer with a major financial services firm. His educational background includes a first-class honors MSc in Physics from University College, London. He is a key member of the team who creates greenfield projects purely on Azure, utilizing a combination of serverless functions, web apps, and Data Lake Analytics. He has designed solutions from scratch for ingesting complex information from legacy data sources using serverless functions, processing it using Data Lake Analytics, and reforming it using serverless functions. His team actively develops serverless solutions that design their own releases, and he is completely familiar with both release tooling and development tooling.

Daniel also has several years' experience as a tutor of GCSE and A-Level students, producing quality education support for students across a broad spectrum of ages and abilities. He enjoys teaching and sharing knowledge with others.

Objectives

  • Understand what true serverless architecture is

  • Study how to extend and scale architectures until they become "complex"

  • Implement durable functions in your design

  • Discover how a lack of observability affects serverless architecture

  • Improve the observability of your serverless architecture

  • Implement security solutions using serverless services

  • Learn how to practice chaos engineering in production

Audience

Advanced Serverless Architectures with Microsoft Azure is ideal if you want to build serverless systems with fewer outages and high performance using Azure. Familiarity with the C# syntax, Azure Functions, and ARM templates will help you to benefit more from this book. Prior knowledge of basic frontend development, HTML, JS, and CSS is beneficial but not essential. Some DevOps knowledge is also beneficial but not essential.

Approach

Advanced Serverless Architectures with Microsoft Azure takes a hands-on approach to the practical aspects of using Azure to build serverless systems that fulfill complex requirements. It contains multiple activities that use real-life business scenarios for you to practice and apply your new skills in a highly relevant context.

Hardware Requirements

For an optimal experience, we recommend the following hardware configuration:

  • Processor: Intel Core i3 or equivalent

  • Memory: 4 GB RAM

  • Storage: 1 GB available space

Software Requirements

You'll also need the following software installed in advance:

  • OS: Any desktop Linux version or macOS, or Windows 10

  • Browser: Use one of the latest browsers such as Firefox, Chrome, Safari, Edge, or IE11, for example.

Conventions

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "Create a new folder in your development area called ProductsApi."

A block of code is set as follows:

namespace QueueFunctions.Models {
  public class Product {
    [JsonProperty(PropertyName = "typeId")]
    public string TypeId { get; set; }
    [JsonProperty(PropertyName = "name")]

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "Click Pipelines, and then click Builds."

Installation and Setup

Before you start this book, you need to setup a Microsoft Azure on your account and install the required software for the book. You will find the steps to install it here:

Installing the Code Bundle

Copy the code bundle for the class to the C:/Code folder.

Additional Resources

The code bundle for this book is also hosted on GitHub at: https://github.com/TrainingByPackt/Advanced-Serverless-Architectures-with-Microsoft-Azure.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!