<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 5 4 2 2 2 2 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.hoenzb
        {mso-style-name:hoenzb;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:840245022;
        mso-list-type:hybrid;
        mso-list-template-ids:611716136 269025295 269025305 269025307 269025295 269025305 269025307 269025295 269025305 269025307;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi Jay,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">For your question “</span>what is the mesos object that we want to manage<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">”,
 the short answer is it depends. There are two options I can think of:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Don’t manage any object from Marathon directly. Instead, we can focus on the existing Magnum objects (i.e. container), and implements them by using
 Marathon APIs if it is possible. Use the abstraction ‘container’ as an example. For a swarm bay, container will be implemented by calling docker APIs. For a mesos bay, container could be implemented by using Marathon APIs (it looks the Marathon’s object ‘app’
 can be leveraged to operate a docker container). The effect is that Magnum will have a set of common abstractions that is implemented differently by different bay type.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Do manage a few Marathon objects (i.e. app). The effect is that Magnum will have additional API object(s) that is from Marathon (like what we have
 for existing k8s objects: pod/service/rc).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thoughts?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hongbin<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Jay Lau [mailto:jay.lau.513@gmail.com]
<br>
<b>Sent:</b> May-29-15 1:35 AM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions)<br>
<b>Subject:</b> Re: [openstack-dev] [Magnum] Discuss mesos-bay-type Blueprint<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">I want to mention that there is another mesos framework named as chronos:
<a href="https://github.com/mesos/chronos">https://github.com/mesos/chronos</a> , it is used for job orchestration.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">For others, please refer to my comments in line.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">2015-05-29 7:45 GMT+08:00 Adrian Otto <<a href="mailto:adrian.otto@rackspace.com" target="_blank">adrian.otto@rackspace.com</a>>:<o:p></o:p></p>
<div>
<p class="MsoNormal">I’m moving this whiteboard to the ML so we can have some discussion to refine it, and then go back and update the whiteboard.
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Source: <a href="https://blueprints.launchpad.net/magnum/+spec/mesos-bay-type" target="_blank">https://blueprints.launchpad.net/magnum/+spec/mesos-bay-type</a><o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">My comments in-line below.<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal">Begin forwarded message:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><b><span style="font-family:"Helvetica","sans-serif"">From: </span>
</b><span style="font-family:"Helvetica","sans-serif"">hongbin <<a href="mailto:hongbin.lu@huawei.com" target="_blank">hongbin.lu@huawei.com</a>></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Helvetica","sans-serif"">Subject: COMMERCIAL:[Blueprint mesos-bay-type] Add support for mesos bay type</span></b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Helvetica","sans-serif"">Date: </span>
</b><span style="font-family:"Helvetica","sans-serif"">May 28, 2015 at 2:11:29 PM PDT</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Helvetica","sans-serif"">To: </span>
</b><span style="font-family:"Helvetica","sans-serif""><<a href="mailto:adrian.otto@rackspace.com" target="_blank">adrian.otto@rackspace.com</a>></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><b><span style="font-family:"Helvetica","sans-serif"">Reply-To:
</span></b><span style="font-family:"Helvetica","sans-serif"">hongbin <<a href="mailto:hongbin.lu@huawei.com" target="_blank">hongbin.lu@huawei.com</a>></span><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Blueprint changed by hongbin:<br>
<br>
Whiteboard set to:<br>
<br>
I did a preliminary research on possible implementations. I think this BP can be implemented in two steps.<br>
1. Develop a heat template for provisioning mesos cluster.<br>
2. Implement a magnum conductor for managing the mesos cluster.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">Agreed, thanks for filing this blueprint!<o:p></o:p></p>
</div>
</div>
</div>
</div>
<div>
<p class="MsoNormal">For 2, the conductor is mainly used to manage objects for CoE, k8s has pod, service, rc, what is the mesos object that we want to manage? IMHO, mesos is a resource manager and it needs to be worked with some frameworks to provide services.
<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal">First, I want to emphasis that mesos is not a service (It looks like a<br>
library). Therefore, mesos doesn't have web API, and most users don't<br>
use mesos directly. Instead, they use a mesos framework that is on top<br>
of mesos. Therefore, a mesos bay needs to have a mesos framework pre-<br>
configured so that magnum can talk to the framework to manage the bay.<br>
There are several framework choices. Below is a list of frameworks that<br>
look like a fit (in my opinion). A exhaustive list of framework can be<br>
found here [1].<br>
<br>
1. Marathon [2]<br>
This is a framework controlled by a company (mesosphere [3]). It is open source through. It supports running app on clusters of docker containers. It is probably the most widely-used mesos framework for long-running application.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">Marathon offers a REST API, whereas Aroura does not (unless one has materialized in the last month). This was the one we discussed in our Vancouver design summit, and we agreed that those wanting to use Apache Mesos are probably expecting
 this framework. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal">2. Aurora [4]<br>
