You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ti...@apache.org on 2015/12/17 13:03:55 UTC

svn commit: r1720528 [1/2] - in /mesos/site/publish: assets/img/documentation/ blog/mesos-0-26-0-released/ documentation/containerizer-internals/ documentation/latest/containerizer-internals/ documentation/latest/mesos-provisioner/ documentation/latest...

Author: tillt
Date: Thu Dec 17 12:03:55 2015
New Revision: 1720528

URL: http://svn.apache.org/viewvc?rev=1720528&view=rev
Log:
Added new pages for 0.26.0

Added:
    mesos/site/publish/assets/img/documentation/ec_kill_seqdiag.png   (with props)
    mesos/site/publish/assets/img/documentation/ec_launch_seqdiag.png   (with props)
    mesos/site/publish/assets/img/documentation/ec_lifecycle_seqdiag.png   (with props)
    mesos/site/publish/assets/img/documentation/ec_orphan_seqdiag.png   (with props)
    mesos/site/publish/assets/img/documentation/ec_recover_seqdiag.png   (with props)
    mesos/site/publish/assets/img/documentation/fetch_components.jpg   (with props)
    mesos/site/publish/assets/img/documentation/fetch_evict1.jpg   (with props)
    mesos/site/publish/assets/img/documentation/fetch_evict2.jpg   (with props)
    mesos/site/publish/assets/img/documentation/fetch_evict3.jpg   (with props)
    mesos/site/publish/assets/img/documentation/fetch_flow.jpg   (with props)
    mesos/site/publish/assets/img/documentation/fetch_state.jpg   (with props)
    mesos/site/publish/assets/img/documentation/maintenance-primitives-modes.png   (with props)
    mesos/site/publish/assets/img/documentation/networking-architecture.png   (with props)
    mesos/site/publish/assets/img/documentation/oversubscription-overview.jpg   (with props)
    mesos/site/publish/blog/mesos-0-26-0-released/
    mesos/site/publish/blog/mesos-0-26-0-released/index.html
    mesos/site/publish/documentation/containerizer-internals/
    mesos/site/publish/documentation/containerizer-internals/index.html
    mesos/site/publish/documentation/latest/containerizer-internals/
    mesos/site/publish/documentation/latest/containerizer-internals/index.html
    mesos/site/publish/documentation/latest/mesos-provisioner/
    mesos/site/publish/documentation/latest/mesos-provisioner/index.html
    mesos/site/publish/documentation/latest/roles/
    mesos/site/publish/documentation/latest/roles/index.html
    mesos/site/publish/documentation/latest/sandbox/
    mesos/site/publish/documentation/latest/sandbox/index.html
    mesos/site/publish/documentation/mesos-provisioner/
    mesos/site/publish/documentation/mesos-provisioner/index.html
    mesos/site/publish/documentation/roles/
    mesos/site/publish/documentation/roles/index.html
    mesos/site/publish/documentation/sandbox/
    mesos/site/publish/documentation/sandbox/index.html

