<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<div>Thanks Alex, Mike, Andrew, Russel for your comments.  This ongoing API discussion started in our scheduler meetings, as a first step to tackle in the Smarter resource placement ideas - See the doc for reference - <a href="https://docs.google.com/document/d/1IiPI0sfaWb1bdYiMWzAAx0HYR6UqzOan_Utgml5W1HI/edit">https://docs.google.com/document/d/1IiPI0sfaWb1bdYiMWzAAx0HYR6UqzOan_Utgml5W1HI/edit</a>
  This roadmap calls for a unified resource placement decisions to be taken covering resources across services, starting from a complete topology request with all the necessary nodes/instances/resources, their connections, and the policies. </div>
<div><br>
</div>
<div>However we agreed that we will first address the defining of the required APIs, and start the effort to make this happen within Nova,  using VM instances groups, with policies.  </div>
<div>Hence this proposal for the instance groups. </div>
<div><br>
</div>
<div>The entire group needs to be placed as a whole, at least the first step is to find an ideal placement choices for the entire group.  Once the placement has been identified (using a smart resource placement engine that addresses solving the entire group),
 we then focus on ways to schedule them as a whole.  This is not part of the API discussion, however important for the smart resource placement ideas.  This definitely involves concepts such as reservation, etc.  Heat or Heat APIs could be a choice to enable
 the final orchestration, but I am not commenting on that here.</div>
<div><br>
</div>
<div>The APIs effort here is an attempt to provide clean interfaces now to be able to represent this instance group, and save them, and also define apis to create them.  The actual implementation will have to rely on one or more services to - 1. to make the
 resource placement decisions, 2. then actually provision them, orchestrate them in the right order, etc. </div>
<div><br>
</div>
<div>The placement decisions itself can happen in a module that can be a separate service, and can be reused by different services, and it also needs to have a global vision of all the resources.  (Again all of this part of the scope of smart resource placement
 topic). </div>
<div><br>
</div>
<div>Thanks,</div>
<div>Yathi. </div>
<div><br>
</div>
<div><br>
</div>
<div>On 10/29/13, 2:14 PM, "Andrew Laski" <<a href="mailto:andrew.laski@rackspace.com">andrew.laski@rackspace.com</a>> wrote:</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>On 10/29/13 at 04:05pm, Mike Spreitzer wrote:</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>Alex Glikson <<a href="mailto:GLIKSON@il.ibm.com">GLIKSON@il.ibm.com</a>> wrote on 10/29/2013 03:37:41 AM:</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>1. I assume that the motivation for rack-level anti-affinity is to</div>
<div>survive a rack failure. Is this indeed the case?</div>
<div>This is a very interesting and important scenario, but I am curious</div>
<div>about your assumptions regarding all the other OpenStack resources</div>
<div>and services in this respect.</div>
</blockquote>
<div><br>
</div>
<div>Remember we are just starting on the roadmap.  Nova in Icehouse, holistic</div>
<div>later</div>
</blockquote>
</blockquote>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>2. What exactly do you mean by "network reachibility" between the</div>
<div>two groups? Remember that we are in Nova (at least for now), so we</div>
<div>don't have much visibility to the topology of the physical or</div>
<div>virtual networks. Do you have some concrete thoughts on how such</div>
<div>policy can be enforced, in presence of potentially complex</div>
<div>environment managed by Neutron?</div>
</blockquote>
<div><br>
</div>
<div>I am aiming for the holistic future, and Yathi copied that from an example</div>
<div>I drew with the holistic future in mind.  While we are only addressing</div>
<div>Nova, I think a network reachability policy is inapproprite.</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>3. The JSON somewhat reminds me the interface of Heat, and I would</div>
<div>assume that certain capabilities that would be required to implement</div>
<div>it would be similar too. What is the proposed approach to</div>
<div>'harmonize' between the two, in environments that include Heat? What</div>
<div>would be end-to-end flow? For example, who would do the</div>
<div>orchestration of individual provisioning steps? Would "create"</div>
<div>operation delegate back to Heat for that? Also, how other</div>
<div>relationships managed by Heat (e.g., links to storage and network)</div>
<div>would be incorporated in such an end-to-end scenario?</div>
</blockquote>
<div><br>
</div>
<div>You raised a few interesting issues.</div>
<div><br>
</div>
<div>1. Heat already has a way to specify resources, I do not see why we should</div>
<div>invent another.</div>
<div><br>
</div>
<div>2. Should Nova call Heat to do the orchestration?  I would like to see an</div>
<div>example where ordering is an issue.  IMHO, since OpenStack already has a</div>
<div>solution for creating resources in the right order, I do not see why we</div>
<div>should invent another.</div>
</blockquote>
<div><br>
</div>
<div>Having Nova call into Heat is backwards IMO.  If there are specific </div>
<div>pieces of information that Nova can expose, or API capabilities to help </div>
<div>with orchestration/placement that Heat or some other service would like </div>
<div>to use then let's look at that.  Nova has placement concerns that extend </div>
<div>to finding a capable hypervisor for the VM that someone would like to </div>
<div>boot, and then just slightly beyond.  If there are higher level </div>
<div>decisions to be made about placement decisions I think that belongs </div>
<div>outside of Nova, and then just tell Nova where to put it.</div>
<div><br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div><br>
</div>
<div>Thanks,</div>
<div>Mike</div>
</blockquote>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>_______________________________________________</div>
<div>OpenStack-dev mailing list</div>
<div><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></div>
<div><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></div>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div>_______________________________________________</div>
<div>OpenStack-dev mailing list</div>
<div><a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a></div>
<div><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></div>
<div><br>
</div>
</blockquote>
</body>
</html>