<div dir="ltr">Hi Tim,<div><br></div><div>Thank you for the comprehensive information.</div><div><br></div><div>From Murano standpoint each OpenStack region is a separate Heat endpoint. So once Murano has a decision about placement it will just use proper Heat endpoint to initiate stack creation process.</div><div><br></div><div>Murano does not expect that Congress will do actual placement. Murano has a way to do this by itself as it just pushes stack template to the Heat.</div><div><br></div><div>As I see in your reply there is a clear way to define such policies which is really great. It sounds like there is nothing we need to change in the Congress itself which is also great.</div><div>I think we have explicit Congress call in Murano, at least it was discussed in Paris. I will check if we have someone in Murano team who can draft a spec for this feature and use case in Murano. Sounds like we have enough information for that.</div><div><br></div><div>Once again, thank you for the information. </div><div><br></div><div>Regards,</div><div>Gosha </div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 6, 2015 at 9:13 AM, Tim Hinrichs <span dir="ltr"><<a href="mailto:tim@styra.com" target="_blank">tim@styra.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">Sorry--hit the Send button by accident.</span><br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><br>Hi Gosha,<br><br>This definitely sounds like an interesting use case for Congress. Keep in mind that Congress doesn't itself do placement (though we did some experimentation with that [1][2]). Some thoughts.<div><br></div><div>1. Let's suppose Murano/Congress/etc. allow us to figure out which app should be deployed in which region. Is there a separate Nova for each region that can do the actual scheduling? If not, how would Murano force the app to be deployed in the proper region?</div><div><br></div></span><div>2. Let's assume Murano can force the app to the proper region. One option for using Congress to compute the proper region would be to write policy statements that enumerate the permitted regions for a given application, and then ask Congress for one of those regions. For your suggested policies above, we could write the following datalog statements</div></div><div dir="ltr"><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"></span></div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><div dir="ltr"><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">"Solaris is required then select Region_Solaris. "</span><br></div><div><br></div></div></span><div dir="ltr"><div>permitted_region(app, "region_solaris") :- </div><div> murano:app_requires(app, "solaris")</div></div></blockquote><div><br></div><div>A. If Solaris is required then select region_solaris</div><div><br></div><div>permitted_region(app, "region_solaris") :-</div><div> murano:app_requires(app, "solaris") </div><div> </div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">B. If Solaris is required then select less loaded regions from [Region_Solaris1, Region_Solaris2]</span><br></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">This one requires additional expressiveness in the language than we currently have (because it asks to minimize over several options). But it would be something like...</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">best_region(app, min(y)) :-</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"> permitted_region(app, x),</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"> ceilometer:region_load(x, y) </span></div><span class=""><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"> </span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><br></div><div>[1] Design doc: <a href="https://docs.google.com/document/d/1ksDilJYXV-5AXWON8PLMedDKr9NpS8VbT0jIy_MIEtI/edit" target="_blank">https://docs.google.com/document/d/1ksDilJYXV-5AXWON8PLMedDKr9NpS8VbT0jIy_MIEtI/edit</a><br><div>[2] Slides: <a href="https://drive.google.com/a/styra.com/file/d/0ByDz-eYOtswScUFUc1ZrVVhmQlk/view" target="_blank">https://drive.google.com/a/styra.com/file/d/0ByDz-eYOtswScUFUc1ZrVVhmQlk/view</a></div><div><br></div></div></div></div><br></blockquote><div><br></div></span><span class="HOEnZb"><font color="#888888"><div>Tim</div></font></span><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div dir="ltr">On Thu, Jul 2, 2015 at 7:36 AM Georgy Okrokvertskhov <<a href="mailto:gokrokvertskhov@mirantis.com" target="_blank">gokrokvertskhov@mirantis.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>All applications are monolithic so they don't need to be split over multiple regions. It is necessary to have an ability to select a region based on requirements and for now I don't care how they are placed inside the region. </div><div>I am not sure how region's capabilities will be stored and actually this is a reason why I am asking if Congress will solve this. I can imagine a policy which says if Solaris is required then select Region_Solaris. Or more complex If Solaris is required then select less loaded regions from [Region_Solaris1, Region_Solaris2]</div><div><br></div><div>In this use case Murano will deploy complex environment which consist of multiple atomic applications with different requirements, so deployment will be across clouds but for whole environment. Imagine IBM MQ on AIX and PowerPC + Oracle DB on Solaris + Microsoft IIS on Windows 2012 & HyperV + WebSphere on RHEL & KVM.</div><div><br></div><div>Thanks</div><div>Gosha</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 1, 2015 at 10:17 PM, <span dir="ltr"><<a href="mailto:ruby.krishnaswamy@orange.com" target="_blank">ruby.krishnaswamy@orange.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="FR" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black">Hi<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black">Did you mean placement at “two levels”. First to select the region and then within each region, Nova scheduler will place on hosts.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black">But where will the capabilities of each region (based on which placement decision will be made) be stored? Will each region be queried to obtain this
information?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black">Will a single application need to be placed (split across) different regions?<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black">Ruby<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">De :</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Georgy Okrokvertskhov [mailto:<a href="mailto:gokrokvertskhov@mirantis.com" target="_blank">gokrokvertskhov@mirantis.com</a>]
<br>
<b>Envoyé :</b> mercredi 1 juillet 2015 21:26<br>
<b>À :</b> OpenStack Development Mailing List<br>
<b>Objet :</b> [openstack-dev] [Murano][Congress] Application placement use case<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div><span>
<p style="margin:0cm;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Hi,</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0cm;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">I would like to share with the community one of the real use case which we saw while working with one of the Murano customer and ask an advice.
This customer has multiple OpenStack regions which are serving for different hypervisors. The reason for that is Oracle OpenStack which is used to work with Solaris on top of SPARC architecture. There are other hypervisors KVM and VMWare which are used.</span><u></u><u></u></p>
<p style="margin:0cm;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">There are multiple applications which should be placed to different regions based on their requirements (OS, Hypervisor, networking restrictions).
As there is no single cloud, Nova scheduler can’t be used (at least in my understanding) so we need to have some placement policies to put applications properly. And obviously we don’t want to ask end user about the placement.</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0cm;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Right now in Murano we can do this by:</span><u></u><u></u></p>
</span><p style="margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;vertical-align:baseline">
<u></u><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black"><span>1.<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Hardcoding placement inside application. This approach will work and does not require any significant change in Murano. But there are obvious limitations
like if we have two options for placement which one should be hardcoded. <u></u><u></u></span></p>
<p style="margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;vertical-align:baseline">
<u></u><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black"><span>2.<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Create special placement scheduler application\class in Murano which will use some logic to place applications properly. This is better approach as nothing
is hard coded in applications except their requirements. Applications will just have a workflow to ask placement scheduler for a decision and then will just use this decision.<u></u><u></u></span></p>
<p style="margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;vertical-align:baseline">
<u></u><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black"><span>3.<span style="font:7.0pt "Times New Roman"">
</span></span></span><u></u><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Use some external tool or OpenStack component for placement decision. This is a very generic use case which we saw multiple times. Tools like CIRBA are
often used for this. Murano will need an interface to ask these tools. I think about this solution as an extension of 2.<u></u><u></u></span></p><span>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0cm;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">I am aware that Murano is working on integration with Congress and I am looking for an opportunity here to address real use case of Murano
usage in real customer environment. It will be great to know if OpenStack can offer something here without involving 3rd party tools. I suspect that this is a good use case for Congress, but I would like to see how it might be implemented.
</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p style="margin:0cm;margin-bottom:.0001pt"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Thanks</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial","sans-serif";color:black">Gosha</span><br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">-- <u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="color:#999999;background:white">Georgy Okrokvertskhov<br>
Architect,<br>
</span><span style="font-family:"Arial","sans-serif";color:#999999;background:white">OpenStack Platform Products,</span><span style="color:#999999;background:white"><br>
Mirantis</span><span style="color:#999999"><br>
<a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com</a><br>
Tel. <a href="tel:%2B1%20650%20963%209828" value="+16509639828" target="_blank">+1 650 963 9828</a><br>
Mob. <a href="tel:%2B1%20650%20996%203284" value="+16509963284" target="_blank">+1 650 996 3284</a></span><u></u><u></u></p>
</div>
</div>
</span></div>
</div>
<pre>_________________________________________________________________________________________________________________________
Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.
</pre></div>
<br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><font color="#999999"><span style="background-color:rgb(255,255,255)">Georgy Okrokvertskhov<br>
Architect,<br><span style="font-family:arial;font-size:small">OpenStack Platform Products,</span><br>
Mirantis</span><br>
<a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com</a><br>
Tel. <a href="tel:%2B1%20650%20963%209828" value="+16509639828" target="_blank">+1 650 963 9828</a><br>
Mob. <a href="tel:%2B1%20650%20996%203284" value="+16509963284" target="_blank">+1 650 996 3284</a></font><br></div></div>
</div>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div></blockquote></div></div></div></div>
<br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><font color="#999999"><span style="background-color:rgb(255,255,255)">Georgy Okrokvertskhov<br>
Architect,<br><span style="font-family:arial;font-size:small">OpenStack Platform Products,</span><br>
Mirantis</span><br>
<a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com</a><br>
Tel. +1 650 963 9828<br>
Mob. +1 650 996 3284</font><br></div></div>
</div>