[ 
https://issues.apache.org/jira/browse/MESOS-816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13844569#comment-13844569
 ] 

Nikita Vetoshkin commented on MESOS-816:
----------------------------------------

A few random thoughts from a stranger if you don't mind.

I think all demands like ??Setups requiring installation and configuration of 
RPM-packaged applications.?? can be satisfied by docker - just create a docker 
container and you're good to go.

Why do you need isolation delegation if any type of isolation can be provided 
by custom executor. If I'm reading {{mesos.proto}} correctly {{resources}} are 
passed to executor and it can do whatever it thinks suitable to isolate task.

> Allow delegation to shell scripts for isolation
> -----------------------------------------------
>
>                 Key: MESOS-816
>                 URL: https://issues.apache.org/jira/browse/MESOS-816
>             Project: Mesos
>          Issue Type: Improvement
>          Components: isolation, slave
>            Reporter: Jason Dusek
>            Priority: Minor
>         Attachments: mesos-shell-isolator.jpg
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> Being able to delegate isolation to shell scripts could make it easier to 
> leverage the machinery provided by the LXC tools, LibVirt, VirtualBox, Docker 
> and similar containerization systems.
> Why go through command line tools for isolation? We have seen many requests 
> for isolation, covering a wide variety of scenarios:
> - Setups requiring multiple versions of the same language (Ruby 1.8, Ruby 
> 1.9).
> - Setups requiring installation and configuration of RPM-packaged 
> applications.
> - Build-and-test setups, where sharing the environment of the host would 
> impact reproducibility.
> - Integration of 3rd party, service-oriented applications.
> - Launching applications with Docker.
> - Launching multiple instances of a Mesos framework that, like Hadoop, has 
> significant system setup and dependencies.
> To cover these and other use cases, it seems reasonable to allow Mesos to 
> delegate to external programs for isolation:
> - It makes it easier to experiment with new containerization tools.
> - It allows for site administrators to customize containerization, or even 
> implement new containerization mechanisms, without impacting their ability to 
> keep pace with Mesos development.
> - Many external programs exist for containerization -- Docker, LXC tools, 
> LibVirt -- which handle a great deal of the book-keeping around finding and 
> efficiently cloning disk images and setting up the guest system (its 
> hostname, TTYs, /dev/*, /proc).
> The scenarios listed above can be understood in terms of three use cases:
> - The containerized system service scenario, wherein an application, 
> installed with RPM or a similar tool, is started and managed by the init 
> system within a container. Percona MySQL is an example of such an application.
> - The containerized application scenario, wherein an application is installed 
> or unpacked and then configured and launched in a single command. For 
> example, running a custom Rails app with bundle install && bundle exec rails.
> - The containerized framework/executor scenario, wherein the application is 
> Spark, Hadoop or another Mesos framework/executor pair.
> One way to achieve this could be to introduce an External Isolator, which 
> works in parallel with the existing process/posix and cgroups isolators. The 
> responsibility of this isolator would be to act as a thin layer to external 
> isolators. Calls for task launching, stopping or any other resource change 
> would be serialized and passed to the external isolators by the Mesos 
> External Isolator. 
> We think an approach like this adds a lot of flexibility while still keeping 
> a good clean architecture and avoids using executors for isolation.
> However, we are currently exploring how to solve this problem so feel free to 
> opt in with ideas, comments and suggestions.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to