Added: mesos/site/publish/assets/img/documentation/ec_kill_seqdiag.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/ec_kill_seqdiag.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/ec_kill_seqdiag.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/ec_launch_seqdiag.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/ec_launch_seqdiag.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/ec_launch_seqdiag.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/ec_lifecycle_seqdiag.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/ec_lifecycle_seqdiag.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/ec_lifecycle_seqdiag.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/ec_orphan_seqdiag.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/ec_orphan_seqdiag.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/ec_orphan_seqdiag.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/ec_recover_seqdiag.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/ec_recover_seqdiag.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/ec_recover_seqdiag.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/fetch_components.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/fetch_components.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/fetch_components.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/fetch_evict1.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/fetch_evict1.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/fetch_evict1.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/fetch_evict2.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/fetch_evict2.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/fetch_evict2.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/fetch_evict3.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/fetch_evict3.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/fetch_evict3.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/fetch_flow.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/fetch_flow.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/fetch_flow.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/fetch_state.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/fetch_state.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/fetch_state.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/maintenance-primitives-modes.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/maintenance-primitives-modes.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/maintenance-primitives-modes.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/networking-architecture.png
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/networking-architecture.png?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/networking-architecture.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/assets/img/documentation/oversubscription-overview.jpg
URL: http://svn.apache.org/viewvc/mesos/site/publish/assets/img/documentation/oversubscription-overview.jpg?rev=1720528&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mesos/site/publish/assets/img/documentation/oversubscription-overview.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: mesos/site/publish/blog/mesos-0-26-0-released/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/blog/mesos-0-26-0-released/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/blog/mesos-0-26-0-released/index.html (added)
+++ mesos/site/publish/blog/mesos-0-26-0-released/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Mesos 0.26.0 Released</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/blog
+/">Blog
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row">
+
+<div class="col-md-3">
+	<div class="meta">
+		<span class="author">
+			
+			<span class="author_contact">
+			  <p><strong>Till Toenshoff</strong></p>
+			  <p><a href="http://twitter.com/ttoenshoff">@ttoenshoff</a></p>
+			</span>
+		</span>
+		<p><em>Posted December 16, 2015</em></p>
+	</div>
+	
+	<div class="share">
+		<span class="social-share-button"><a href="https://twitter.com/share" class="twitter-share-button" data-via="apachemesos">Tweet</a></span>
+		
+		<span><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script></span>
+
+		<span><div class="g-plusone" data-size="medium"></div></span>
+
+		<!-- Place this tag after the last +1 button tag. -->
+		<script type="text/javascript">
+		  (function() {
+		    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+		    po.src = 'https://apis.google.com/js/plusone.js';
+		    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+		  })();
+		</script>
+		
+		<script src="//platform.linkedin.com/in.js" type="text/javascript">
+		 lang: en_US
+		</script>
+		<script type="IN/Share" data-counter="right"></script>
+	</div>
+</div>
+
+<div class="post col-md-9">
+	<h1>Apache Mesos 0.26.0 Released</h1>
+	
+	<p>The latest Mesos release, 0.26.0, is now available for <a href="http://mesos.apache.org/downloads">download</a>.
+103+ bugfixes and improvements made it into this release.
+For full release notes with all features and bug fixes, please refer to the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.26.0">CHANGELOG</a>.</p>
+
+<h3>Upgrades</h3>
+
+<p>Rolling upgrades from a Mesos 0.25.0 cluster to Mesos 0.26.0 are straightforward. There are just some minor, backwards compatible deprecations.
+Please refer to the <a href="http://mesos.apache.org/documentation/latest/upgrades/">upgrade guide</a> for detailed information on upgrading to Mesos 0.26.</p>
+
+<h3>Try it out</h3>
+
+<p>We encourage you to try out this release and let us know what you think.
+If you run into any issues, please let us know on the <a href="https://mesos.apache.org/community">user mailing list and IRC</a>.</p>
+
+<h3>Thanks!</h3>
+
+<p>Thanks to the 45 contributors who made 0.26.0 possible:</p>
+
+<p>Adam B, Alex Clemmer, Alexander Rojas, Alexander Rukletsov, Anand Mazumdar, Andrey Dyatlov, Artem Harutyunyan, Avinash sridharan, Benjamin Bannier,
+Benjamin Hindman, Benjamin Mahler, Bernd Mathiske, Bhuvan Arumugam, Chengwei Yang, Chi Zhang, Connor Doyle, Dave Lester, Elsmore, Felix Abecassis,
+Gastón Kleiman, Gilbert Song, Greg Mann, Guangya Liu, haosdent huang, Isabel Jimenez, James Peach, Jian Qiu, Jie Yu, Joerg Schad, Jojy Varghese,
+Jonathon Rossi, Joris Van Remoortere, Joseph Wu, Kapil Arya, Klaus Ma, Marco Massenzio, Michael Park, Neil Conway, Rossi, Spike Curtis,
+Till Toenshoff, Timothy Chen, Tomasz Janiszewski, Vinod Kone, Yong Qiao Wang</p>
+
+</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/containerizer-internals/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/containerizer-internals/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/containerizer-internals/index.html (added)
+++ mesos/site/publish/documentation/containerizer-internals/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,269 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Containerizer</h1>
+
+<p>Containerizers are Mesos components responsible for launching
+containers. They own the containers launched for the tasks/executors,
+and are responsible for their isolation, resource management, and
+events (e.g., statistics).</p>
+
+<h1>Containerizer internals</h1>
+
+<h3>Containerizer creation and launch</h3>
+
+<ul>
+<li>Agent creates a containerizer based on the flags (using slave flag
+<code>--containerizers</code>). If multiple containerizers (e.g., docker,
+mesos) are specified using the <code>--containerizers</code> flag, then the
+composing containerizer will be used to create a containerizer.</li>
+<li>If an executor is not specified in <code>TaskInfo</code>, Mesos agent will use
+the default executor for the task (depending on the Containerizer
+  the agent is using, it could be <code>mesos-executor</code> or
+<code>mesos-docker-executor</code>). TODO: Update this after MESOS-1718 is
+completed. After this change, master will be responsible for
+generating executor information.</li>
+</ul>
+
+
+<h3>Types of containerizers</h3>
+
+<p>Mesos currently supports the following containerizers:</p>
+
+<ul>
+<li>Composing</li>
+<li>Docker</li>
+<li>Mesos</li>
+<li>External (deprecated)</li>
+</ul>
+
+
+<h4>Composing Containerizer</h4>
+
+<p>Composing containerizer will compose the specified containerizers
+(using slave flag <code>--containerizers</code>) and act like a single
+containerizer. This is an implementation of <code>composite</code> design
+pattern.</p>
+
+<h4>Docker Containerizer</h4>
+
+<p>Docker containerizer manages containers using docker engine provided
+in the docker package.</p>
+
+<h5>Container launch</h5>
+
+<ul>
+<li>Docker containerizer will attempt to launch the task in docker only
+if <code>ContainerInfo::type</code> is set to DOCKER.</li>
+<li>Docker containerizer will first pull the image.</li>
+<li>Calls pre-launch hook.</li>
+<li>The executor will be launched in one of the two ways:</li>
+</ul>
+
+
+<p>A) Mesos agent runs in a docker container</p>
+
+<ul>
+<li>This is indicated by the presence of agent flag
+<code>--docker_mesos_image</code>. In this case, the value of flag
+<code>--docker_mesos_image</code> is assumed to be the docker image used to
+launch the Mesos agent.</li>
+<li>If the task uses an executor to run (not the default command
+executor), then that executor is launched in a docker container.</li>
+<li>If the task uses <code>TaskInfo</code>, then the default executor
+<code>mesos-docker-executor</code> is lunched in a docker container.</li>
+</ul>
+
+
+<p>B) Mesos agent does not run in a docker container</p>
+
+<ul>
+<li>If task uses <code>TaskInfo</code>, then it forks a subprocess to execute
+<code>mesos-docker-executor</code>. mesos-docker-executor spawns shell to
+execute docker commands (e.g., docker run).</li>
+<li>If the task uses a custom executor, then its launched in a docker
+container.</li>
+</ul>
+
+
+<h4>Mesos Containerizer</h4>
+
+<p>Mesos containerizer is the native Mesos containerizer. Mesos
+Containerizer will handle any executor/task that does not specify
+<code>ContainerInfo::DockerInfo</code>.</p>
+
+<h5>Container launch</h5>
+
+<ul>
+<li>Calls prepare on each isolator.</li>
+<li>Forks the executor using Launcher (see <a href="#Launcher">Launcher</a>). The
+forked child is blocked from executing until it is been isolated.</li>
+<li>Isolate the executor. Call isolate with the pid for each isolator
+(see <a href="#Isolators">Isolators</a>).</li>
+<li>Fetch the executor.</li>
+<li>Exec the executor. The forked child is signalled to continue. It
+will first execute any preparation commands from isolators and then
+exec the executor.</li>
+</ul>
+
+
+<p><a name="Launcher"></a></p>
+
+<h5>Launcher</h5>
+
+<p>Launcher is responsible for forking/destroying containers.</p>
+
+<ul>
+<li>Forks a new process in the containerized context. The child will
+exec the binary at the given path with the given argv, flags, and
+environment.</li>
+<li>The I/O of the child will be redirected according to the specified
+I/O descriptors.</li>
+</ul>
+
+
+<h6>Linux launcher</h6>
+
+<ul>
+<li>Creates a “freezer” cgroup for the container.</li>
+<li>Creates posix “pipe” to enable communication between host (parent
+process) and container process.</li>
+<li>Spawn child process(container process) using <code>clone</code> system call.</li>
+<li>Moves the new container process to the freezer hierarchy.</li>
+<li>Signals the child process to continue (exec’ing) by writing a
+character to the write end of the pipe in the parent process.</li>
+</ul>
+
+
+<h6>Posix launcher (TBD)</h6>
+
+<p><a name="Isolators"></a></p>
+
+<h5>Isolators</h5>
+
+<p>Isolators are responsible for creating an environment for the
+containers where resources like cpu, network, storage and memory can
+be isolated from other containers.</p>
+
+<h3>Containerizer states</h3>
+
+<h4>Docker</h4>
+
+<ul>
+<li>FETCHING</li>
+<li>PULLING</li>
+<li>RUNNING</li>
+<li>DESTROYING</li>
+</ul>
+
+
+<h4>Mesos</h4>
+
+<ul>
+<li>PREPARING</li>
+<li>ISOLATING</li>
+<li>FETCHING</li>
+<li>RUNNING</li>
+<li>DESTROYING</li>
+</ul>
+
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/latest/containerizer-internals/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/containerizer-internals/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/latest/containerizer-internals/index.html (added)
+++ mesos/site/publish/documentation/latest/containerizer-internals/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,269 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Containerizer</h1>
+
+<p>Containerizers are Mesos components responsible for launching
+containers. They own the containers launched for the tasks/executors,
+and are responsible for their isolation, resource management, and
+events (e.g., statistics).</p>
+
+<h1>Containerizer internals</h1>
+
+<h3>Containerizer creation and launch</h3>
+
+<ul>
+<li>Agent creates a containerizer based on the flags (using slave flag
+<code>--containerizers</code>). If multiple containerizers (e.g., docker,
+mesos) are specified using the <code>--containerizers</code> flag, then the
+composing containerizer will be used to create a containerizer.</li>
+<li>If an executor is not specified in <code>TaskInfo</code>, Mesos agent will use
+the default executor for the task (depending on the Containerizer
+  the agent is using, it could be <code>mesos-executor</code> or
+<code>mesos-docker-executor</code>). TODO: Update this after MESOS-1718 is
+completed. After this change, master will be responsible for
+generating executor information.</li>
+</ul>
+
+
+<h3>Types of containerizers</h3>
+
+<p>Mesos currently supports the following containerizers:</p>
+
+<ul>
+<li>Composing</li>
+<li>Docker</li>
+<li>Mesos</li>
+<li>External (deprecated)</li>
+</ul>
+
+
+<h4>Composing Containerizer</h4>
+
+<p>Composing containerizer will compose the specified containerizers
+(using slave flag <code>--containerizers</code>) and act like a single
+containerizer. This is an implementation of <code>composite</code> design
+pattern.</p>
+
+<h4>Docker Containerizer</h4>
+
+<p>Docker containerizer manages containers using docker engine provided
+in the docker package.</p>
+
+<h5>Container launch</h5>
+
+<ul>
+<li>Docker containerizer will attempt to launch the task in docker only
+if <code>ContainerInfo::type</code> is set to DOCKER.</li>
+<li>Docker containerizer will first pull the image.</li>
+<li>Calls pre-launch hook.</li>
+<li>The executor will be launched in one of the two ways:</li>
+</ul>
+
+
+<p>A) Mesos agent runs in a docker container</p>
+
+<ul>
+<li>This is indicated by the presence of agent flag
+<code>--docker_mesos_image</code>. In this case, the value of flag
+<code>--docker_mesos_image</code> is assumed to be the docker image used to
+launch the Mesos agent.</li>
+<li>If the task uses an executor to run (not the default command
+executor), then that executor is launched in a docker container.</li>
+<li>If the task uses <code>TaskInfo</code>, then the default executor
+<code>mesos-docker-executor</code> is lunched in a docker container.</li>
+</ul>
+
+
+<p>B) Mesos agent does not run in a docker container</p>
+
+<ul>
+<li>If task uses <code>TaskInfo</code>, then it forks a subprocess to execute
+<code>mesos-docker-executor</code>. mesos-docker-executor spawns shell to
+execute docker commands (e.g., docker run).</li>
+<li>If the task uses a custom executor, then its launched in a docker
+container.</li>
+</ul>
+
+
+<h4>Mesos Containerizer</h4>
+
+<p>Mesos containerizer is the native Mesos containerizer. Mesos
+Containerizer will handle any executor/task that does not specify
+<code>ContainerInfo::DockerInfo</code>.</p>
+
+<h5>Container launch</h5>
+
+<ul>
+<li>Calls prepare on each isolator.</li>
+<li>Forks the executor using Launcher (see <a href="#Launcher">Launcher</a>). The
+forked child is blocked from executing until it is been isolated.</li>
+<li>Isolate the executor. Call isolate with the pid for each isolator
+(see <a href="#Isolators">Isolators</a>).</li>
+<li>Fetch the executor.</li>
+<li>Exec the executor. The forked child is signalled to continue. It
+will first execute any preparation commands from isolators and then
+exec the executor.</li>
+</ul>
+
+
+<p><a name="Launcher"></a></p>
+
+<h5>Launcher</h5>
+
+<p>Launcher is responsible for forking/destroying containers.</p>
+
+<ul>
+<li>Forks a new process in the containerized context. The child will
+exec the binary at the given path with the given argv, flags, and
+environment.</li>
+<li>The I/O of the child will be redirected according to the specified
+I/O descriptors.</li>
+</ul>
+
+
+<h6>Linux launcher</h6>
+
+<ul>
+<li>Creates a “freezer” cgroup for the container.</li>
+<li>Creates posix “pipe” to enable communication between host (parent
+process) and container process.</li>
+<li>Spawn child process(container process) using <code>clone</code> system call.</li>
+<li>Moves the new container process to the freezer hierarchy.</li>
+<li>Signals the child process to continue (exec’ing) by writing a
+character to the write end of the pipe in the parent process.</li>
+</ul>
+
+
+<h6>Posix launcher (TBD)</h6>
+
+<p><a name="Isolators"></a></p>
+
+<h5>Isolators</h5>
+
+<p>Isolators are responsible for creating an environment for the
+containers where resources like cpu, network, storage and memory can
+be isolated from other containers.</p>
+
+<h3>Containerizer states</h3>
+
+<h4>Docker</h4>
+
+<ul>
+<li>FETCHING</li>
+<li>PULLING</li>
+<li>RUNNING</li>
+<li>DESTROYING</li>
+</ul>
+
+
+<h4>Mesos</h4>
+
+<ul>
+<li>PREPARING</li>
+<li>ISOLATING</li>
+<li>FETCHING</li>
+<li>RUNNING</li>
+<li>DESTROYING</li>
+</ul>
+
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/latest/mesos-provisioner/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/mesos-provisioner/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/latest/mesos-provisioner/index.html (added)
+++ mesos/site/publish/documentation/latest/mesos-provisioner/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos Image Provisioner</h1>
+
+<h2>Motivation</h2>
+
+<p>There are multiple container specifications, notably Docker, Appc (rkt), and recently OCP (oci). Most of the container specifications, to varying degrees, conflate image format specification with other components of a container, including execution and resource isolation, both in specification and implementation.</p>
+
+<p>The goal of Mesos Image Provisioner is to extend the MesosContainerizer to support provisioning container filesystems from different image formats while composing with the existing Isolators for resource isolation.</p>
+
+<p>Mesos image provisioner allows Mesos containers to be created and managed through Mesos containerizer to have a root filesystem provisioned with image bundles with common image specification formats such as AppContainer and Docker.</p>
+
+<h2>Glossary</h2>
+
+<p>Layer: A layer is typically a filesystem changeset.</p>
+
+<p>Image: An image in this documentation refers to a container filesystem image. A filesystem image typically contains one or more layers.</p>
+
+<h2>Framework API</h2>
+
+<p>We introduced a new protobuf message <code>Image</code> that describes a container filesystem image.</p>
+
+<p>message Image {
+  enum Type {
+    APPC = 1;
+    DOCKER = 2;
+    // More Image types.
+  }</p>
+
+<p>  message Appc {
+    // Appc configurations.
+  }</p>
+
+<p>  message Docker {
+    // Docker configurations
+  }</p>
+
+<p>  required Type type = 1;</p>
+
+<p>  // Only one of the following image messages should be set to match
+  // the type.
+  optional Appc appc = 2;
+  optional Docker docker = 3;
+}</p>
+
+<p>This <code>Image</code> message type contains the type of image specification and the corresponding configurations for that type.</p>
+
+<p>The image type is currently supported to be specified in both ContainerInfo and Volume.</p>
+
+<p>When ContainerInfo image is configured, the Mesos image provisioner provides a root filesystem to the task. On the other hand, when volume(s) are configured with an image,
+that volume will be mounted with the image filesystem configured.</p>
+
+<p>Image can both be configured in a Volume and in ContainerInfo at the same time.</p>
+
+<h2>Setup and Agent Flags</h2>
+
+<p>To run the agent to enable Mesos containerizer, you must launch the agent with mesos as a containerizer option, which is the default containerizer for the mesos agent. It also has to enable linux/filesystem as part of the enabled isolators. The supported image providers can also be configured through agent flags, as well as the supported image provider backend.</p>
+
+<p>Mesos agent also needs to be running under linux with root permissions.</p>
+
+<ul>
+<li>Example: <code>mesos-slave --containerizers=mesos --image_providers=appc,docker --image_provisioner_backend=copy --isolation=linux/filesystem</code></li>
+</ul>
+
+
+<p>Each Image provider can have additional configurations that can be set.</p>
+
+<h2>Mesos Image Provisioner</h2>
+
+<p>Mesos provisioner forwards the container image request to the corresponding Image Provider to provision the image changesets (layers), and then ask the configured Backend to provision a root filesystem from the layers.</p>
+
+<h2>Image providers</h2>
+
+<p>An image provider is a provider that understands how to discover, download and unpack a particular image format.
+Mesos agent supports multiple image providers and the <code>image_providers</code> agent flag allows operators to choose which ones to support.</p>
+
+<h3>Appc</h3>
+
+<p>https://github.com/appc/spec/blob/master/spec/aci.md</p>
+
+<p>TODO(tnachen): Add Appc information.</p>
+
+<h3>Docker</h3>
+
+<p>https://github.com/docker/docker/blob/master/image/spec/v1.md</p>
+
+<p>Docker image provider supports two different methods of finding and pulling images: local and registry. The <code>docker_puller</code> agent flag allows the slave to choose between these methods.</p>
+
+<p>Local puller finds docker images based on image name and tag in the host filesystem, in the directory configured by <code>docker_local_archives_dir</code>.</p>
+
+<p>Registry puller finds and downloads images by contacting Docker registry, and by default contacts server configured by <code>docker_registry</code> and <code>docker_registry_port</code> agent flag when no custom registry is specified.</p>
+
+<p>Note that to run the Registry puller Mesos agent must be running with SSL enabled.</p>
+
+<h2>Image provisioner backend</h2>
+
+<p>A provisioner backend takes the layers that the image provider provided and build a root filesystem for a container or volume.</p>
+
+<h3>Copy</h3>
+
+<p>The Copy backend simply copies all the layers into a target root directory to create a root filesystem.</p>
+
+<h3>Bind</h3>
+
+<p>This is a specialized backend that may be useful for deployments using large (multi-GB) single-layer images <em>and</em> where more recent kernel features such as overlayfs are not available (overlayfs-based
+backend tracked by MESOS-2971). For small images (10&rsquo;s to 100&rsquo;s of MB) the copy backend may be sufficient. Bind backend is faster than Copy as it requires nearly zero IO.</p>
+
+<p>The Bind backend currently has these two limitations:
+1) BindBackend supports only a single layer. Multi-layer images will fail to provision and the container will fail to launch!
+2) The filesystem is read-only because all containers using this image share the source. Select writable areas can be achieved by mounting read-write volumes to places like /tmp, /var/tmp, /home, etc. using the ContainerInfo. These can be relative to the executor work directory. Since the filesystem is read-only, &lsquo;&ndash;sandbox_directory&rsquo; must already exist within the filesystem because the filesystem isolator is unable to create it!</p>
+
+<h2>Internals</h2>
+
+<p>The design doc is available <a href="https://docs.google.com/document/d/1Fx5TS0LytV7u5MZExQS0-g-gScX2yKCKQg9UPFzhp6U">here</a>.</p>
+
+<h2>Related Docs</h2>
+
+<p>For more information on the Mesos containerizer filesystem, namespace, and isolator features, visit <a href="/documentation/latest/https://github.com/apache/mesos/blob/master/docs/containerizer/">here</a>.
+For more information on launching Docker containers through the Docker containerizer, visit <a href="/documentation/latest/https://github.com/apache/mesos/blob/master/docs/docker-containerizer/">here</a>.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/latest/roles/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/roles/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/latest/roles/index.html (added)
+++ mesos/site/publish/documentation/latest/roles/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Roles</h1>
+
+<p>In Mesos, <strong>roles</strong> can be used to specify that certain
+<a href="/documentation/latest/attributes-resources/">resources</a> are reserved for the use of one or more
+frameworks. Roles can be used to enable a variety of restrictions on how
+resources are offered to frameworks. Some use-cases for roles include:</p>
+
+<ul>
+<li>arranging for all the resources on a particular agent to only be offered to a
+particular framework.</li>
+<li>dividing a cluster between two organizations: resources assigned for use by
+organization <em>A</em> will only be offered to that frameworks that have registered
+using organization <em>A</em>&rsquo;s role.</li>
+<li>ensuring that <a href="/documentation/latest/persistent-volume/">persistent volumes</a> created by one
+framework are not offered to frameworks registered with a different role.</li>
+<li>expressing that one group of frameworks should be considered &ldquo;higher priority&rdquo;
+(and offered more resources) than another group of frameworks.</li>
+</ul>
+
+
+<h2>Defining roles</h2>
+
+<p>The set of legal roles is configured statically, when the Mesos master is
+started. The <code>--roles</code> command-line argument specifies a comma-separated list of
+role names. To change the set of roles, the Mesos master must be restarted.</p>
+
+<p>Note that you should take care to ensure that all Mesos masters are configured
+to use the same set of roles.</p>
+
+<h2>Associating frameworks with roles</h2>
+
+<p>A framework can optionally specify the role it would like to use when it
+registers with the master.</p>
+
+<p>As a developer, you can specify the role your framework will use via the <code>role</code>
+field of the <code>FrameworkInfo</code> message.</p>
+
+<p>As a user, you can typically specify which role a framework will use when you
+start the framework. How to do this depends on the user interface of the
+framework you&rsquo;re using; for example, Marathon takes a <code>--mesos_role</code>
+command-line flag.</p>
+
+<p>As an administrator, you can use ACLs to specify which framework principals can
+register as which roles. For more information, see the
+<a href="/documentation/latest/authorization/">authorization</a> documentation.</p>
+
+<h2>Associating resources with roles</h2>
+
+<p>A resource is assigned to a role using a <em>reservation</em>. Resources can either be
+reserved <em>statically</em> (when the agent that hosts the resource is started) or
+<em>dynamically</em>: frameworks and operators can specify that a certain resource
+should subsequently be reserved for use by a given role. For more information,
+see the <a href="/documentation/latest/reservation/">reservation</a> documentation.</p>
+
+<h2>The default role</h2>
+
+<p>The role named <code>*</code> is special. Resources that are assigned to the <code>*</code> role are
+considered &ldquo;unreserved&rdquo;; similarly, when a framework registers without providing
+a role, it is assigned to the <code>*</code> role. By default, all the resources at an
+agent node are initially assigned to the <code>*</code> role (this can be changed via the
+<code>--default_role</code> command-line flag when starting the agent).</p>
+
+<p>The <code>*</code> role behaves differently from non-default roles. For example, dynamic
+reservations can be used to reassign resources from the <code>*</code> role to a specific
+role, but not from one specific role to another specific role (without first
+unreserving the resource, e.g., using the <code>/unreserve</code> operator HTTP
+endpoint). Similarly, persistent volumes cannot be created on unreserved
+resources.</p>
+
+<h2>Roles and resource allocation</h2>
+
+<p>By default, the Mesos master uses Dominant Resource Fairness (DRF) to allocate
+resources. In particular, this implementation of DRF first identifies which
+<em>role</em> is furthest below its fair share of the role&rsquo;s dominant resource. Each of
+the frameworks in that role are then offered additional resources in turn.</p>
+
+<p>The resource allocation process can be customized by assigning <em>weights</em> to
+roles: a role with a weight of 2 will be allocated twice the fair share of a
+role with a weight of 1. Weights are optional, and can be specified via the
+<code>--weights</code> command-line flag when starting the Mesos master.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/latest/sandbox/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/sandbox/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/latest/sandbox/index.html (added)
+++ mesos/site/publish/documentation/latest/sandbox/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,280 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos &ldquo;Sandbox&rdquo;</h1>
+
+<p>Mesos refers to the &ldquo;sandbox&rdquo; as a temporary directory that holds files specific
+to a single executor.  Each time an executor is run, the executor is given its
+own sandbox and the executor&rsquo;s working directory is set to the sandbox.</p>
+
+<h2>Sandbox files</h2>
+
+<p>The sandbox holds:</p>
+
+<ul>
+<li>Files <a href="/documentation/latest/fetcher/">fetched by Mesos</a>, prior to starting
+the executor&rsquo;s tasks.</li>
+<li>The output of the executor and tasks (as files &ldquo;stdout&rdquo; and &ldquo;stderr&rdquo;).</li>
+<li>Files created by the executor and tasks, with some exceptions.</li>
+</ul>
+
+
+<blockquote><p><strong>NOTE:</strong> With the introduction of
+<a href="/documentation/latest/persistent-volume/">persistent volumes</a>, executors
+and tasks should never create files outside of the sandbox.  However,
+some containerizers do not enforce this sandboxing.</p></blockquote>
+
+<h2><a name="where-is-it"></a>Where is the sandbox?</h2>
+
+<p>The sandbox is located within the agent&rsquo;s working directory (which is specified
+via the <code>--work_dir</code> flag).  To find a particular executor&rsquo;s sandbox, you must
+know the agent&rsquo;s ID, the executor&rsquo;s framework&rsquo;s ID, and the executor&rsquo;s ID.
+Each run of the executor will have a corresponding sandbox, denoted by a
+container ID.</p>
+
+<p>The sandbox is located on the agent, inside a directory tree like the following:</p>
+
+<pre><code>root ('--work_dir')
+|-- slaves
+|   |-- latest (symlink)
+|   |-- &lt;agent ID&gt;
+|       |-- frameworks
+|           |-- &lt;framework ID&gt;
+|               |-- executors
+|                   |-- &lt;executor ID&gt;
+|                       |-- runs
+|                           |-- latest (symlink)
+|                           |-- &lt;container ID&gt; (Sandbox!)
+</code></pre>
+
+<h2>Using the sandbox</h2>
+
+<blockquote><p><strong>NOTE:</strong> For anything other than Mesos, the executor, or the task(s), the
+sandbox should be considered a read-only directory.  This is not enforced via
+permissions, but the executor/tasks may malfunction if the sandbox is
+mutated unexpectedly.</p></blockquote>
+
+<h3>Via a file browser</h3>
+
+<p>If you have access to the machine running the agent, you can <a href="#where-is-it">navigate to the
+sandbox directory directly</a>.</p>
+
+<h3>Via the Mesos web UI</h3>
+
+<p>Sandboxes can be browsed and downloaded via the Mesos web UI.  Tasks and
+executors will be shown with a &ldquo;Sandbox&rdquo; link.  Any files that live in the
+sandbox will appear in the web UI.</p>
+
+<h3>Via the <code>/files</code> endpoint</h3>
+
+<p>Underneath the web UI, the files are fetched from the agent via the <code>/files</code>
+endpoint running on the agent.</p>
+
+<table class="table table-striped">
+  <thead>
+    <tr>
+      <th width="30%">
+        Endpoint
+      </th>
+      <th>
+        Description
+      </th>
+    </tr>
+  </thead>
+
+  <tr>
+    <td>
+       <code>/files/browse?path=...</code>
+    </td>
+    <td>
+      Returns a JSON list of files and directories contained in the path.
+      Each list is a JSON object containing all the fields normally found in
+      <code>ls -l</code>.
+    </td>
+  </tr>
+  <tr>
+    <td>
+       <code>/files/debug</code>
+    </td>
+    <td>
+      Returns a JSON object holding the internal mapping of files managed by
+      this endpoint.  This endpoint can be used to quickly fetch the paths
+      of all files exposed on the agent.
+    </td>
+  </tr>
+  <tr>
+    <td>
+       <code>/files/download?path=...</code>
+    </td>
+    <td>
+      Returns the raw contents of the file located at the given path.
+      Where the file extension is understood, the <code>Content-Type</code>
+      header will be set appropriately.
+    </td>
+  </tr>
+  <tr>
+    <td>
+       <code>/files/read?path=...</code>
+    </td>
+    <td>
+      Reads a chunk of the file located at the given path and returns a JSON
+      object containing the read <code>"data"</code> and the
+      <code>"offset"</code> in bytes.
+      <blockquote>
+        <p>
+          <strong>NOTE:</strong> This endpoint is not designed to read
+          arbitrary binary files. Binary files may be returned as
+          invalid/un-parseable JSON.
+          Use <code>/files/download</code> instead.
+        </p>
+      </blockquote>
+      Optional query parameters:
+      <ul>
+        <li><code>offset</code> - can be used to page through the file.</li>
+        <li><code>length</code> - maximum size of the chunk to read.</li>
+      </ul>
+    </td>
+  </tr>
+</table>
+
+
+<h2>Sandbox size</h2>
+
+<p>The maximum size of the sandbox is dependent on the containerization of the
+executor and isolators :</p>
+
+<ul>
+<li>Mesos containerizer - For backwards compatibility, the Mesos containerizer
+does not enforce a container&rsquo;s disk quota by default.  However, if the
+<code>--enforce_container_disk_quota</code> flag is enabled on the agent, and
+<code>posix/disk</code> is specified in the <code>--isolation</code> flag, the executor
+will be killed if the sandbox size exceeds the executor&rsquo;s <code>disk</code> resource.</li>
+<li>Docker containerizer - As of Docker <code>1.9.1</code>, the Docker containerizer
+does not enforce nor support a disk quota.  See the
+<a href="https://github.com/docker/docker/issues/3804">Docker issue</a>.</li>
+<li><a href="/documentation/latest/external-containerizer/">External containerizer</a>.</li>
+</ul>
+
+
+<h2>Sandbox lifecycle</h2>
+
+<p>Sandbox files are scheduled for garbage collection when:</p>
+
+<ul>
+<li>An executor is removed or terminated.</li>
+<li>A framework is removed.</li>
+<li>An executor is recovered unsuccessfully during agent recovery.</li>
+</ul>
+
+
+<blockquote><p><strong>NOTE:</strong> During agent recovery, all of the executor&rsquo;s runs, except for the
+latest run, are scheduled for garbage collection as well.</p></blockquote>
+
+<p>Garbage collection is scheduled based on the <code>--gc_delay</code> agent flag.  By
+default, this is one week since the sandbox was last modified.
+After the delay, the files are deleted.</p>
+
+<p>Additionally, according to the <code>--disk_watch_interval</code> agent flag, files
+scheduled for garbage collection are pruned based on the available disk and
+the <code>--gc_disk_headroom</code> agent flag.
+See <a href="/documentation/latest/configuration/#gc_disk_headroom">the formula here</a>.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/mesos-provisioner/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/mesos-provisioner/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/mesos-provisioner/index.html (added)
+++ mesos/site/publish/documentation/mesos-provisioner/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Mesos Image Provisioner</h1>
+
+<h2>Motivation</h2>
+
+<p>There are multiple container specifications, notably Docker, Appc (rkt), and recently OCP (oci). Most of the container specifications, to varying degrees, conflate image format specification with other components of a container, including execution and resource isolation, both in specification and implementation.</p>
+
+<p>The goal of Mesos Image Provisioner is to extend the MesosContainerizer to support provisioning container filesystems from different image formats while composing with the existing Isolators for resource isolation.</p>
+
+<p>Mesos image provisioner allows Mesos containers to be created and managed through Mesos containerizer to have a root filesystem provisioned with image bundles with common image specification formats such as AppContainer and Docker.</p>
+
+<h2>Glossary</h2>
+
+<p>Layer: A layer is typically a filesystem changeset.</p>
+
+<p>Image: An image in this documentation refers to a container filesystem image. A filesystem image typically contains one or more layers.</p>
+
+<h2>Framework API</h2>
+
+<p>We introduced a new protobuf message <code>Image</code> that describes a container filesystem image.</p>
+
+<p>message Image {
+  enum Type {
+    APPC = 1;
+    DOCKER = 2;
+    // More Image types.
+  }</p>
+
+<p>  message Appc {
+    // Appc configurations.
+  }</p>
+
+<p>  message Docker {
+    // Docker configurations
+  }</p>
+
+<p>  required Type type = 1;</p>
+
+<p>  // Only one of the following image messages should be set to match
+  // the type.
+  optional Appc appc = 2;
+  optional Docker docker = 3;
+}</p>
+
+<p>This <code>Image</code> message type contains the type of image specification and the corresponding configurations for that type.</p>
+
+<p>The image type is currently supported to be specified in both ContainerInfo and Volume.</p>
+
+<p>When ContainerInfo image is configured, the Mesos image provisioner provides a root filesystem to the task. On the other hand, when volume(s) are configured with an image,
+that volume will be mounted with the image filesystem configured.</p>
+
+<p>Image can both be configured in a Volume and in ContainerInfo at the same time.</p>
+
+<h2>Setup and Agent Flags</h2>
+
+<p>To run the agent to enable Mesos containerizer, you must launch the agent with mesos as a containerizer option, which is the default containerizer for the mesos agent. It also has to enable linux/filesystem as part of the enabled isolators. The supported image providers can also be configured through agent flags, as well as the supported image provider backend.</p>
+
+<p>Mesos agent also needs to be running under linux with root permissions.</p>
+
+<ul>
+<li>Example: <code>mesos-slave --containerizers=mesos --image_providers=appc,docker --image_provisioner_backend=copy --isolation=linux/filesystem</code></li>
+</ul>
+
+
+<p>Each Image provider can have additional configurations that can be set.</p>
+
+<h2>Mesos Image Provisioner</h2>
+
+<p>Mesos provisioner forwards the container image request to the corresponding Image Provider to provision the image changesets (layers), and then ask the configured Backend to provision a root filesystem from the layers.</p>
+
+<h2>Image providers</h2>
+
+<p>An image provider is a provider that understands how to discover, download and unpack a particular image format.
+Mesos agent supports multiple image providers and the <code>image_providers</code> agent flag allows operators to choose which ones to support.</p>
+
+<h3>Appc</h3>
+
+<p>https://github.com/appc/spec/blob/master/spec/aci.md</p>
+
+<p>TODO(tnachen): Add Appc information.</p>
+
+<h3>Docker</h3>
+
+<p>https://github.com/docker/docker/blob/master/image/spec/v1.md</p>
+
+<p>Docker image provider supports two different methods of finding and pulling images: local and registry. The <code>docker_puller</code> agent flag allows the slave to choose between these methods.</p>
+
+<p>Local puller finds docker images based on image name and tag in the host filesystem, in the directory configured by <code>docker_local_archives_dir</code>.</p>
+
+<p>Registry puller finds and downloads images by contacting Docker registry, and by default contacts server configured by <code>docker_registry</code> and <code>docker_registry_port</code> agent flag when no custom registry is specified.</p>
+
+<p>Note that to run the Registry puller Mesos agent must be running with SSL enabled.</p>
+
+<h2>Image provisioner backend</h2>
+
+<p>A provisioner backend takes the layers that the image provider provided and build a root filesystem for a container or volume.</p>
+
+<h3>Copy</h3>
+
+<p>The Copy backend simply copies all the layers into a target root directory to create a root filesystem.</p>
+
+<h3>Bind</h3>
+
+<p>This is a specialized backend that may be useful for deployments using large (multi-GB) single-layer images <em>and</em> where more recent kernel features such as overlayfs are not available (overlayfs-based
+backend tracked by MESOS-2971). For small images (10&rsquo;s to 100&rsquo;s of MB) the copy backend may be sufficient. Bind backend is faster than Copy as it requires nearly zero IO.</p>
+
+<p>The Bind backend currently has these two limitations:
+1) BindBackend supports only a single layer. Multi-layer images will fail to provision and the container will fail to launch!
+2) The filesystem is read-only because all containers using this image share the source. Select writable areas can be achieved by mounting read-write volumes to places like /tmp, /var/tmp, /home, etc. using the ContainerInfo. These can be relative to the executor work directory. Since the filesystem is read-only, &lsquo;&ndash;sandbox_directory&rsquo; must already exist within the filesystem because the filesystem isolator is unable to create it!</p>
+
+<h2>Internals</h2>
+
+<p>The design doc is available <a href="https://docs.google.com/document/d/1Fx5TS0LytV7u5MZExQS0-g-gScX2yKCKQg9UPFzhp6U">here</a>.</p>
+
+<h2>Related Docs</h2>
+
+<p>For more information on the Mesos containerizer filesystem, namespace, and isolator features, visit <a href="/documentation/latest/https://github.com/apache/mesos/blob/master/docs/containerizer/">here</a>.
+For more information on launching Docker containers through the Docker containerizer, visit <a href="/documentation/latest/https://github.com/apache/mesos/blob/master/docs/docker-containerizer/">here</a>.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>

