<div dir="ltr"><div class="gmail_default" style="font-size:small">Hi,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I believe that we restricted to have a single solution only: Murano is an Application Catalog now, and Catalog is the thing where multiple similar solutions can be present, and the user makes the final decision on what to pick for their environments. </div>
<div class="gmail_default" style="font-size:small">So, I would suggest to bundle a solution based on OS::Neutron::LoadBalancer - and have a blueprint describing that homemade HAProxy-based solution - someone will implement it sooner or later, as the demand for such a service clearly exists (and will definitely increase when we introduce the ability to share a single VM for multiple applications).</div>
</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><font>--<br></font><div dir="ltr"><font>Regards,<br>Alexander Tivelkov</font></div></div></div>
<br><br><div class="gmail_quote">2013/11/15 Serg Melikyan <span dir="ltr"><<a href="mailto:smelikyan@mirantis.com" target="_blank">smelikyan@mirantis.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div>Murano has several applications which support scaling via load-balancing, this applications (Internet Information Services Web Farm, <a href="http://ASP.NET" target="_blank">ASP.NET</a> Application Web Farm) currently are based on <a href="http://launchpad.net/heat" target="_blank">Heat</a>, particularly on resource called <a href="http://docs.openstack.org/developer/heat/template_guide/cfn.html#AWS::ElasticLoadBalancing::LoadBalancer" target="_blank">AWS::ElasticLoadBalancing::LoadBalancer</a>, that currently <a href="http://docs.openstack.org/developer/heat/template_guide/cfn.html#AWS::ElasticLoadBalancing::LoadBalancer-props" target="_blank">does not support</a> specification of any network related parameters.</div>



<div><br></div><div>Inability to specify network related params leads to incorrect behavior during deployment in tenants with advanced Quantum deployment configuration, like Per-tenant Routers with Private Networks and this makes deployment of our <i>* Web Farm</i> applications to fail.</div>



</div><div><br></div><div>We need to resolve issues with our <i>* Web Farm</i>, and make this applications to be reference implementation for elastic applications in Murano. <br></div><div><br></div><div>This issue may be resolved in three ways: via extending configuration capabilities of <a href="http://docs.openstack.org/developer/heat/template_guide/cfn.html#AWS::ElasticLoadBalancing::LoadBalancer" target="_blank">AWS::ElasticLoadBalancing::LoadBalancer</a>, using another implementation of load balancing in Heat - <a href="http://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Neutron::LoadBalancer" target="_blank">OS::Neutron::LoadBalancer</a> or via implementing own load balancing application (that going to balance other apllications), for example based on <a href="http://haproxy.1wt.eu/" target="_blank">HAProxy</a> (as all previous ones). </div>



<div><span style="color:rgb(51,51,51);font-family:arial,sans-serif;font-size:13px;line-height:20px"><br></span></div><div><span style="color:rgb(51,51,51);font-family:arial,sans-serif;font-size:13px;line-height:20px">Please, respond with your thoughts on the question: "<i>Which implementation we should use to resolve issue with our Web Farm applications and why?</i>". Below you can find more details about each of the options.</span></div>



<div><br></div><div><b>AWS::ElasticLoadBalancing::LoadBalancer</b></div><div><br></div><div>AWS::ElasticLoadBalancing::LoadBalancer is Amazon Cloud Formation compatible resource that implements load balancer via <a href="https://github.com/openstack/heat/blob/master/heat/engine/resources/loadbalancer.py#L24" target="_blank">hard-coded nested stack</a> that deploys and configures HAProxy. This resource requires specific image with <a href="https://github.com/openstack/heat-cfntools" target="_blank">CFN Tools</a> and specific name <i>F17-x86_64-cfntools</i> available in Glance. It's look like we miss implementation of only one property in this resource - Subnets.<br>



</div><div><br></div><div><b>OS::Neutron::LoadBalancer</b><br></div><div><br></div><div><div><a href="http://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Neutron::LoadBalancer" target="_blank">OS::Neutron::LoadBalancer</a> is another Heat resource that implements load balancer. This resource is based on Load Balancer as a Service feature in <a href="https://wiki.openstack.org/wiki/Neutron/LBaaS" target="_blank">Neutron</a>. OS::Neutron::LoadBalancer is much more configurable and sophisticated but underlying implementation makes usage of this resource quite complex.</div>



<div>LBaaS is a set of services installed and configured as a part of Neutron. Fuel does not support LBaaS; Devstack has support for LBaaS, but LBaaS not installed by default with Neutron. </div></div><div><br></div><div>



<b>Own, Based on HAProxy</b><br></div><div><br></div><div><div>We may implement load-balancer as a regular application in Murano using <a href="http://haproxy.1wt.eu/" target="_blank">HAProxy</a>. This service may look like our Active Directory application with almost same user-expirience. User may create load-balancer inside of the environment and join any web-application (with any number of instances) directly to load-balancer.</div>



<div>Load-balancer may be also implemented on Conductor workflows level, this implementation strategy not going to change user-experience (in fact we changing only underlying implementation details for our * Web Farm applications, without introducing new ones).</div>
<span class="HOEnZb"><font color="#888888">


</font></span></div><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br><div dir="ltr"><div>Serg Melikyan, Senior Software Engineer at Mirantis, Inc.<br></div><div><a href="http://mirantis.com/" target="_blank">http://mirantis.com</a> | <a href="mailto:smelikyan@mirantis.com" target="_blank">smelikyan@mirantis.com</a><br>



<div></div></div></div>
</font></span></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</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><br>
<br></blockquote></div><br></div>