mina icon indicating copy to clipboard operation
mina copied to clipboard

Package ITN orchestrator

Open georgeee opened this issue 8 months ago • 7 comments

A much lighter alternative to/subset of #14798.

Following services need to be configured:

  1. A few Mina nodes to be used for experiment setup
    • 1 seed, 3 bps, 5 regular nodes, 1 snark coordinator
  2. Uptime backend (configured in in-memory mode, see PR #15625)
    • super-light HTTP container
    • used for node discovery by testing toolkit
    • nodes connect to uptime backend to submit data
  3. Internal log fetcher
    • used to collect "internal" logs
    • connects to Mina nodes and fetches logs from them
    • 0.5-1 CPU per Mina node
    • Some RAM/disk proportional to Mina nodes <- bounded
  4. Postgresql (with ability to be accessed externally)
    • disk proportional to duration of experiment and number of Mina nodes
    • 1 TB is a good start
    • reachable by "admin" and log fetcher
  5. VS' Dashboard (optional)
    • web app that connects to Mina nodes
    • super-light
  6. Orchestrator
    • light custom container running some Go application (4 CPU?)
    • option A (milti-experiment setup): a server with an SSH access that allows "admin" to connect and start new experiments without touching any other resources in deployment
    • option B (one-experiment setup): a server that runs a given script and finishes after
  7. Snark worker pool <- most CPU heavy component
    • preferably with as few layers of virtualization as possible
    • a small number of high-CPU machines that do not use virtualization
    • preferably not multi-container, but multi-process (static number of worker per server)
    • initially k8s/docker setup is fine

Communication diagram: https://docs.google.com/presentation/d/17ADhlWaH9FyzAI3G4urIwA8gbBVw48Niio0tZ57EEkc

georgeee avatar Jun 20 '24 16:06 georgeee