We are excited to offer new hands-on labs based on the book Designing Distributed Systems, by Kubernetes project cofounder, Brendan Burns. The labs in this GitHub repository will help you build practical experience with the reusable patterns and components covered in the book. Follow step-by-step examples to create containerized and distributed apps in Kubernetes and Kubeless, using Azure Container Services (AKS) and other services to put them into production.

Below is a summary of what to expect in each lab. Prefer a walk through first? Check out this webinar with Brendan Burns.

PART I:

Try the single node Ambassador Pattern, the first step in creating and extending a containerized application.

Lab 1.1. Request Splitting

In this lab we show how to implement the ambassador pattern in Azure Container Services (AKS) by deploying a request splitting ambassador with NGINX in Kubernetes that splits 10% of traffic to an experimental server.

Lab 1.2. Circuit Breaker

In this lab we show how to implement a circuit breaker pattern with Kubernetes in AKS to prevent, mitigate and manage failures by allowing failing services to recover, re-route traffic to alternative services and perform rate limiting.

PART II:

Get experience with patterns for replicating containerized applications and augmenting functions in a serverless environment

Lab 2.1. Replicated Load Balancing Services

In this lab we show how easy it is to deploy a Docker image and implement a replicated load balancing server around it in Kubernetes with Azure Container Services (AKS).

Lab 2.2. Decorator Function

We show how the Decorator Pattern can be useful to perform transformations when calling Functions as a Service, in a serverless environment with Kubeless.

PART III:

Get hands-on with event-driven and distributed patterns by creating a containerized batch processing workflow

Lab 3. Batch Computational Pattern

We demonstrate how the Copier, Filter, Split and Join patterns can be used to route events through an event-driven containerized batch processing thumbnail generator. Blobs are stored in Azure Blob Storage and different Kubernetes pods in AKS are responsible for processing input media into different output formats. This is all tied together with events streaming through Azure Event Hub.

Access all the labs here and let us know what you think in the comments.

Check out the webinar with Brendan Burns: In the webinar you’ll further your learning on how to use the concepts, patterns, and practices outlined in the e-book.