Skip to content

nutella 2.0 #100

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 43 commits into
base: master
Choose a base branch
from
Draft

nutella 2.0 #100

wants to merge 43 commits into from

Conversation

tebemis
Copy link
Member

@tebemis tebemis commented Sep 28, 2019

This PR refactors nutella significantly to achieve the following:

  • Thorough documentation of the nutella protocol
  • Full implementation of the protocol in the nutella_lib.js and nutella_lib.rb
  • Move all the nutella business logic to a persistent "command server" process (a la Kubernetes API server)
  • Refactoring of the nutella CLI to be a client that performs all actions via the command server over the wire
  • Expose internal nutella metadata (state, etc.) via framework level APIs
  • Process supervision with proper logging and elimination of tmux

nutella 2.0

  • Command server and CLI
  • Written in Typescript / support only JS
  • Everything via the library
  • Add types to library
  • Add tests to library
  • Logging everything, no longer tmux
  • Scalability as first citizen, control plane separate from data plane
  • Data plane is running simulations (bots) and serving clients (interfaces)
  • Control Plane is spinning up new simulations / classrooms and providing control over the whole system
  • Production mode and dev mode. dev mode CLI is a combo of running infra elements locally (like the broker) and running nutella components. Production mode assumes the components are running already independently and are already there (so we can scale them independently)
  • Everything via the broker, the broker runs as a piece of scalable infrastructure
  • Bots runs everywhere they want, so we can scale, no spcific location, so we need control plane in separate location, not a single API server, depends on location. How do we keep the map of where stuff is running? Global state that keeps track of where everywhere is running
  • Cloud native application, use cloud fully, not single servers. Assume multiple of everything

control plane is

@tebemis tebemis changed the title Refator nutella run as a persistent server process Refactor nutella run as a persistent server process Sep 29, 2019
@tebemis tebemis changed the title Refactor nutella run as a persistent server process nutella 2.0 Nov 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant