Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

Technology Choices for Encapsulating Users Code

Docker (a 'containerization' technology) has recently become a popular approach for creating rerunnable executables. In Docker these executables are called 'images'.

As of December 2014 there is a new alternative called Rocket, https://coreos.com/blog/rocket/

Should Synapse be concerned with running

...

containers supplied by users?

Reasons for executing user-submitted

...

containers:

- verifying output of previous run (reproducibility)
- sensitivity of input data (reluctance to release input data to author of the executed code)
- reuse convenience ( when compilation of source code and dependencies into executable is laborious)

The following are by themselves not reasons for executing user supplied

...

containers:

- comprehensibility (just Just because you can execute code doesn't mean you can read or understand it. Source code + documentation is better for this)
- reusabilty repurposibility (just Just because you can execute code doesn't mean it's in a form that can be reused repurposed in another executable. Source code is better for this.)
- large data (may May need to move code closer to data, but this can be achieved by giving the author of the executable access to the system where the data is stored. )

 

Technology Choices for Encapsulating Users Code

Docker (a 'containerization' technology) has recently become a popular approach for creating rerunnable executables. In Docker these executables are called 'images'. Large data could become a driver for containerization in combination with one of the aforementioned drivers, e.g. when re-compilation of source code on the target platform is laborious.)

 

Options for using Docker with Synapse/Challenges:

No image sharing (e.g. ALS Stratification Challenge)

In this approach a challenge administrator creates containers (running images) on users' behalf. Users 'log in' and modify containers as if they're in a unix account.

Advantages: Users need not learn Docker. Containers can be run on a shared system where users are denied admin access. Little or no Synapse development.
Disadvantages: Users don't have visibility as to how images are stored and organized. Mechanism is needed to 'signal' to the administrator to create an image from a configured container. While submission may be streamlined, later sharing with or reuse by third parties is not provided and must be supported separately.

...