Added:
aurora/site/publish/documentation/0.12.0/images/presentations/09_20_2015_twitter_production_scale_thumb.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/presentations/09_20_2015_twitter_production_scale_thumb.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
aurora/site/publish/documentation/0.12.0/images/presentations/09_20_2015_twitter_production_scale_thumb.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
aurora/site/publish/documentation/0.12.0/images/presentations/10_08_2015_mesos_aurora_on_a_small_scale_thumb.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/presentations/10_08_2015_mesos_aurora_on_a_small_scale_thumb.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
aurora/site/publish/documentation/0.12.0/images/presentations/10_08_2015_mesos_aurora_on_a_small_scale_thumb.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
aurora/site/publish/documentation/0.12.0/images/presentations/10_08_2015_sla_aware_maintenance_for_operators_thumb.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/presentations/10_08_2015_sla_aware_maintenance_for_operators_thumb.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
aurora/site/publish/documentation/0.12.0/images/presentations/10_08_2015_sla_aware_maintenance_for_operators_thumb.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: aurora/site/publish/documentation/0.12.0/images/runningtask.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/runningtask.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange: aurora/site/publish/documentation/0.12.0/images/runningtask.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: aurora/site/publish/documentation/0.12.0/images/stderr.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/stderr.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange: aurora/site/publish/documentation/0.12.0/images/stderr.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: aurora/site/publish/documentation/0.12.0/images/stdout.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/stdout.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange: aurora/site/publish/documentation/0.12.0/images/stdout.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: aurora/site/publish/documentation/0.12.0/images/storage_hierarchy.png
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/images/storage_hierarchy.png?rev=1733548&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
aurora/site/publish/documentation/0.12.0/images/storage_hierarchy.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: aurora/site/publish/documentation/0.12.0/index.html
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/index.html?rev=1733548&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.12.0/index.html (added)
+++ aurora/site/publish/documentation/0.12.0/index.html Fri Mar 4 02:43:01 2016
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache Aurora</title>
+ <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
+ <link href="/assets/css/main.css" rel="stylesheet">
+ <!-- Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-45879646-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>
+ <div class="container-fluid section-header">
+ <div class="container">
+ <div class="nav nav-bar">
+ <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300"
alt="Transparent Apache Aurora logo with dark background"/></a>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="/documentation/latest/">Documentation</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+ <div class="container-fluid">
+ <div class="container content">
+ <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value + '/'"
+ value="0.12.0">
+ <option value="0.12.0"
+ selected="selected">
+ 0.12.0
+ (latest)
+ </option>
+ <option value="0.11.0"
+ >
+ 0.11.0
+ </option>
+ <option value="0.10.0"
+ >
+ 0.10.0
+ </option>
+ <option value="0.9.0"
+ >
+ 0.9.0
+ </option>
+ <option value="0.8.0"
+ >
+ 0.8.0
+ </option>
+ <option value="0.7.0-incubating"
+ >
+ 0.7.0-incubating
+ </option>
+ <option value="0.6.0-incubating"
+ >
+ 0.6.0-incubating
+ </option>
+ <option value="0.5.0-incubating"
+ >
+ 0.5.0-incubating
+ </option>
+</select>
+</h5>
+<h2 id="introduction">Introduction</h2>
+
+<p>Apache Aurora is a service scheduler that runs on top of Apache Mesos,
enabling you to run long-running services that take advantage of Apache
Mesos’ scalability, fault-tolerance, and resource isolation. This
documentation has been organized into sections with three audiences in mind:</p>
+
+<ul>
+<li>Users: General information about the project and to learn how to run an
Aurora job.</li>
+<li>Operators: For those that wish to manage and fine-tune an Aurora
cluster.</li>
+<li>Developers: All the information you need to start modifying Aurora and
contributing back to the project.</li>
+</ul>
+
+<p>We encourage you to ask questions on the <a
href="http://aurora.apache.org/community/">Aurora user list</a> or the
<code>#aurora</code> IRC channel on <code>irc.freenode.net</code>.</p>
+
+<h2 id="users">Users</h2>
+
+<ul>
+<li><a href="/documentation/0.12.0/vagrant/">Install Aurora on virtual
machines on your private machine</a></li>
+<li><a href="/documentation/0.12.0/tutorial/">Hello World Tutorial</a></li>
+<li><a href="/documentation/0.12.0/user-guide/">User Guide</a></li>
+<li><a href="/documentation/0.12.0/configuration-tutorial/">Configuration
Tutorial</a></li>
+<li><a href="/documentation/0.12.0/configuration-reference/">Aurora + Thermos
Reference</a></li>
+<li><a href="/documentation/0.12.0/client-commands/">Command Line
Client</a></li>
+<li><a href="/documentation/0.12.0/client-cluster-configuration/">Client
cluster configuration</a></li>
+<li><a href="/documentation/0.12.0/cron-jobs/">Cron Jobs</a></li>
+</ul>
+
+<h2 id="operators">Operators</h2>
+
+<ul>
+<li><a href="/documentation/0.12.0/installing/">Installation</a></li>
+<li><a href="/documentation/0.12.0/deploying-aurora-scheduler/">Deployment and
cluster configuration</a></li>
+<li><a href="/documentation/0.12.0/security/">Security</a></li>
+<li><a href="/documentation/0.12.0/monitoring/">Monitoring</a></li>
+<li><a href="/documentation/0.12.0/hooks/">Hooks for Aurora Client API</a></li>
+<li><a href="/documentation/0.12.0/storage/">Scheduler Storage</a></li>
+<li><a href="/documentation/0.12.0/storage-config/">Scheduler Storage and
Maintenance</a></li>
+<li><a href="/documentation/0.12.0/sla/">SLA Measurement</a></li>
+<li><a href="/documentation/0.12.0/resources/">Resource Isolation and
Sizing</a></li>
+</ul>
+
+<h2 id="developers">Developers</h2>
+
+<ul>
+<li><a href="contributing/">Contributing to the project</a></li>
+<li><a href="/documentation/0.12.0/developing-aurora-scheduler/">Developing
the Aurora Scheduler</a></li>
+<li><a href="/documentation/0.12.0/developing-aurora-client/">Developing the
Aurora Client</a></li>
+<li><a href="/documentation/0.12.0/committers/">Committers Guide</a></li>
+<li><a href="/documentation/0.12.0/design-documents/">Design Documents</a></li>
+<li><a href="/documentation/0.12.0/thrift-deprecation/">Deprecation
Guide</a></li>
+<li><a href="/documentation/0.12.0/build-system/">Build System</a></li>
+<li><a href="/documentation/0.12.0/test-resource-generation/">Generating test
resources</a></li>
+</ul>
+
+<h2 id="additional-resources">Additional Resources</h2>
+
+<ul>
+<li><a href="/documentation/0.12.0/tools/">Tools integrating with
Aurora</a></li>
+<li><a href="/documentation/0.12.0/presentations/">Presentation videos and
slides</a></li>
+</ul>
+
+</div>
+
+ </div>
+ </div>
+ <div class="container-fluid section-footer buffer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+ <ul>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/community/">Mailing Lists</a></li>
+ <li><a
href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
+ <li><a href="/documentation/latest/contributing/">How
To Contribute</a></li>
+ </ul>
+ </div>
+ <div class="col-md-2"><h3>The ASF</h3>
+ <ul>
+ <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>
+ <div class="col-md-6">
+ <p class="disclaimer">Copyright 2014 <a
href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under
the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a
href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX
photo</a> displayed on the homepage is available under a <a
href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo
are trademarks of The Apache Software Foundation.</p>
+ </div>
+ </div>
+ </div>
+
+ </body>
+</html>
Added: aurora/site/publish/documentation/0.12.0/installing/index.html
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/installing/index.html?rev=1733548&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.12.0/installing/index.html (added)
+++ aurora/site/publish/documentation/0.12.0/installing/index.html Fri Mar 4
02:43:01 2016
@@ -0,0 +1,430 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache Aurora</title>
+ <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
+ <link href="/assets/css/main.css" rel="stylesheet">
+ <!-- Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-45879646-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>
+ <div class="container-fluid section-header">
+ <div class="container">
+ <div class="nav nav-bar">
+ <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300"
alt="Transparent Apache Aurora logo with dark background"/></a>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="/documentation/latest/">Documentation</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+ <div class="container-fluid">
+ <div class="container content">
+ <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value +
'/installing/'"
+ value="0.12.0">
+ <option value="0.12.0"
+ selected="selected">
+ 0.12.0
+ (latest)
+ </option>
+ <option value="0.11.0"
+ >
+ 0.11.0
+ </option>
+ <option value="0.10.0"
+ >
+ 0.10.0
+ </option>
+ <option value="0.9.0"
+ >
+ 0.9.0
+ </option>
+ <option value="0.8.0"
+ >
+ 0.8.0
+ </option>
+ <option value="0.7.0-incubating"
+ >
+ 0.7.0-incubating
+ </option>
+ <option value="0.6.0-incubating"
+ >
+ 0.6.0-incubating
+ </option>
+ <option value="0.5.0-incubating"
+ >
+ 0.5.0-incubating
+ </option>
+</select>
+</h5>
+<h1 id="installing-aurora">Installing Aurora</h1>
+
+<ul>
+<li><a href="#components">Components</a>
+
+<ul>
+<li><a href="#machine-profiles">Machine profiles</a>
+
+<ul>
+<li><a href="#coordinator">Coordinator</a></li>
+<li><a href="#worker">Worker</a></li>
+<li><a href="#client">Client</a></li>
+</ul></li>
+</ul></li>
+<li><a href="#getting-aurora">Getting Aurora</a>
+
+<ul>
+<li><a href="#building-your-own-binary-packages">Building your own binary
packages</a></li>
+<li><a href="#rpms">RPMs</a></li>
+</ul></li>
+<li><a href="#installing-the-scheduler">Installing the scheduler</a>
+
+<ul>
+<li><a href="#ubuntu-trusty">Ubuntu Trusty</a></li>
+<li><a href="#centos-7">CentOS 7</a></li>
+<li><a href="#finalizing">Finalizing</a></li>
+<li><a href="#configuration">Configuration</a></li>
+</ul></li>
+<li><a href="#installing-worker-components">Installing worker components</a>
+
+<ul>
+<li><a href="#ubuntu-trusty-1">Ubuntu Trusty</a></li>
+<li><a href="#centos-7-1">CentOS 7</a></li>
+<li><a href="#configuration-1">Configuration</a></li>
+</ul></li>
+<li><a href="#installing-the-client">Installing the client</a>
+
+<ul>
+<li><a href="#ubuntu-trusty-2">Ubuntu Trusty</a></li>
+<li><a href="#centos-7-2">CentOS 7</a></li>
+<li><a href="#configuration-2">Configuration</a></li>
+</ul></li>
+<li><a href="#see-also">See also</a></li>
+<li><a href="#installing-mesos">Installing Mesos</a>
+
+<ul>
+<li><a href="#mesos-on-ubuntu-trusty">Mesos on Ubuntu Trusty</a></li>
+<li><a href="#mesos-on-centos-7">Mesos on CentOS 7</a></li>
+</ul></li>
+</ul>
+
+<h2 id="components">Components</h2>
+
+<p>Before installing Aurora, it’s important to have an understanding of
the components that make up
+a functioning Aurora cluster.</p>
+
+<p><img alt="Aurora Components" src="../images/components.png" /></p>
+
+<ul>
+<li><p><strong>Aurora scheduler</strong><br>
+The scheduler will be your primary interface to the work you run in your
cluster. You will
+instruct it to run jobs, and it will manage them in Mesos for you. You will
also frequently use
+the scheduler’s web interface as a heads-up display for what’s
running in your cluster.</p></li>
+<li><p><strong>Aurora client</strong><br>
+The client (<code>aurora</code> command) is a command line tool that exposes
primitives that you can use to
+interact with the scheduler.</p></li>
+</ul>
+
+<p>Aurora also provides an admin client (<code>aurora_admin</code> command)
that contains commands built for
+ cluster administrators. You can use this tool to do things like manage user
quotas and manage
+ graceful maintenance on machines in cluster.</p>
+
+<ul>
+<li><p><strong>Aurora executor</strong><br>
+The executor (a.k.a. Thermos executor) is responsible for carrying out the
workloads described in
+the Aurora DSL (<code>.aurora</code> files). The executor is what actually
executes user processes. It will
+also perform health checking of tasks and register tasks in ZooKeeper for the
purposes of dynamic
+service discovery. You can find lots more detail on the executor and Thermos
in the
+<a href="/documentation/0.12.0/user-guide/">user guide</a>.</p></li>
+<li><p><strong>Aurora observer</strong><br>
+The observer provides browser-based access to the status of individual tasks
executing on worker
+machines. It gives insight into the processes executing, and facilitates
browsing of task sandbox
+directories.</p></li>
+<li><p><strong>ZooKeeper</strong><br>
+<a href="http://zookeeper.apache.org">ZooKeeper</a> is a distributed consensus
system. In an Aurora cluster
+it is used for reliable election of the leading Aurora scheduler and Mesos
master.</p></li>
+<li><p><strong>Mesos master</strong><br>
+The master is responsible for tracking worker machines and performing
accounting of their
+resources. The scheduler interfaces with the master to control the
cluster.</p></li>
+<li><p><strong>Mesos agent</strong><br>
+The agent receives work assigned by the scheduler and executes them. It
interfaces with Linux
+isolation systems like cgroups, namespaces and Docker to manage the resource
consumption of tasks.
+When a user task is launched, the agent will launch the executor (in the
context of a Linux cgroup
+or Docker container depending upon the environment), which will in turn fork
user processes.</p></li>
+</ul>
+
+<h2 id="machine-profiles">Machine profiles</h2>
+
+<p>Given that many of these components communicate over the network, there are
numerous ways you could
+assemble them to create an Aurora cluster. The simplest way is to think in
terms of three machine
+profiles:</p>
+
+<h3 id="coordinator">Coordinator</h3>
+
+<p><strong>Components</strong>: ZooKeeper, Aurora scheduler, Mesos master</p>
+
+<p>A small number of machines (typically 3 or 5) responsible for cluster
orchestration. In most cases
+it is fine to co-locate these components in anything but very large clusters
(> 1000 machines).
+Beyond that point, operators will likely want to manage these services on
separate machines.</p>
+
+<p>In practice, 5 coordinators have been shown to reliably manage clusters
with tens of thousands of
+machines.</p>
+
+<h3 id="worker">Worker</h3>
+
+<p><strong>Components</strong>: Aurora executor, Aurora observer, Mesos
agent</p>
+
+<p>The bulk of the cluster, where services will actually run.</p>
+
+<h3 id="client">Client</h3>
+
+<p><strong>Components</strong>: Aurora client, Aurora admin client</p>
+
+<p>Any machines that users submit jobs from.</p>
+
+<h2 id="getting-aurora">Getting Aurora</h2>
+
+<p>Source and binary distributions can be found on our
+<a href="https://aurora.apache.org/downloads/">downloads</a> page. Installing
from binary packages is
+recommended for most.</p>
+
+<h3 id="building-your-own-binary-packages">Building your own binary
packages</h3>
+
+<p>Our package build toolchain makes it easy to build your own packages if you
would like. See the
+<a href="https://github.com/apache/aurora-packaging">instructions</a> to learn
how.</p>
+
+<h3 id="rpms">RPMs</h3>
+
+<p>We currently have work in progress to provide official RPMs. As of this
writing, the suggested way
+to get RPMs is to <a href="#building-your-own-binary-packages">build
them</a>.</p>
+
+<p>We do have unofficial experimental RPMs available for testing purposes.</p>
+
+<p><strong>Use these RPMs at your own risk, they are not officially released
under the ASF guidelines.</strong></p>
+<pre class="highlight plaintext"><code>echo '[apache-aurora-wfarner]
+name=Apache Aurora distribution maintained by wfarner
+baseurl=http://people.apache.org/~wfarner/aurora/distributions/0.9.0/rpm/centos-7/x86_64/
+gpgcheck = 0' | sudo tee /etc/yum.repos.d/apache-aurora-wfarner.repo >
/dev/null
+</code></pre>
+
+<h2 id="installing-the-scheduler">Installing the scheduler</h2>
+
+<h3 id="ubuntu-trusty">Ubuntu Trusty</h3>
+
+<ol>
+<li><p>Install Mesos<br>
+Skip down to <a href="#mesos-on-ubuntu-trusty">install mesos</a>, then run:</p>
+<pre class="highlight plaintext"><code>sudo start mesos-master
+</code></pre></li>
+<li><p>Install ZooKeeper</p>
+<pre class="highlight plaintext"><code>sudo apt-get install -y zookeeperd
+</code></pre></li>
+<li><p>Install the Aurora scheduler</p>
+<pre class="highlight plaintext"><code>wget -c
https://apache.bintray.com/aurora/aurora-scheduler_0.10.0-1_amd64.deb
+sudo dpkg -i aurora-scheduler_0.10.0-1_amd64.deb
+</code></pre></li>
+</ol>
+
+<h3 id="centos-7">CentOS 7</h3>
+
+<ol>
+<li><p>Install Mesos<br>
+Skip down to <a href="#mesos-on-centos-7">install mesos</a>, then run:</p>
+<pre class="highlight plaintext"><code>sudo systemctl start mesos-master
+</code></pre></li>
+<li><p>Install ZooKeeper</p>
+<pre class="highlight plaintext"><code>sudo rpm -Uvh
https://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
+sudo yum install -y java-1.8.0-openjdk-headless zookeeper-server
+
+sudo service zookeeper-server init
+sudo systemctl start zookeeper-server
+</code></pre></li>
+<li><p>Install the Aurora scheduler<br>
+If you haven’t already, read the section on <a href="#rpms">how to get
Aurora RPMs</a>.</p>
+<pre class="highlight plaintext"><code># Note: for older Aurora RPM versions,
this may be called 'aurora'.
+sudo yum install -y aurora-scheduler
+</code></pre></li>
+</ol>
+
+<p>Note: if you are using the unreleased 0.9.0 RPM, you will need to edit
<code>/etc/sysconfig/aurora</code>:<br>
+Change<br>
+<code>-mesos_master_address='zk://127.0.0.1:2181/mesos/master'</code><br>
+To<br>
+<code>-mesos_master_address='zk://127.0.0.1:2181/mesos'</code><br>
+And<br>
+<code>-native_log_file_path='/var/lib/aurora/db'</code><br>
+To<br>
+<code>-native_log_file_path='/var/lib/aurora/scheduler/db'</code></p>
+
+<h3 id="finalizing">Finalizing</h3>
+
+<p>By default, the scheduler will start in an uninitialized mode. This is
because external
+coordination is necessary to be certain operator error does not result in a
quorum of schedulers
+starting up and believing their databases are empty when in fact they should
be re-joining a
+cluster.</p>
+
+<p>Because of this, a fresh install of the scheduler will need intervention to
start up. First,
+stop the scheduler service.<br>
+Ubuntu: <code>sudo stop aurora-scheduler</code><br>
+CentOS: <code>sudo systemctl stop aurora</code></p>
+
+<p>Now initialize the database:</p>
+<pre class="highlight plaintext"><code>sudo -u aurora mkdir -p
/var/lib/aurora/scheduler/db
+sudo -u aurora mesos-log initialize --path=/var/lib/aurora/scheduler/db
+</code></pre>
+
+<p>Now you can start the scheduler back up.<br>
+Ubuntu: <code>sudo start aurora-scheduler</code><br>
+CentOS: <code>sudo systemctl start aurora</code></p>
+
+<h3 id="configuration">Configuration</h3>
+
+<p>For more detail on this topic, see the dedicated page on
+<a href="/documentation/0.12.0/deploying-aurora-scheduler/">deploying the
scheduler</a></p>
+
+<h2 id="installing-worker-components">Installing worker components</h2>
+
+<h3 id="ubuntu-trusty">Ubuntu Trusty</h3>
+
+<ol>
+<li><p>Install Mesos<br>
+Skip down to <a href="#mesos-on-ubuntu-trusty">install mesos</a>, then run:</p>
+<pre class="highlight plaintext"><code>sudo start mesos-slave
+</code></pre></li>
+<li><p>Install Aurora executor and observer</p>
+<pre class="highlight plaintext"><code>wget -c
https://apache.bintray.com/aurora/aurora-executor_0.10.0-1_amd64.deb
+sudo dpkg -i aurora-executor_0.10.0-1_amd64.deb
+</code></pre></li>
+</ol>
+
+<h3 id="centos-7">CentOS 7</h3>
+
+<ol>
+<li><p>Install Mesos<br>
+Skip down to <a href="#mesos-on-centos-7">install mesos</a>, then run:</p>
+<pre class="highlight plaintext"><code>sudo systemctl start mesos-slave
+</code></pre></li>
+<li><p>Install Aurora executor and observer<br>
+If you haven’t already, read the section on <a href="#rpms">how to get
Aurora RPMs</a>.</p>
+<pre class="highlight plaintext"><code># Note: for older Aurora RPM versions,
this may be called 'aurora-thermos'.
+sudo yum install -y aurora-executor
+</code></pre></li>
+</ol>
+
+<h3 id="configuration">Configuration</h3>
+
+<p>The executor and observer typically do not require much configuration.
Command line arguments can
+be passed to the executor using a command line argument on the scheduler.</p>
+
+<h2 id="installing-the-client">Installing the client</h2>
+
+<h3 id="ubuntu-trusty">Ubuntu Trusty</h3>
+<pre class="highlight plaintext"><code>sudo apt-get install -y python2.7 wget
+
+wget https://apache.bintray.com/aurora/aurora-tools_0.10.0-1_amd64.deb
+sudo dpkg -i aurora-tools_0.10.0-1_amd64.deb
+</code></pre>
+
+<h3 id="centos-7">CentOS 7</h3>
+
+<p>If you haven’t already, read the section on <a href="#rpms">how to
get Aurora RPMs</a>.</p>
+<pre class="highlight plaintext"><code># Note: for older Aurora RPM versions,
this may be called 'aurora-client'.
+sudo yum install -y aurora-tools
+</code></pre>
+
+<h3 id="configuration">Configuration</h3>
+
+<p>Client configuration lives in a json file that describes the clusters
available and how to reach
+them. By default this file is at <code>/etc/aurora/clusters.json</code>.</p>
+
+<p>Jobs may be submitted to the scheduler using the client, and are described
with
+<a href="/documentation/0.12.0/configuration-reference/">job
configurations</a> expressed in <code>.aurora</code> files. Typically you will
+maintain a single job configuration file to describe one or more deployment
environments (e.g.
+dev, test, prod) for a production job.</p>
+
+<h2 id="see-also">See also</h2>
+
+<p>We have other docs that you will find useful once you have your cluster up
and running:</p>
+
+<ul>
+<li><a href="/documentation/0.12.0/monitoring/">Monitor</a> your cluster</li>
+<li>Enable scheduler <a
href="/documentation/0.12.0/security/">security</a></li>
+<li>View job SLA <a href="/documentation/0.12.0/sla/">statistics</a></li>
+<li>Understand the internals of the scheduler’s <a
href="/documentation/0.12.0/storage/">storage</a></li>
+</ul>
+
+<h2 id="installing-mesos">Installing Mesos</h2>
+
+<p>Mesos uses a single package for the Mesos master and slave. As a result,
the package dependencies
+are identical for both.</p>
+
+<h3 id="mesos-on-ubuntu-trusty">Mesos on Ubuntu Trusty</h3>
+<pre class="highlight plaintext"><code>sudo apt-get update
+sudo apt-get install -y software-properties-common
+sudo add-apt-repository ppa:openjdk-r/ppa -y
+sudo apt-get update
+
+sudo apt-get install -y wget libsvn1 libcurl3 openjdk-8-jre-headless
+
+# NOTE: This appears to be a missing dependency of the mesos deb package.
+sudo apt-get install -y libcurl4-nss-dev
+
+wget -c
http://downloads.mesosphere.io/master/ubuntu/14.04/mesos_0.23.0-1.0.ubuntu1404_amd64.deb
+sudo dpkg -i mesos_0.23.0-1.0.ubuntu1404_amd64.deb
+</code></pre>
+
+<h3 id="mesos-on-centos-7">Mesos on CentOS 7</h3>
+<pre class="highlight plaintext"><code>sudo rpm -Uvh
http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
+sudo yum install -y mesos-0.22.0
+</code></pre>
+
+</div>
+
+ </div>
+ </div>
+ <div class="container-fluid section-footer buffer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+ <ul>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/community/">Mailing Lists</a></li>
+ <li><a
href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
+ <li><a href="/documentation/latest/contributing/">How
To Contribute</a></li>
+ </ul>
+ </div>
+ <div class="col-md-2"><h3>The ASF</h3>
+ <ul>
+ <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>
+ <div class="col-md-6">
+ <p class="disclaimer">Copyright 2014 <a
href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under
the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a
href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX
photo</a> displayed on the homepage is available under a <a
href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo
are trademarks of The Apache Software Foundation.</p>
+ </div>
+ </div>
+ </div>
+
+ </body>
+</html>
Added: aurora/site/publish/documentation/0.12.0/monitoring/index.html
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/monitoring/index.html?rev=1733548&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.12.0/monitoring/index.html (added)
+++ aurora/site/publish/documentation/0.12.0/monitoring/index.html Fri Mar 4
02:43:01 2016
@@ -0,0 +1,305 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache Aurora</title>
+ <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
+ <link href="/assets/css/main.css" rel="stylesheet">
+ <!-- Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-45879646-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>
+ <div class="container-fluid section-header">
+ <div class="container">
+ <div class="nav nav-bar">
+ <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300"
alt="Transparent Apache Aurora logo with dark background"/></a>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="/documentation/latest/">Documentation</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+ <div class="container-fluid">
+ <div class="container content">
+ <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value +
'/monitoring/'"
+ value="0.12.0">
+ <option value="0.12.0"
+ selected="selected">
+ 0.12.0
+ (latest)
+ </option>
+ <option value="0.11.0"
+ >
+ 0.11.0
+ </option>
+ <option value="0.10.0"
+ >
+ 0.10.0
+ </option>
+ <option value="0.9.0"
+ >
+ 0.9.0
+ </option>
+ <option value="0.8.0"
+ >
+ 0.8.0
+ </option>
+ <option value="0.7.0-incubating"
+ >
+ 0.7.0-incubating
+ </option>
+ <option value="0.6.0-incubating"
+ >
+ 0.6.0-incubating
+ </option>
+ <option value="0.5.0-incubating"
+ >
+ 0.5.0-incubating
+ </option>
+</select>
+</h5>
+<h1 id="monitoring-your-aurora-cluster">Monitoring your Aurora cluster</h1>
+
+<p>Before you start running important services in your Aurora cluster,
it’s important to set up
+monitoring and alerting of Aurora itself. Most of your monitoring can be
against the scheduler,
+since it will give you a global view of what’s going on.</p>
+
+<h2 id="reading-stats">Reading stats</h2>
+
+<p>The scheduler exposes a <em>lot</em> of instrumentation data via its HTTP
interface. You can get a quick
+peek at the first few of these in our vagrant image:</p>
+<pre class="highlight plaintext"><code>$ vagrant ssh -c 'curl -s
localhost:8081/vars | head'
+async_tasks_completed 1004
+attribute_store_fetch_all_events 15
+attribute_store_fetch_all_events_per_sec 0.0
+attribute_store_fetch_all_nanos_per_event 0.0
+attribute_store_fetch_all_nanos_total 3048285
+attribute_store_fetch_all_nanos_total_per_sec 0.0
+attribute_store_fetch_one_events 3391
+attribute_store_fetch_one_events_per_sec 0.0
+attribute_store_fetch_one_nanos_per_event 0.0
+attribute_store_fetch_one_nanos_total 454690753
+</code></pre>
+
+<p>These values are served as <code>Content-Type: text/plain</code>, with each
line containing a space-separated metric
+name and value. Values may be integers, doubles, or strings (note: strings are
static, others
+may be dynamic).</p>
+
+<p>If your monitoring infrastructure prefers JSON, the scheduler exports that
as well:</p>
+<pre class="highlight plaintext"><code>$ vagrant ssh -c 'curl -s
localhost:8081/vars.json | python -mjson.tool | head'
+{
+ "async_tasks_completed": 1009,
+ "attribute_store_fetch_all_events": 15,
+ "attribute_store_fetch_all_events_per_sec": 0.0,
+ "attribute_store_fetch_all_nanos_per_event": 0.0,
+ "attribute_store_fetch_all_nanos_total": 3048285,
+ "attribute_store_fetch_all_nanos_total_per_sec": 0.0,
+ "attribute_store_fetch_one_events": 3409,
+ "attribute_store_fetch_one_events_per_sec": 0.0,
+ "attribute_store_fetch_one_nanos_per_event": 0.0,
+</code></pre>
+
+<p>This will be the same data as above, served with <code>Content-Type:
application/json</code>.</p>
+
+<h2 id="viewing-live-stat-samples-on-the-scheduler">Viewing live stat samples
on the scheduler</h2>
+
+<p>The scheduler uses the Twitter commons stats library, which keeps an
internal time-series database
+of exported variables - nearly everything in <code>/vars</code> is available
for instant graphing. This is
+useful for debugging, but is not a replacement for an external monitoring
system.</p>
+
+<p>You can view these graphs on a scheduler at <code>/graphview</code>. It
supports some composition and
+aggregation of values, which can be invaluable when triaging a problem. For
example, if you have
+the scheduler running in vagrant, check out these links:
+<a href="http://192.168.33.7:8081/graphview?query=jvm_uptime_secs">simple
graph</a>
+<a
href="http://192.168.33.7:8081/graphview?query=rate(scheduler_log_native_append_nanos_total)%2Frate(scheduler_log_native_append_events)%2F1e6">complex
composition</a></p>
+
+<h3 id="counters-and-gauges">Counters and gauges</h3>
+
+<p>Among numeric stats, there are two fundamental types of stats exported:
<em>counters</em> and <em>gauges</em>.
+Counters are guaranteed to be monotonically-increasing for the lifetime of a
process, while gauges
+may decrease in value. Aurora uses counters to represent things like the
number of times an event
+has occurred, and gauges to capture things like the current length of a queue.
Counters are a
+natural fit for accurate composition into <a
href="http://en.wikipedia.org/wiki/Rate_ratio">rate ratios</a>
+(useful for sample-resistant latency calculation), while gauges are not.</p>
+
+<h1 id="alerting">Alerting</h1>
+
+<h2 id="quickstart">Quickstart</h2>
+
+<p>If you are looking for just bare-minimum alerting to get something in place
quickly, set up alerting
+on <code>framework_registered</code> and <code>task_store_LOST</code>. These
will give you a decent picture of overall
+health.</p>
+
+<h2 id="a-note-on-thresholds">A note on thresholds</h2>
+
+<p>One of the most difficult things in monitoring is choosing alert
thresholds. With many of these
+stats, there is no value we can offer as a threshold that will be guaranteed
to work for you. It
+will depend on the size of your cluster, number of jobs, churn of tasks in the
cluster, etc. We
+recommend you start with a strict value after viewing a small amount of
collected data, and then
+adjust thresholds as you see fit. Feel free to ask us if you would like to
validate that your alerts
+and thresholds make sense.</p>
+
+<h2 id="important-stats">Important stats</h2>
+
+<h3 id="jvm_uptime_secs"><code>jvm_uptime_secs</code></h3>
+
+<p>Type: integer counter</p>
+
+<p>The number of seconds the JVM process has been running. Comes from
+<a
href="http://docs.oracle.com/javase/7/docs/api/java/lang/management/RuntimeMXBean.html#getUptime()">RuntimeMXBean#getUptime()</a></p>
+
+<p>Detecting resets (decreasing values) on this stat will tell you that the
scheduler is failing to
+stay alive.</p>
+
+<p>Look at the scheduler logs to identify the reason the scheduler is
exiting.</p>
+
+<h3 id="system_load_avg"><code>system_load_avg</code></h3>
+
+<p>Type: double gauge</p>
+
+<p>The current load average of the system for the last minute. Comes from
+<a
href="http://docs.oracle.com/javase/7/docs/api/java/lang/management/OperatingSystemMXBean.html?is-external=true#getSystemLoadAverage()">OperatingSystemMXBean#getSystemLoadAverage()</a>.</p>
+
+<p>A high sustained value suggests that the scheduler machine may be
over-utilized.</p>
+
+<p>Use standard unix tools like <code>top</code> and <code>ps</code> to track
down the offending process(es).</p>
+
+<h3
id="process_cpu_cores_utilized"><code>process_cpu_cores_utilized</code></h3>
+
+<p>Type: double gauge</p>
+
+<p>The current number of CPU cores in use by the JVM process. This should not
exceed the number of
+logical CPU cores on the machine. Derived from
+<a
href="http://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html">OperatingSystemMXBean#getProcessCpuTime()</a></p>
+
+<p>A high sustained value indicates that the scheduler is overworked. Due to
current internal design
+limitations, if this value is sustained at <code>1</code>, there is a good
chance the scheduler is under water.</p>
+
+<p>There are two main inputs that tend to drive this figure: task scheduling
attempts and status
+updates from Mesos. You may see activity in the scheduler logs to give an
indication of where
+time is being spent. Beyond that, it really takes good familiarity with the
code to effectively
+triage this. We suggest engaging with an Aurora developer.</p>
+
+<h3 id="task_store_lost"><code>task_store_LOST</code></h3>
+
+<p>Type: integer gauge</p>
+
+<p>The number of tasks stored in the scheduler that are in the
<code>LOST</code> state, and have been rescheduled.</p>
+
+<p>If this value is increasing at a high rate, it is a sign of trouble.</p>
+
+<p>There are many sources of <code>LOST</code> tasks in Mesos: the scheduler,
master, slave, and executor can all
+trigger this. The first step is to look in the scheduler logs for
<code>LOST</code> to identify where the
+state changes are originating.</p>
+
+<h3 id="scheduler_resource_offers"><code>scheduler_resource_offers</code></h3>
+
+<p>Type: integer counter</p>
+
+<p>The number of resource offers that the scheduler has received.</p>
+
+<p>For a healthy scheduler, this value must be increasing over time.</p>
+
+<p>Assuming the scheduler is up and otherwise healthy, you will want to check
if the master thinks it
+is sending offers. You should also look at the master’s web interface to
see if it has a large
+number of outstanding offers that it is waiting to be returned.</p>
+
+<h3 id="framework_registered"><code>framework_registered</code></h3>
+
+<p>Type: binary integer counter</p>
+
+<p>Will be <code>1</code> for the leading scheduler that is registered with
the Mesos master, <code>0</code> for passive
+schedulers,</p>
+
+<p>A sustained period without a <code>1</code> (or where <code>sum() !=
1</code>) warrants investigation.</p>
+
+<p>If there is no leading scheduler, look in the scheduler and master logs for
why. If there are
+multiple schedulers claiming leadership, this suggests a split brain and
warrants filing a critical
+bug.</p>
+
+<h3
id="rate-scheduler_log_native_append_nanos_total-rate-scheduler_log_native_append_events"><code>rate(scheduler_log_native_append_nanos_total)/rate(scheduler_log_native_append_events)</code></h3>
+
+<p>Type: rate ratio of integer counters</p>
+
+<p>This composes two counters to compute a windowed figure for the latency of
replicated log writes.</p>
+
+<p>A hike in this value suggests disk bandwidth contention.</p>
+
+<p>Look in scheduler logs for any reported oddness with saving to the
replicated log. Also use
+standard tools like <code>vmstat</code> and <code>iotop</code> to identify
whether the disk has become slow or
+over-utilized. We suggest using a dedicated disk for the replicated log to
mitigate this.</p>
+
+<h3 id="timed_out_tasks"><code>timed_out_tasks</code></h3>
+
+<p>Type: integer counter</p>
+
+<p>Tracks the number of times the scheduler has given up while waiting
+(for <code>-transient_task_state_timeout</code>) to hear back about a task
that is in a transient state
+(e.g. <code>ASSIGNED</code>, <code>KILLING</code>), and has moved to
<code>LOST</code> before rescheduling.</p>
+
+<p>This value is currently known to increase occasionally when the scheduler
fails over
+(<a href="https://issues.apache.org/jira/browse/AURORA-740">AURORA-740</a>).
However, any large spike in this
+value warrants investigation.</p>
+
+<p>The scheduler will log when it times out a task. You should trace the task
ID of the timed out
+task into the master, slave, and/or executors to determine where the message
was dropped.</p>
+
+<h3 id="http_500_responses_events"><code>http_500_responses_events</code></h3>
+
+<p>Type: integer counter</p>
+
+<p>The total number of HTTP 500 status responses sent by the scheduler.
Includes API and asset serving.</p>
+
+<p>An increase warrants investigation.</p>
+
+<p>Look in scheduler logs to identify why the scheduler returned a 500, there
should be a stack trace.</p>
+
+</div>
+
+ </div>
+ </div>
+ <div class="container-fluid section-footer buffer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+ <ul>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/community/">Mailing Lists</a></li>
+ <li><a
href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
+ <li><a href="/documentation/latest/contributing/">How
To Contribute</a></li>
+ </ul>
+ </div>
+ <div class="col-md-2"><h3>The ASF</h3>
+ <ul>
+ <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>
+ <div class="col-md-6">
+ <p class="disclaimer">Copyright 2014 <a
href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under
the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a
href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX
photo</a> displayed on the homepage is available under a <a
href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo
are trademarks of The Apache Software Foundation.</p>
+ </div>
+ </div>
+ </div>
+
+ </body>
+</html>
Added: aurora/site/publish/documentation/0.12.0/presentations/index.html
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/presentations/index.html?rev=1733548&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.12.0/presentations/index.html (added)
+++ aurora/site/publish/documentation/0.12.0/presentations/index.html Fri Mar
4 02:43:01 2016
@@ -0,0 +1,191 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache Aurora</title>
+ <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
+ <link href="/assets/css/main.css" rel="stylesheet">
+ <!-- Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-45879646-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>
+ <div class="container-fluid section-header">
+ <div class="container">
+ <div class="nav nav-bar">
+ <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300"
alt="Transparent Apache Aurora logo with dark background"/></a>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="/documentation/latest/">Documentation</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+ <div class="container-fluid">
+ <div class="container content">
+ <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value +
'/presentations/'"
+ value="0.12.0">
+ <option value="0.12.0"
+ selected="selected">
+ 0.12.0
+ (latest)
+ </option>
+ <option value="0.11.0"
+ >
+ 0.11.0
+ </option>
+ <option value="0.10.0"
+ >
+ 0.10.0
+ </option>
+ <option value="0.9.0"
+ >
+ 0.9.0
+ </option>
+ <option value="0.8.0"
+ >
+ 0.8.0
+ </option>
+ <option value="0.7.0-incubating"
+ >
+ 0.7.0-incubating
+ </option>
+ <option value="0.6.0-incubating"
+ >
+ 0.6.0-incubating
+ </option>
+ <option value="0.5.0-incubating"
+ >
+ 0.5.0-incubating
+ </option>
+</select>
+</h5>
+<h1 id="apache-aurora-presentations">Apache Aurora Presentations</h1>
+
+<p>Video and slides from presentations and panel discussions about Apache
Aurora.</p>
+
+<p><em>(Listed in date descending order)</em></p>
+
+<table>
+
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/10_08_2015_mesos_aurora_on_a_small_scale_thumb.png"
alt="Mesos and Aurora on a Small Scale Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=q5iIqhaCJ_o">Mesos & Aurora on a
Small Scale (Video)</a></strong>
+ <p>Presented by Florian Pfeiffer</p>
+ <p>October 8, 2015 at <a
href="http://events.linuxfoundation.org/events/archive/2015/mesoscon-europe">#MesosCon
Europe 2015</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/10_08_2015_sla_aware_maintenance_for_operators_thumb.png"
alt="SLA Aware Maintenance for Operators Thumbnail" /></td>
+ <td><strong><a href="https://www.youtube.com/watch?v=tZ0-SISvCis">SLA
Aware Maintenance for Operators (Video)</a></strong>
+ <p>Presented by Joe Smith</p>
+ <p>October 8, 2015 at <a
href="http://events.linuxfoundation.org/events/archive/2015/mesoscon-europe">#MesosCon
Europe 2015</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/09_20_2015_shipping_code_with_aurora_thumb.png"
alt="Shipping Code with Aurora Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=y1hi7K1lPkk">Shipping Code with Aurora
(Video)</a></strong>
+ <p>Presented by Bill Farner</p>
+ <p>August 20, 2015 at <a
href="http://events.linuxfoundation.org/events/archive/2015/mesoscon">#MesosCon
2015</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/09_20_2015_twitter_production_scale_thumb.png"
alt="Twitter Production Scale Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=nNrh-gdu9m4">Twitterâs Production
Scale: Mesos and Aurora Operations (Video)</a></strong>
+ <p>Presented by Joe Smith</p>
+ <p>August 20, 2015 at <a
href="http://events.linuxfoundation.org/events/archive/2015/mesoscon">#MesosCon
2015</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/04_30_2015_monolith_to_microservices_thumb.png"
alt="From Monolith to Microservices with Aurora Video Thumbnail" /></td>
+ <td><strong><a href="https://www.youtube.com/watch?v=yXkOgnyK4Hw">From
Monolith to Microservices w/ Aurora (Video)</a></strong>
+ <p>Presented by Thanos Baskous, Tony Dong, Dobromir Montauk</p>
+ <p>April 30, 2015 at <a
href="http://www.meetup.com/Bay-Area-Apache-Aurora-Users-Group/events/221219480/">Bay
Area Apache Aurora Users Group</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/03_07_2015_aurora_mesos_in_practice_at_twitter_thumb.png"
alt="Aurora + Mesos in Practice at Twitter Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=1XYJGX_qZVU">Aurora + Mesos in Practice
at Twitter (Video)</a></strong>
+ <p>Presented by Bill Farner</p>
+ <p>March 07, 2015 at <a
href="http://www.bigeng.io/aurora-mesos-in-practice-at-twitter">Bigcommerce
TechTalk</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/02_28_2015_apache_aurora_thumb.png"
alt="Apache Auroraã®å§ããã Slideshow Thumbnail" /></td>
+ <td><strong><a
href="http://www.slideshare.net/zembutsu/apache-aurora-introduction-and-tutorial-osc15tk">Apache
Auroraã®å§ããã (Slides)</a></strong>
+ <p>Presented by Masahito Zembutsu</p>
+ <p>February 28, 2015 at <a
href="http://www.ospn.jp/osc2015-spring/">Open Source Conference 2015 Tokyo
Spring</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/02_19_2015_aurora_adopters_panel_thumb.png"
alt="Apache Aurora Adopters Panel Video Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=2Jsj0zFdRlg">Apache Aurora Adopters Panel
(Video)</a></strong>
+ <p>Panelists Ben Staffin, Josh Adams, Bill Farner, Berk Demir</p>
+ <p>February 19, 2015 at <a
href="http://www.meetup.com/Bay-Area-Mesos-User-Group/events/220279080/">Bay
Area Mesos Users Group</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/02_19_2015_aurora_at_twitter_thumb.png"
alt="Operating Apache Aurora and Mesos at Twitter Video Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=E4lxX6epM_U">Operating Apache Aurora and
Mesos at Twitter (Video)</a></strong>
+ <p>Presented by Joe Smith</p>
+ <p>February 19, 2015 at <a
href="http://www.meetup.com/Bay-Area-Mesos-User-Group/events/220279080/">Bay
Area Mesos Users Group</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/02_19_2015_aurora_at_tellapart_thumb.png"
alt="Apache Aurora and Mesos at TellApart" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=ZZXtXLvTXAE">Apache Aurora and Mesos at
TellApart (Video)</a></strong>
+ <p>Presented by Steve Niemitz</p>
+ <p>February 19, 2015 at <a
href="http://www.meetup.com/Bay-Area-Mesos-User-Group/events/220279080/">Bay
Area Mesos Users Group</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/08_21_2014_past_present_future_thumb.png"
alt="Past, Present, and Future of the Aurora Scheduler Video Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=Dsc5CPhKs4o">Past, Present, and Future of
the Aurora Scheduler (Video)</a></strong>
+ <p>Presented by Bill Farner</p>
+ <p>August 21, 2014 at <a
href="http://events.linuxfoundation.org/events/archive/2014/mesoscon">#MesosCon
2014</a></p></td>
+ </tr>
+ <tr>
+ <td><img
src="/documentation/0.12.0/images/presentations/03_25_2014_introduction_to_aurora_thumb.png"
alt="Introduction to Apache Aurora Video Thumbnail" /></td>
+ <td><strong><a
href="https://www.youtube.com/watch?v=asd_h6VzaJc">Introduction to Apache
Aurora (Video)</a></strong>
+ <p>Presented by Bill Farner</p>
+ <p>March 25, 2014 at <a
href="https://www.eventbrite.com/e/aurora-and-mesosframeworksmeetup-tickets-10850994617">Aurora
and Mesos Frameworks Meetup</a></p></td>
+ </tr>
+</table>
+
+</div>
+
+ </div>
+ </div>
+ <div class="container-fluid section-footer buffer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+ <ul>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/community/">Mailing Lists</a></li>
+ <li><a
href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
+ <li><a href="/documentation/latest/contributing/">How
To Contribute</a></li>
+ </ul>
+ </div>
+ <div class="col-md-2"><h3>The ASF</h3>
+ <ul>
+ <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>
+ <div class="col-md-6">
+ <p class="disclaimer">Copyright 2014 <a
href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under
the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a
href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX
photo</a> displayed on the homepage is available under a <a
href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo
are trademarks of The Apache Software Foundation.</p>
+ </div>
+ </div>
+ </div>
+
+ </body>
+</html>
Added: aurora/site/publish/documentation/0.12.0/resources/index.html
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/resources/index.html?rev=1733548&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.12.0/resources/index.html (added)
+++ aurora/site/publish/documentation/0.12.0/resources/index.html Fri Mar 4
02:43:01 2016
@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache Aurora</title>
+ <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
+ <link href="/assets/css/main.css" rel="stylesheet">
+ <!-- Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-45879646-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>
+ <div class="container-fluid section-header">
+ <div class="container">
+ <div class="nav nav-bar">
+ <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300"
alt="Transparent Apache Aurora logo with dark background"/></a>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="/documentation/latest/">Documentation</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+ <div class="container-fluid">
+ <div class="container content">
+ <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value +
'/resources/'"
+ value="0.12.0">
+ <option value="0.12.0"
+ selected="selected">
+ 0.12.0
+ (latest)
+ </option>
+ <option value="0.11.0"
+ >
+ 0.11.0
+ </option>
+ <option value="0.10.0"
+ >
+ 0.10.0
+ </option>
+ <option value="0.9.0"
+ >
+ 0.9.0
+ </option>
+ <option value="0.8.0"
+ >
+ 0.8.0
+ </option>
+ <option value="0.7.0-incubating"
+ >
+ 0.7.0-incubating
+ </option>
+ <option value="0.6.0-incubating"
+ >
+ 0.6.0-incubating
+ </option>
+ <option value="0.5.0-incubating"
+ >
+ 0.5.0-incubating
+ </option>
+</select>
+</h5>
+<h1 id="resources-and-sizing">Resources and Sizing</h1>
+
+<ul>
+<li><a href="#introduction">Introduction</a></li>
+<li><a href="#cpu-isolation">CPU Isolation</a></li>
+<li><a href="#cpu-sizing">CPU Sizing</a></li>
+<li><a href="#memory-isolation">Memory Isolation</a></li>
+<li><a href="#memory-sizing">Memory Sizing</a></li>
+<li><a href="#disk-space">Disk Space</a></li>
+<li><a href="#disk-space-sizing">Disk Space Sizing</a></li>
+<li><a href="#other-resources">Other Resources</a></li>
+<li><a href="#resource-quota">Resource Quota</a></li>
+<li><a href="#task-preemption">Task Preemption</a></li>
+</ul>
+
+<h2 id="introduction">Introduction</h2>
+
+<p>Aurora is a multi-tenant system; a single software instance runs on a
+server, serving multiple clients/tenants. To share resources among
+tenants, it implements isolation of:</p>
+
+<ul>
+<li>CPU</li>
+<li>memory</li>
+<li>disk space</li>
+</ul>
+
+<p>CPU is a soft limit, and handled differently from memory and disk space.
+Too low a CPU value results in throttling your application and
+slowing it down. Memory and disk space are both hard limits; when your
+application goes over these values, it’s killed.</p>
+
+<p>Let’s look at each resource type in more detail:</p>
+
+<h2 id="cpu-isolation">CPU Isolation</h2>
+
+<p>Mesos uses a quota based CPU scheduler (the <em>Completely Fair
Scheduler</em>)
+to provide consistent and predictable performance. This is effectively
+a guarantee of resources – you receive at least what you requested, but
+also no more than you’ve requested.</p>
+
+<p>The scheduler gives applications a CPU quota for every 100 ms interval.
+When an application uses its quota for an interval, it is throttled for
+the rest of the 100 ms. Usage resets for each interval and unused
+quota does not carry over.</p>
+
+<p>For example, an application specifying 4.0 CPU has access to 400 ms of
+CPU time every 100 ms. This CPU quota can be used in different ways,
+depending on the application and available resources. Consider the
+scenarios shown in this diagram.</p>
+
+<p><img alt="CPU Availability" src="../images/CPUavailability.png" /></p>
+
+<ul>
+<li><p><em>Scenario A</em>: the application can use up to 4 cores continuously
for
+every 100 ms interval. It is never throttled and starts processing
+new requests immediately.</p></li>
+<li><p><em>Scenario B</em> : the application uses up to 8 cores (depending on
+availability) but is throttled after 50 ms. The CPU quota resets at the
+start of each new 100 ms interval.</p></li>
+<li><p><em>Scenario C</em> : is like Scenario A, but there is a garbage
collection
+event in the second interval that consumes all CPU quota. The
+application throttles for the remaining 75 ms of that interval and
+cannot service requests until the next interval. In this example, the
+garbage collection finished in one interval but, depending on how much
+garbage needs collecting, it may take more than one interval and further
+delay service of requests.</p></li>
+</ul>
+
+<p><em>Technical Note</em>: Mesos considers logical cores, also known as
+hyperthreading or SMT cores, as the unit of CPU.</p>
+
+<h2 id="cpu-sizing">CPU Sizing</h2>
+
+<p>To correctly size Aurora-run Mesos tasks, specify a per-shard CPU value
+that lets the task run at its desired performance when at peak load
+distributed across all shards. Include reserve capacity of at least 50%,
+possibly more, depending on how critical your service is (or how
+confident you are about your original estimate : -)), ideally by
+increasing the number of shards to also improve resiliency. When running
+your application, observe its CPU stats over time. If consistently at or
+near your quota during peak load, you should consider increasing either
+per-shard CPU or the number of shards.</p>
+
+<h2 id="memory-isolation">Memory Isolation</h2>
+
+<p>Mesos uses dedicated memory allocation. Your application always has
+access to the amount of memory specified in your configuration. The
+application’s memory use is defined as the sum of the resident set size
+(RSS) of all processes in a shard. Each shard is considered
+independently.</p>
+
+<p>In other words, say you specified a memory size of 10GB. Each shard
+would receive 10GB of memory. If an individual shard’s memory demands
+exceed 10GB, that shard is killed, but the other shards continue
+working.</p>
+
+<p><em>Technical note</em>: Total memory size is not enforced at allocation
time,
+so your application can request more than its allocation without getting
+an ENOMEM. However, it will be killed shortly after.</p>
+
+<h2 id="memory-sizing">Memory Sizing</h2>
+
+<p>Size for your application’s peak requirement. Observe the per-instance
+memory statistics over time, as memory requirements can vary over
+different periods. Remember that if your application exceeds its memory
+value, it will be killed, so you should also add a safety margin of
+around 10-20%. If you have the ability to do so, you may also want to
+put alerts on the per-instance memory.</p>
+
+<h2 id="disk-space">Disk Space</h2>
+
+<p>Disk space used by your application is defined as the sum of the
files’
+disk space in your application’s directory, including the
<code>stdout</code> and
+<code>stderr</code> logged from your application. Each shard is considered
+independently. You should use off-node storage for your application’s
+data whenever possible.</p>
+
+<p>In other words, say you specified disk space size of 100MB. Each shard
+would receive 100MB of disk space. If an individual shard’s disk space
+demands exceed 100MB, that shard is killed, but the other shards
+continue working.</p>
+
+<p>After your application finishes running, its allocated disk space is
+reclaimed. Thus, your job’s final action should move any disk content
+that you want to keep, such as logs, to your home file system or other
+less transitory storage. Disk reclamation takes place an undefined
+period after the application finish time; until then, the disk contents
+are still available but you shouldn’t count on them being so.</p>
+
+<p><em>Technical note</em> : Disk space is not enforced at write so your
+application can write above its quota without getting an ENOSPC, but it
+will be killed shortly after. This is subject to change.</p>
+
+<h2 id="disk-space-sizing">Disk Space Sizing</h2>
+
+<p>Size for your application’s peak requirement. Rotate and discard log
+files as needed to stay within your quota. When running a Java process,
+add the maximum size of the Java heap to your disk space requirement, in
+order to account for an out of memory error dumping the heap
+into the application’s sandbox space.</p>
+
+<h2 id="other-resources">Other Resources</h2>
+
+<p>Other resources, such as network bandwidth, do not have any performance
+guarantees. For some resources, such as memory bandwidth, there are no
+practical sharing methods so some application combinations collocated on
+the same host may cause contention.</p>
+
+<h2 id="resource-quota">Resource Quota</h2>
+
+<p>Aurora requires resource quotas for
+<a
href="/documentation/0.12.0/configuration-reference/#job-objects">production
non-dedicated jobs</a>. Quota is enforced at
+the job role level and when set, defines a non-preemptible pool of compute
resources within
+that role.</p>
+
+<p>To grant quota to a particular role in production use <code>aurora_admin
set_quota</code> command.</p>
+
+<p>NOTE: all job types (service, adhoc or cron) require role resource quota
unless a job has
+<a
href="/documentation/0.12.0/deploying-aurora-scheduler/#dedicated-attribute">dedicated
constraint set</a>.</p>
+
+<h2 id="task-preemption">Task preemption</h2>
+
+<p>Under a particular resource shortage pressure, tasks from
+<a
href="/documentation/0.12.0/configuration-reference/#job-objects">production</a>
jobs may preempt tasks from any non-production
+job. A production task may only be preempted by tasks from production jobs in
the same role with
+higher <a
href="/documentation/0.12.0/configuration-reference/#job-objects">priority</a>.</p>
+
+</div>
+
+ </div>
+ </div>
+ <div class="container-fluid section-footer buffer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+ <ul>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/community/">Mailing Lists</a></li>
+ <li><a
href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
+ <li><a href="/documentation/latest/contributing/">How
To Contribute</a></li>
+ </ul>
+ </div>
+ <div class="col-md-2"><h3>The ASF</h3>
+ <ul>
+ <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>
+ <div class="col-md-6">
+ <p class="disclaimer">Copyright 2014 <a
href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under
the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a
href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX
photo</a> displayed on the homepage is available under a <a
href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo
are trademarks of The Apache Software Foundation.</p>
+ </div>
+ </div>
+ </div>
+
+ </body>
+</html>
Added: aurora/site/publish/documentation/0.12.0/security/index.html
URL:
http://svn.apache.org/viewvc/aurora/site/publish/documentation/0.12.0/security/index.html?rev=1733548&view=auto
==============================================================================
--- aurora/site/publish/documentation/0.12.0/security/index.html (added)
+++ aurora/site/publish/documentation/0.12.0/security/index.html Fri Mar 4
02:43:01 2016
@@ -0,0 +1,384 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache Aurora</title>
+ <link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
+ <link href="/assets/css/main.css" rel="stylesheet">
+ <!-- Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-45879646-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>
+ <div class="container-fluid section-header">
+ <div class="container">
+ <div class="nav nav-bar">
+ <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300"
alt="Transparent Apache Aurora logo with dark background"/></a>
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="/documentation/latest/">Documentation</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+ <div class="container-fluid">
+ <div class="container content">
+ <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation
+<select onChange="window.location.href='/documentation/' + this.value +
'/security/'"
+ value="0.12.0">
+ <option value="0.12.0"
+ selected="selected">
+ 0.12.0
+ (latest)
+ </option>
+ <option value="0.11.0"
+ >
+ 0.11.0
+ </option>
+ <option value="0.10.0"
+ >
+ 0.10.0
+ </option>
+ <option value="0.9.0"
+ >
+ 0.9.0
+ </option>
+ <option value="0.8.0"
+ >
+ 0.8.0
+ </option>
+ <option value="0.7.0-incubating"
+ >
+ 0.7.0-incubating
+ </option>
+ <option value="0.6.0-incubating"
+ >
+ 0.6.0-incubating
+ </option>
+ <option value="0.5.0-incubating"
+ >
+ 0.5.0-incubating
+ </option>
+</select>
+</h5>
+<p>Aurora integrates with <a href="http://shiro.apache.org/">Apache Shiro</a>
to provide security
+controls for its API. In addition to providing some useful features out of the
box, Shiro
+also allows Aurora cluster administrators to adapt the security system to
their organizationâs
+existing infrastructure.</p>
+
+<ul>
+<li><a href="#enabling-security">Enabling Security</a></li>
+<li><a href="#authentication">Authentication</a>
+
+<ul>
+<li><a href="#http-basic-authentication">HTTP Basic Authentication</a>
+
+<ul>
+<li><a href="#server-configuration">Server Configuration</a></li>
+<li><a href="#client-configuration">Client Configuration</a></li>
+</ul></li>
+<li><a href="#http-spnego-authentication-kerberos">HTTP SPNEGO Authentication
(Kerberos)</a>
+
+<ul>
+<li><a href="#server-configuration-1">Server Configuration</a></li>
+<li><a href="#client-configuration-1">Client Configuration</a></li>
+</ul></li>
+</ul></li>
+<li><a href="#authorization">Authorization</a>
+
+<ul>
+<li><a href="#using-an-ini-file-to-define-security-controls">Using an INI file
to define security controls</a>
+
+<ul>
+<li><a href="#caveats">Caveats</a></li>
+</ul></li>
+</ul></li>
+<li><a href="#implementing-a-custom-realm">Implementing a Custom Realm</a>
+
+<ul>
+<li><a href="#packaging-a-realm-module">Packaging a realm module</a></li>
+</ul></li>
+<li><a href="#known-issues">Known Issues</a></li>
+</ul>
+
+<h1 id="enabling-security">Enabling Security</h1>
+
+<p>There are two major components of security:
+<a
href="http://en.wikipedia.org/wiki/Authentication#Authorization">authentication
and authorization</a>. A
+cluster administrator may choose the approach used for each, and may also
implement custom
+mechanisms for either. Later sections describe the options available.</p>
+
+<h1 id="authentication">Authentication</h1>
+
+<p>The scheduler must be configured with instructions for how to process
authentication
+credentials at a minimum. There are currently two built-in authentication
schemes -
+<a href="http://en.wikipedia.org/wiki/Basic_access_authentication">HTTP Basic
Authentication</a>, and
+<a href="http://en.wikipedia.org/wiki/SPNEGO">SPNEGO</a> (Kerberos).</p>
+
+<h2 id="http-basic-authentication">HTTP Basic Authentication</h2>
+
+<p>Basic Authentication is a very quick way to add <em>some</em> security. It
is supported
+by all major browsers and HTTP client libraries with minimal work. However,
+before relying on Basic Authentication you should be aware of the <a
href="http://tools.ietf.org/html/rfc2617#section-4">security
+considerations</a>.</p>
+
+<h3 id="server-configuration">Server Configuration</h3>
+
+<p>At a minimum you need to set 4 command-line flags on the scheduler:</p>
+<pre class="highlight plaintext"><code>-http_authentication_mechanism=BASIC
+-shiro_realm_modules=INI_AUTHNZ
+-shiro_ini_path=path/to/security.ini
+</code></pre>
+
+<p>And create a security.ini file like so:</p>
+<pre class="highlight plaintext"><code>[users]
+sally = apple, admin
+
+[roles]
+admin = *
+</code></pre>
+
+<p>The details of the security.ini file are explained below. Note that this
file contains plaintext,
+unhashed passwords.</p>
+
+<h3 id="client-configuration">Client Configuration</h3>
+
+<p>To configure the client for HTTP Basic authentication, add an entry to
~/.netrc with your credentials</p>
+<pre class="highlight plaintext"><code>% cat ~/.netrc
+# ...
+
+machine aurora.example.com
+login sally
+password apple
+
+# ...
+</code></pre>
+
+<p>No changes are required to <code>clusters.json</code>.</p>
+
+<h2 id="http-spnego-authentication-kerberos">HTTP SPNEGO Authentication
(Kerberos)</h2>
+
+<h3 id="server-configuration">Server Configuration</h3>
+
+<p>At a minimum you need to set 6 command-line flags on the scheduler:</p>
+<pre class="highlight plaintext"><code>-http_authentication_mechanism=NEGOTIATE
+-shiro_realm_modules=KERBEROS5_AUTHN,INI_AUTHNZ
+-kerberos_server_principal=HTTP/[email protected]
+-kerberos_server_keytab=path/to/aurora.example.com.keytab
+-shiro_ini_path=path/to/security.ini
+</code></pre>
+
+<p>And create a security.ini file like so:</p>
+<pre class="highlight plaintext"><code>% cat path/to/security.ini
+[users]
+sally = _, admin
+
+[roles]
+admin = *
+</code></pre>
+
+<p>What’s going on here? First, Aurora must be configured to request
Kerberos credentials when presented with an
+unauthenticated request. This is achieved by setting</p>
+<pre class="highlight plaintext"><code>-http_authentication_mechanism=NEGOTIATE
+</code></pre>
+
+<p>Next, a Realm module must be configured to <strong>authenticate</strong>
the current request using the Kerberos
+credentials that were requested. Aurora ships with a realm module that can do
this</p>
+<pre class="highlight
plaintext"><code>-shiro_realm_modules=KERBEROS5_AUTHN[,...]
+</code></pre>
+
+<p>The Kerberos5Realm requires a keytab file and a server principal name. The
principal name will usually
+be in the form <code>HTTP/[email protected]</code>.</p>
+<pre class="highlight
plaintext"><code>-kerberos_server_principal=HTTP/[email protected]
+-kerberos_server_keytab=path/to/aurora.example.com.keytab
+</code></pre>
+
+<p>The Kerberos5 realm module is authentication-only. For scheduler security
to work you must also
+enable a realm module that provides an Authorizer implementation. For example,
to do this using the
+IniShiroRealmModule:</p>
+<pre class="highlight
plaintext"><code>-shiro_realm_modules=KERBEROS5_AUTHN,INI_AUTHNZ
+</code></pre>
+
+<p>You can then configure authorization using a security.ini file as described
below
+(the password field is ignored). You must configure the realm module with the
path to this file:</p>
+<pre class="highlight plaintext"><code>-shiro_ini_path=path/to/security.ini
+</code></pre>
+
+<h3 id="client-configuration">Client Configuration</h3>
+
+<p>To use Kerberos on the client-side you must build Kerberos-enabled client
binaries. Do this with</p>
+<pre class="highlight plaintext"><code>./pants binary
src/main/python/apache/aurora/kerberos:kaurora
+./pants binary src/main/python/apache/aurora/kerberos:kaurora_admin
+</code></pre>
+
+<p>You must also configure each cluster where you’ve enabled Kerberos on
the scheduler
+to use Kerberos authentication. Do this by setting <code>auth_mechanism</code>
to <code>KERBEROS</code>
+in <code>clusters.json</code>.</p>
+<pre class="highlight plaintext"><code>% cat ~/.aurora/clusters.json
+{
+ "devcluser": {
+ "auth_mechanism": "KERBEROS",
+ ...
+ },
+ ...
+}
+</code></pre>
+
+<h1 id="authorization">Authorization</h1>
+
+<p>Given a means to authenticate the entity a client claims they are, we need
to define what privileges they have.</p>
+
+<h2 id="using-an-ini-file-to-define-security-controls">Using an INI file to
define security controls</h2>
+
+<p>The simplest security configuration for Aurora is an INI file on the
scheduler. For small
+clusters, or clusters where the users and access controls change relatively
infrequently, this is
+likely the preferred approach. However you may want to avoid this approach if
access permissions
+are rapidly changing, or if your access control information already exists in
another system.</p>
+
+<p>You can enable INI-based configuration with following scheduler command
line arguments:</p>
+<pre class="highlight plaintext"><code>-http_authentication_mechanism=BASIC
+-shiro_ini_path=path/to/security.ini
+</code></pre>
+
+<p><em>note</em> As the argument name reveals, this is using Shiroâs
+<a
href="http://shiro.apache.org/configuration.html#Configuration-INIConfiguration">IniRealm</a>
behind
+the scenes.</p>
+
+<p>The INI file will contain two sections - users and roles. Hereâs an
example for what might
+be in security.ini:</p>
+<pre class="highlight plaintext"><code>[users]
+sally = apple, admin
+jim = 123456, accounting
+becky = letmein, webapp
+larry = 654321,accounting
+steve = password
+
+[roles]
+admin = *
+accounting = thrift.AuroraAdmin:setQuota
+webapp = thrift.AuroraSchedulerManager:*:webapp
+</code></pre>
+
+<p>The users section defines user user credentials and the role(s) they are
members of. These lines
+are of the format <code><user> = <password>[,
<role>...]</code>. As you probably noticed, the passwords are
+in plaintext and as a result read access to this file should be restricted.</p>
+
+<p>In this configuration, each user has different privileges for actions in
the cluster because
+of the roles they are a part of:</p>
+
+<ul>
+<li>admin is granted all privileges</li>
+<li>accounting may adjust the amount of resource quota for any role</li>
+<li>webapp represents a collection of jobs that represents a service, and its
members may create and modify any jobs owned by it</li>
+</ul>
+
+<h3 id="caveats">Caveats</h3>
+
+<p>You might find documentation on the Internet suggesting there are
additional sections in <code>shiro.ini</code>,
+like <code>[main]</code> and <code>[urls]</code>. These are not supported by
Aurora as it uses a different mechanism to configure
+those parts of Shiro. Think of Aurora’s <code>security.ini</code> as a
subset with only <code>[users]</code> and <code>[roles]</code> sections.</p>
+
+<h2 id="implementing-delegated-authorization">Implementing Delegated
Authorization</h2>
+
+<p>It is possible to leverage Shiro’s <code>runAs</code> feature by
implementing a custom Servlet Filter that provides
+the capability and passing it’s fully qualified class name to the
command line argument
+<code>-shiro_after_auth_filter</code>. The filter is registered in the same
filter chain as the Shiro auth filters
+and is placed after the Shiro auth filters in the filter chain. This ensures
that the Filter is invoked
+after the Shiro filters have had a chance to authenticate the request.</p>
+
+<h1 id="implementing-a-custom-realm">Implementing a Custom Realm</h1>
+
+<p>Since Auroraâs security is backed by <a
href="https://shiro.apache.org">Apache Shiro</a>, you can implement a
+custom <a href="http://shiro.apache.org/realm.html">Realm</a> to define
organization-specific security behavior.</p>
+
+<p>In addition to using Shiro’s standard APIs to implement a Realm you
can link against Aurora to
+access the type-safe Permissions Aurora uses. See the Javadoc for
<code>org.apache.aurora.scheduler.spi</code>
+for more information.</p>
+
+<h2 id="packaging-a-realm-module">Packaging a realm module</h2>
+
+<p>Package your custom Realm(s) with a Guice module that exposes a
<code>Set<Realm></code> multibinding.</p>
+<pre class="highlight java"><code><span style="color: #000000;font-weight:
bold">package</span> <span style="background-color: #f8f8f8">com</span><span
style="color: #000000;font-weight: bold">.</span><span style="color:
#008080">example</span><span style="color: #000000;font-weight: bold">;</span>
+
+<span style="color: #000000;font-weight: bold">import</span> <span
style="color: #555555">com.google.inject.AbstractModule</span><span
style="color: #000000;font-weight: bold">;</span>
+<span style="color: #000000;font-weight: bold">import</span> <span
style="color: #555555">com.google.inject.multibindings.Multibinder</span><span
style="color: #000000;font-weight: bold">;</span>
+<span style="color: #000000;font-weight: bold">import</span> <span
style="color: #555555">org.apache.shiro.realm.Realm</span><span style="color:
#000000;font-weight: bold">;</span>
+
+<span style="color: #000000;font-weight: bold">public</span> <span
style="color: #000000;font-weight: bold">class</span> <span style="color:
#445588;font-weight: bold">MyRealmModule</span> <span style="color:
#000000;font-weight: bold">extends</span> <span style="background-color:
#f8f8f8">AbstractModule</span> <span style="color: #000000;font-weight:
bold">{</span>
+ <span style="color: #3c5d5d;font-weight: bold">@Override</span>
+ <span style="color: #000000;font-weight: bold">public</span> <span
style="color: #445588;font-weight: bold">void</span> <span
style="background-color: #f8f8f8">configure</span><span style="color:
#000000;font-weight: bold">()</span> <span style="color: #000000;font-weight:
bold">{</span>
+ <span style="background-color: #f8f8f8">Realm</span> <span
style="background-color: #f8f8f8">myRealm</span> <span style="color:
#000000;font-weight: bold">=</span> <span style="color: #000000;font-weight:
bold">new</span> <span style="background-color: #f8f8f8">MyRealm</span><span
style="color: #000000;font-weight: bold">();</span>
+
+ <span style="background-color: #f8f8f8">Multibinder</span><span
style="color: #000000;font-weight: bold">.</span><span style="color:
#008080">newSetBinder</span><span style="color: #000000;font-weight:
bold">(</span><span style="background-color: #f8f8f8">binder</span><span
style="color: #000000;font-weight: bold">(),</span> <span
style="background-color: #f8f8f8">Realm</span><span style="color:
#000000;font-weight: bold">.</span><span style="color:
#008080">class</span><span style="color: #000000;font-weight:
bold">).</span><span style="color: #008080">addBinding</span><span
style="color: #000000;font-weight: bold">().</span><span style="color:
#008080">toInstance</span><span style="color: #000000;font-weight:
bold">(</span><span style="background-color: #f8f8f8">myRealm</span><span
style="color: #000000;font-weight: bold">);</span>
+ <span style="color: #000000;font-weight: bold">}</span>
+
+ <span style="color: #000000;font-weight: bold">static</span> <span
style="color: #000000;font-weight: bold">class</span> <span style="color:
#445588;font-weight: bold">MyRealm</span> <span style="color:
#000000;font-weight: bold">implements</span> <span style="background-color:
#f8f8f8">Realm</span> <span style="color: #000000;font-weight: bold">{</span>
+ <span style="color: #999988;font-style: italic">// Realm
implementation.</span>
+ <span style="color: #000000;font-weight: bold">}</span>
+<span style="color: #000000;font-weight: bold">}</span>
+</code></pre>
+
+<p>To use your module in the scheduler, include it as a realm module based on
its fully-qualified
+class name:</p>
+<pre class="highlight
plaintext"><code>-shiro_realm_modules=KERBEROS5_AUTHN,INI_AUTHNZ,com.example.MyRealmModule
+</code></pre>
+
+<h1 id="known-issues">Known Issues</h1>
+
+<p>While the APIs and SPIs we ship with are stable as of 0.8.0, we are aware
of several incremental
+improvements. Please follow, vote, or send patches.</p>
+
+<p>Relevant tickets:
+* <a href="https://issues.apache.org/jira/browse/AURORA-343">AURORA-343</a>:
HTTPS support
+* <a href="https://issues.apache.org/jira/browse/AURORA-1248">AURORA-1248</a>:
Client retries 4xx errors
+* <a href="https://issues.apache.org/jira/browse/AURORA-1279">AURORA-1279</a>:
Remove kerberos-specific build targets
+* <a href="https://issues.apache.org/jira/browse/AURORA-1291">AURORA-1293</a>:
Consider defining a JSON format in place of INI
+* <a href="https://issues.apache.org/jira/browse/AURORA-1179">AURORA-1179</a>:
Supported hashed passwords in security.ini
+* <a href="https://issues.apache.org/jira/browse/AURORA-1295">AURORA-1295</a>:
Support security for the ReadOnlyScheduler service</p>
+
+</div>
+
+ </div>
+ </div>
+ <div class="container-fluid section-footer buffer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+ <ul>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/community/">Mailing Lists</a></li>
+ <li><a
href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li>
+ <li><a href="/documentation/latest/contributing/">How
To Contribute</a></li>
+ </ul>
+ </div>
+ <div class="col-md-2"><h3>The ASF</h3>
+ <ul>
+ <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>
+ <div class="col-md-6">
+ <p class="disclaimer">Copyright 2014 <a
href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under
the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a
href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX
photo</a> displayed on the homepage is available under a <a
href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo
are trademarks of The Apache Software Foundation.</p>
+ </div>
+ </div>
+ </div>
+
+ </body>
+</html>