...
- existing ToolManager?
- Pros
- already parameterized to launch multiple tools (jupyter and rstudio)
- Cons
- no notion of "user" or authentication
- Pros
- Girder/tmpnb?
- Pros
- notebooks automatically time out after a given period
- inherited notion of "user"
- Cons
- can only launch single image type, currently (only jupyter)
- inherited notion of "user" may present an interesting auth problem - how do we share these accounts between sites?
- Pros
- Kubernetes / Docker Swarm?
- Pros
- familiar - this is how the ndslabs API server works, so we can possibly leverage Craig's kube.go
- orchestration keeps containers alive if possible when anything goes wrong
- Cons
- may be too complex to accomplish in the short term
- Pros
- docker -H?
- Pros
- zero setup necessary, just need Docker installed and the port open
- Cons
- HIGHLY insecure
- Pros
- existing ToolManager?
...
- Sites push their status to the API
- Assumption: failures are retried after a reasonable period
- Pros
- Updates happen in real-time (no delay except network latency)
- Cons
- Congestion if many sites come online at precisely the same second
- API polls for each site's status
- Assumption: failures are silent, and retried on the next poll interval
- Pros
- ???
- Cons
- Time delay between polls means we could be desynchronized
- Not scalable Threading nightmare - this is either one thread short-lived per site, or one giant thread looping through all sites
...