Code Monkey home page Code Monkey logo

bernstein's Introduction

Popeye

Time: 3 weeks

Team: 2

Language: Kubernetes, Yaml

The project

Orchestration is the arrangement of a piece of music in parts so that it can be played by an orchestra (from the Oxford Advanced Learner’s Dictionary). In other terms, it is the process of organizing the different components of a system in order for them to be (correctly) executed by a generic infrastructure. Leonard Bernstein was an exceptional composer (his most famous work being the soundtrack of West Side Story), pianist, and conductor in his days.

During this project, you are going to become the Leonard Bernstein of containers!

The orchestra you are going to conduct is one of the most popular of its kind: Kubernetes. Kubernetes is an open-source platform that allows you to manage containerized applications and services, in a scalable and automatic way.

You will deploy an application to a multi-host cluster using Kubernetes, and you will use Traefik as a reverse proxy and load balancer. The application you will be working on during this project is a simple web poll application.

There are five elements constituting the application:

  • Poll, a Flask Python web application that gathers votes and push them into a Redis queue.
  • A Redis queue, which holds the votes sent by the Poll application, awaiting for them to be consumed bythe Worker.
  • The Worker, a Java application which consumes the votes being in the Redis queue, and stores them intoa PostgreSQL database.
  • A PostgreSQL database, which (persistently) stores the votes stored by the Worker.
  • Result, a Node.js web application that fetches the votes from the database and displays the. . . well, result. ;)

ENVIRONMENT

You will need at least 1 Kubernetes master and 2 nodes (workers). You can run it locally, but it is highly recommended to use a “Kubernetes as a Service” platform.

Examples of such platforms include (but are not limited to) Amazon Elastic Kubernetes Service,Google Ku-bernetes Engine, and Digital Ocean.

Installing a full Kubernetes cluster locally is complex. Minikube is also not built for multi-node clusters (which you needfor your project).

Author Corentin COUTRET-ROZET and Hugo LACHKAR

bernstein's People

Stargazers

 avatar  avatar

Watchers

 avatar  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.