This is a framework governed by Apache Software Foundation. It looks very similar to Marathon, but maybe more advanced in nature. It has been used by Twitter at scale. Here [5] is a detailed comparison between Marathon and Aurora.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">We should have an alternate bay template for Aroura in our contrib directory. If users like Aroura better than Marathon, we can discuss making it the default template, and put the Marathon template in the contrib directory.
<o:p></o:p></p>
</div>
</div>
</div>
</div>
</blockquote>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal">3. Kubernetes/Docker swarm<br>
It looks the swarm-mesos is not ready yet. I cannot find any thing about that (besides several videos on Youtube). The kubernetes-mesos is there [6]. In theory, magnum should be able to deploy a mesos bay and talk to the bay through kubernetes API. An advantage
 is that we can reuse the kubernetes conductor. A disadvantage is that it is not a 'mesos' way to manage containers. Users from mesos community are probably more comfortable to manage containers through Marathon/Aurora.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">If you want Kubernetes, you should use the Kubernetes bay type. If you want Kubernetes controlling Mesos, make a custom Heat template for that, and we can put it into contrib.<o:p></o:p></p>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal">Agree, even using Mesos as resource manager, end user can still use magnum API to create pod, service, and rc.
<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">If you want Swarm controlling Mesos, then you want BOTH a Swarm bay *and* a Mesos bay, with the Swarm bay configured to use the Mesos bay using the (currently developing) integration hook for Mesos in Swarm.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Any opposing viewpoints to consider?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Adrian<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<p class="MsoNormal">--hongbin<br>
<br>
[1] <a href="http://mesos.apache.org/documentation/latest/mesos-frameworks/" target="_blank">
http://mesos.apache.org/documentation/latest/mesos-frameworks/</a><br>
[2] <a href="https://github.com/mesosphere/marathon" target="_blank">https://github.com/mesosphere/marathon</a><br>
[3] <a href="https://mesosphere.com/" target="_blank">https://mesosphere.com/</a><br>
[4] <a href="http://aurora.apache.org/" target="_blank">http://aurora.apache.org/</a><br>
[5] <a href="http://stackoverflow.com/questions/28651922/marathon-vs-aurora-and-their-purposes" target="_blank">
http://stackoverflow.com/questions/28651922/marathon-vs-aurora-and-their-purposes</a><br>
[6] <a href="https://github.com/mesosphere/kubernetes-mesos" target="_blank">https://github.com/mesosphere/kubernetes-mesos</a><span style="color:#888888"><br>
<br>
<span class="hoenzb">-- </span><br>
<span class="hoenzb">Add support for mesos bay type</span><br>
<span class="hoenzb"><a href="https://blueprints.launchpad.net/magnum/+spec/mesos-bay-type" target="_blank">https://blueprints.launchpad.net/magnum/+spec/mesos-bay-type</a></span></span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<br>
-- <o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Thanks,<o:p></o:p></p>
</div>
<p class="MsoNormal">Jay Lau (Guangya Liu)<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>