<div dir="ltr"><div>Hi all,</div><div><br></div><div>There is a small but important part of the autoscale design described in <a href="https://wiki.openstack.org/wiki/Heat/AutoScaling">https://wiki.openstack.org/wiki/Heat/AutoScaling</a> that we'd like to discuss to make sure everybody is on the same page. Namely, the relationship between an autoscaling group and a load balancer.</div>
<div><br></div><div>In the current system, a group has references to load balancers, and signals them when the group changes, sending it the list of servers in the group. This creates an implicit interface between groups and load balancers that we didn't model well, and is awkward for third-party load balancers.</div>
<div><br></div><div>In the new design, the suggestion is to have an intermediate resource which models the relationship between the load balancer and its members. This resource would be instantiated every time an instance is added (or removed) and would notify the load balancer. There are some more details here: <a href="https://wiki.openstack.org/wiki/Heat/AutoScaling#Load_Balancers">https://wiki.openstack.org/wiki/Heat/AutoScaling#Load_Balancers</a>.</div>
<div><br></div><div>Pros:</div><div> * Remove load balancer specific code from the autoscale implementation.</div><div> * Map nicely to the neutron lbaas code, which has a 'add-member' API.</div><div> * Provide a more generic model for notifying systems of servers allocation.</div>
<div><br></div><div>Cons:</div><div> * Make the template a bit more verbose.</div><div><br></div><div>We have some ideas on how to alleviate the verbosity concern, for example by creating a LoadBalancerServer resource which would embed a Server and a LoadBalancerMember resource. But the template being Heat's main UI, it's important to get a good story here.</div>
<div><br></div><div>Thoughts?</div><div><br></div><div>-- </div><div>Thomas</div></div>