• Stars
    star
    1,249
  • Rank 37,617 (Top 0.8 %)
  • Language
    JavaScript
  • Created over 6 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Labs for the Designing Distributed Systems book.

Designing Distributed Systems - Labs

Labs for Designing Distributed Systems

The samples in this lab are written with the reader of this book in mind: https://azure.microsoft.com/en-us/resources/designing-distributed-systems/en-us/ and will guide you through the steps in designing and deploying distributed systems in Microsoft Azure.

1.1. Single Node Pattern: Ambassador

In this lab we'll guide you through the steps to implement the Ambassador pattern with NGINX in Kubernetes by deploying a request splitting service that will split 10% of the incoming HTTP requests to an experimental server. This request splitting service can then be used in a scenario where you want to test a new version of a back-end service with only a subset of the requests.

Architecture Overview of the Batch Computational Pattern

Go to lab: 1.1. Request Splitter

1.2. Single Node Pattern: Circuit Breaker Pattern

In this lab we'll guide you through the steps to implement the Ambassador pattern as a Circuit Breaker with NGINX Plus and Kubernetes. The Circuit Breaker patterns is extremely useful in scenarios where you want to help failing back-end servers to recover from failure, re-route traffic and perform rate limiting.

Architecture Overview of the Batch Computational Pattern

Go to lab: 1.2. Single Node Pattern

2.1. Serving Pattern: Load Balancing Server

In this lab we'll guide you through the steps to deploy a replicated load balancing service that will process requests for the definition of English words. The requests will be processed by a few small replicated NodeJS servers that you will deploy in Kubernetes using a pre-existing Docker image.

Architecture Overview of the Batch Computational Pattern

Go to lab: 2.1. Replicated Load Balanced Services

2.2. Serving Pattern: Decorator Function

In this lab you will apply the Decorator Pattern to implement a function in Kubeless that adds default values and performs transformations to the input of an HTTP RESTful API.

Architecture Overview of the Batch Computational Pattern

Go to lab: 2.2. Decorator Function

3. Batch Computation Pattern

In this lab you will apply the Copier, Filter, Splitter and Join patterns to implement a fully functional containerized and batch-processing thumbnail generator in Kubernetes that uses a pre-generated Docker image of the popular FFMPEG media conversion tool.

Architecture Overview of the Batch Computational Pattern

Go to lab: 3. Batch Computational Pattern

4. Contributors

Roles Author(s)
Project Lead / Architect / Lab Manuals Manfred Wittenbols (Canviz) @mwittenbols
Sponsor / Support Phil Evans (Microsoft)
Sponsor / Support Anand Chandramohan (Microsoft)

5. Version history

Version Date Comments
1.0 April 23, 2018 Initial release

Disclaimer

THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.


Logo of Azure AKS Azure Container Service (AKS)

More Repositories

1

designing-distributed-systems

Sample code and configuration files from the Designing Distributed Systems book.
Python
904
star
2

gcp-live-k8s-visualizer

Source code for the Kubernetes visualizer used in the GCP Live Container Engine Demo
JavaScript
214
star
3

metaparticle

A new pattern for distributed system development
JavaScript
186
star
4

configula

Experimental configuration generator inspired by JSX
Go
140
star
5

ksql

Query Kubernetes API objects using SQL.
JavaScript
129
star
6

kbp-sample

Sample app for Kubernetes best practices book from O'Reilly
JavaScript
86
star
7

kubesanity

KubeSanity a sanity checking framework for Kubernetes
Python
84
star
8

kubernetes-adduser

Simple tool for adding users to Kubernetes clusters
Shell
49
star
9

py-k4a

python libraries for the kinect for Azure
C
46
star
10

cl-k8s

Common Lisp Client for Kubernetes
Common Lisp
33
star
11

kubectl-select

A simple plugin for kubectl that enables the selection of resources.
Go
24
star
12

topz

A simple utility for running 'top' as a webserver.
Go
19
star
13

arduino-air-quality-exporter

An exporter from Arduino to prometheus for Air Quality metrics.
C++
15
star
14

k8s-playbooks

Some ansible playbooks for managing my k8s cluster(s)
Shell
14
star
15

dns-sync

A declarative synchronization tool for managing cloud DNS records.
Go
11
star
16

caddy-wasm

WebAssembly (WASM) extension for the caddy2 web server.
Go
9
star
17

typescript

A Typescript client for Kubernetes
TypeScript
9
star
18

dotnet-dockerfile

Simple .NET core library for parsing and generating Dockerfiles
C#
9
star
19

kubernetes-teams

Kubernetes teams app
JavaScript
9
star
20

acs-ignite-demos

Demos for my sessions at ignite.
Shell
7
star
21

devops-days-seattle-2019

Demos from DevOps Days 2019
Shell
7
star
22

aci-bridge-k8s

Experimental ACI Bridge for Kubernetes
TypeScript
6
star
23

wazero-http

Module implementation of the wasi-http spec for wasi-go
Go
4
star
24

dev-wasm

[moved, see https://github.com/dev-wasm] Giant docker image to make wasm building easy.
Dockerfile
3
star
25

eraser

A simple daemon for ensuring that images are removed from a machine.
C#
3
star
26

air-quality-display

Arduino app for displaying air quality
C++
3
star
27

arc-prometheus

arc-prometheus
3
star
28

admission-control-sdk

Javascript SDK for building Kubernetes admission controllers [work in progress]
JavaScript
3
star
29

dapr-demo

Shell
3
star
30

vs-docker

A visual studio plugin for interacting with the Docker API (Build, Run, Stop)
JavaScript
3
star
31

container-survey

Questions to ask in the monthly container survey.
2
star
32

oss-canada-demos

Shell
2
star
33

k8s-community-survey

Docker image for analyzing kubernetes community survey data
Jupyter Notebook
2
star
34

client-java

Java client library for Kubernetes
Java
2
star
35

mongo-k8s

MongoDB configuration for Kubernetes
2
star
36

simple-node

JavaScript
1
star
37

mongoose-api

JavaScript
1
star
38

cloud-primitives

Cloud primitives for cloudy cloud
TypeScript
1
star
39

js-sdk

Actions SDK for Javascript
JavaScript
1
star
40

cri-base

A simple base application for implementing Kubernetes Container Runtime Interface Servers
Go
1
star
41

micropython-ota

Python
1
star
42

webinar

Shell
1
star
43

velocity-demos

HTML
1
star
44

drawing

TypeScript
1
star
45

acs-build-demos

Demos for the ACS build session
Shell
1
star
46

wasi-http-examples

Examples of using the WASI HTTP API in WebAssembly
1
star
47

wasi-http-ts

Experimental HTTP client for typescript and WebAssembly
TypeScript
1
star
48

hostname-server

Simple server that responds with path and hostname.
JavaScript
1
star
49

dev-wasm-dapr

TypeScript
1
star
50

azure-cloud-shell

TypeScript
1
star
51

ghc-feature

A DevContainer feature that installs the Glasgow Haskell Compiler
Shell
1
star
52

rabbitmq-arc

RabbitMQ Configuration for Azure Arc
1
star