GithubHelp home page GithubHelp logo

hhy5277 / designing-distributed-systems-labs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brendandburns/designing-distributed-systems-labs

0.0 1.0 0.0 10.88 MB

Labs for the Designing Distributed Systems book.

Dockerfile 7.12% JavaScript 91.19% Python 1.68%

designing-distributed-systems-labs's Introduction

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)

designing-distributed-systems-labs's People

Contributors

brendandburns avatar tylerlu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.