Git Product home page Git Product logo

canteen's Introduction

canteen.

A decentralized container orchestrating system (Kubernetes), running on Ethereum.

The modern tech startup/enterprise is comprised of tens or hundreds or even thousands of crucial technical components such as databases, backends, replicas of databases, stream processing platforms, etc.

These extremely sensitive moving components comprise a company's tech stack; typically living distributed amongst a cluster of servers.

Should any of these moving components go down due to minor faults, a company could go completely unoperational resulting in hundreds of thousands dollars lost in practice. Imagine the stock exchange's database going down for even a hour!

Large tech giants such as Google aim to solve this problem by introducing a new tech component to their tech stack: a container orchestrator.

A container orchestrator efficiently distributes containerized tech components given a set of servers to maximize a tech components performance and utilization of computational resources, and supervises each and every tech components lifecycle to ensure they get restarted or backed up should anything ever go wrong with the component.

Google's decades of work with hundreds of thousand of servers led to a container orchestration platform popularly used in thousands of companies worldwide known as Kubernetes. Other solutions prior to Kubernetes have existed such as the extremely famous Apache DC/OS.

As good as this may sound though, what are the disadvantages to employing a container orchestrator in a company's tech stack?

  • A container orchestrator remains to be a single source of potential failure for an entire distributed tech stack. If Kubernetes goes down, the tech stack may potentially remain dysfunctional.

  • A container orchestrator is typically extremely complicated, requires large amounts of configuration, and requires other technical components running in the stack (Kubernetes uses a configuration database known as etcd. which has its own set of scaling problems).

  • A container orchestrator is heavy and requires a large number of computational resources.

Introducing canteen

canteen is an extremely scalable container orchestrator that is fault-tolerant, easy to install, easy to distribute, and most importantly decentralized through the utility of an Ethereum smart contract.

canteen efficiently schedules and orchestrates designated Docker containers to a set of servers based on speculated/provisioned container resource limits.

Installing canteen

All you need to do to have canteen work with your tech stack is have your tech components in a Docker container uploaded on Docker Hub.

Deploy the smart contract on whatever chain supports the Ethereum Virtual Machine, and edit the configuration of canteen's node file to point to the smart contract and chain.

Run canteen's node on your set of servers and register your Docker images on the smart contract.

canteen will then orchestrate your Docker containers based on all registered server node resource limitations and keep your entire tech stack fault tolerant and decentralized!

canteen can even replicate Docker containers to any amount of servers you choose should you wish to keep replicas of your database/web server/etc. on your cluster of servers.

Specifications

Given that this was made for a 36-hour hackathon, we only implemented a priority-based Round-robin scheduling mechanism for choosing a set of servers to deploy a set of Docker images to.

Each canteen node uses the SWIM protocol off-chain to determine the liveliness of all servers to efficiently schedule Docker containers to healthy servers. Should a server go down, images will be minimally rescheduled to ensure minimal product/service downtime.

Next Steps

With a working MVP, we have demonstrated the potential of decentralizing container orchestration and its effectiveness. We will now be working on

  • Developing other scheduling mechanisms for choosing the set of servers and proving the option to the user.

  • Moving task-intensive scheduling algorithms off-chain by using a state-channel infrastructure.

  • Creating a decentralized cloud in which people may pay or be paid for hosting decentralized tech components of a company's tech stack, removing reliance on a single monopoly cloud service.

canteen's People

Contributors

iwasaki-kenta avatar tanay1998 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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