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:
Sign up for an Azure account and subscription by following the instructions here: https://azure.microsoft.com/en-gb/free/.
Install .NET Core for your operating system from: https://www.microsoft.com/net/learn/dotnet/hello-world-tutorial.
Install Visual Studio Code for your operating system from: https://code.visualstudio.com/Download.
Install Azure Functions Core Tools by following the instructions for your operating system here: https://github.com/Azure/azure-functions-core-tools.
Install the Azure Functions extension and Azure Storage extension for Visual Studio Code from the Extensions marketplace on Visual Studio Code.
Install the Long Term Stable release of Node.js for your operating system from here: https://nodejs.org/en/download/.
Ensure that you've installed Postman from the following link before you begin: https://www.getpostman.com/.
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!