Added: mesos/site/publish/documentation/roles/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/roles/index.html?rev=1720528&view=auto
==============================================================================
--- mesos/site/publish/documentation/roles/index.html (added)
+++ mesos/site/publish/documentation/roles/index.html Thu Dec 17 12:03:55 2015
@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+		    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+		    <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml">
+		    
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+				
+		    
+			
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-1']);
+			  _gaq.push(['_setDomainName', 'apache.org']);
+			  _gaq.push(['_trackPageview']);
+
+			  (function() {
+			    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+			    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+			    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+			  })();
+			</script>
+    </head>
+    <body>
+			<!-- magical breadcrumbs -->
+			<div class="topnav">
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
+					  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<li><a href="http://www.apache.org/licenses/">License</a></li>
+					  	<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>  
+					  	<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+							<li><a href="http://www.apache.org/security/">Security</a></li>
+					  </ul>
+					</div>
+				</li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				
+					<li><a href="/documentation
+/">Documentation
+</a></li>
+				
+				
+			</ul><!-- /breadcrumb -->
+			</div>
+			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top" role="navigation">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+					<div class="nav-collapse">
+						<ul class="nav nav-pills navbar-right">
+						  <li><a href="/gettingstarted/">Getting Started</a></li>
+						  <li><a href="/documentation/latest/">Documentation</a></li>
+						  <li><a href="/downloads/">Downloads</a></li>
+						  <li><a href="/community/">Community</a></li>
+						</ul>
+					</div>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+      <div class="container">
+
+			<div class="row-fluid">
+	<div class="col-md-4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="col-md-8">
+		<h1>Roles</h1>
+
+<p>In Mesos, <strong>roles</strong> can be used to specify that certain
+<a href="/documentation/latest/attributes-resources/">resources</a> are reserved for the use of one or more
+frameworks. Roles can be used to enable a variety of restrictions on how
+resources are offered to frameworks. Some use-cases for roles include:</p>
+
+<ul>
+<li>arranging for all the resources on a particular agent to only be offered to a
+particular framework.</li>
+<li>dividing a cluster between two organizations: resources assigned for use by
+organization <em>A</em> will only be offered to that frameworks that have registered
+using organization <em>A</em>&rsquo;s role.</li>
+<li>ensuring that <a href="/documentation/latest/persistent-volume/">persistent volumes</a> created by one
+framework are not offered to frameworks registered with a different role.</li>
+<li>expressing that one group of frameworks should be considered &ldquo;higher priority&rdquo;
+(and offered more resources) than another group of frameworks.</li>
+</ul>
+
+
+<h2>Defining roles</h2>
+
+<p>The set of legal roles is configured statically, when the Mesos master is
+started. The <code>--roles</code> command-line argument specifies a comma-separated list of
+role names. To change the set of roles, the Mesos master must be restarted.</p>
+
+<p>Note that you should take care to ensure that all Mesos masters are configured
+to use the same set of roles.</p>
+
+<h2>Associating frameworks with roles</h2>
+
+<p>A framework can optionally specify the role it would like to use when it
+registers with the master.</p>
+
+<p>As a developer, you can specify the role your framework will use via the <code>role</code>
+field of the <code>FrameworkInfo</code> message.</p>
+
+<p>As a user, you can typically specify which role a framework will use when you
+start the framework. How to do this depends on the user interface of the
+framework you&rsquo;re using; for example, Marathon takes a <code>--mesos_role</code>
+command-line flag.</p>
+
+<p>As an administrator, you can use ACLs to specify which framework principals can
+register as which roles. For more information, see the
+<a href="/documentation/latest/authorization/">authorization</a> documentation.</p>
+
+<h2>Associating resources with roles</h2>
+
+<p>A resource is assigned to a role using a <em>reservation</em>. Resources can either be
+reserved <em>statically</em> (when the agent that hosts the resource is started) or
+<em>dynamically</em>: frameworks and operators can specify that a certain resource
+should subsequently be reserved for use by a given role. For more information,
+see the <a href="/documentation/latest/reservation/">reservation</a> documentation.</p>
+
+<h2>The default role</h2>
+
+<p>The role named <code>*</code> is special. Resources that are assigned to the <code>*</code> role are
+considered &ldquo;unreserved&rdquo;; similarly, when a framework registers without providing
+a role, it is assigned to the <code>*</code> role. By default, all the resources at an
+agent node are initially assigned to the <code>*</code> role (this can be changed via the
+<code>--default_role</code> command-line flag when starting the agent).</p>
+
+<p>The <code>*</code> role behaves differently from non-default roles. For example, dynamic
+reservations can be used to reassign resources from the <code>*</code> role to a specific
+role, but not from one specific role to another specific role (without first
+unreserving the resource, e.g., using the <code>/unreserve</code> operator HTTP
+endpoint). Similarly, persistent volumes cannot be created on unreserved
+resources.</p>
+
+<h2>Roles and resource allocation</h2>
+
+<p>By default, the Mesos master uses Dominant Resource Fairness (DRF) to allocate
+resources. In particular, this implementation of DRF first identifies which
+<em>role</em> is furthest below its fair share of the role&rsquo;s dominant resource. Each of
+the frameworks in that role are then offered additional resources in turn.</p>
+
+<p>The resource allocation process can be customized by assigning <em>weights</em> to
+roles: a role with a weight of 2 will be allocated twice the fair share of a
+role with a weight of 1. Weights are optional, and can be specified via the
+<code>--weights</code> command-line flag when starting the Mesos master.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2015 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+	    <!-- JS -->
+	    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
+			<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script>
+    </body>
+</html>