Components
- VPN : tinc, connects all computers at all sites into one unified network address space with secure communication
- SSL : stunnel
- Client : CoffeeScript client library that runs in web browser
- Load balancer : HAproxy
- Database : Apache Cassandra-- distributed, NoSQL, fault tolerant; this is the *only* longterm non-stateless part of the system
- Compute : VM's running some TCP servers (e.g., python2, sage, console, projects, python3, R, etc.)
- Hub : written in Node; Sock.js server; connects with *everything* -- compute servers, Cassandra DB, other hubs, and clients.
- HTTP server : nginx
- Admin : python program that uses paramiko to start/stop everything, configure VM's, etc.
- Cloud : (mostly) KVM virtual machines in various places, plus public clouds...
ASCII Art Diagram
Client Client Client Client ...
/|\
|
https://salv.us (stunnel, sock.js)
|
|
\|/
HAProxy load balancers ........ Admin
/|\ /|\ /|\ /|\
| | | |
|http1.1 | | |
| | | |
\|/ \|/ \|/ \|/
Hub<----> Hub<---->Hub<---> Hub <-----------> Cassandra <--> ...
/|\ /|\ /|\
| | |
---------| | | (tcp)
| | |
| | |
\|/ \|/ \|/
Compute Compute Compute Compute ...
No comments:
Post a Comment