<div dir="ltr"><div class="gmail_extra">Hi Brandon!</div><div class="gmail_extra"><br></div><div class="gmail_extra">Per the meeting this morning, I seem to recall you were looking to have me elaborate on why the term 'load balancer' as used in your API proposal is significantly different from the term 'load balancer' as used in the glossary at: <a href="https://wiki.openstack.org/wiki/Neutron/LBaaS/Glossary">https://wiki.openstack.org/wiki/Neutron/LBaaS/Glossary</a></div>
<div class="gmail_extra"><br></div><div class="gmail_extra">As promised, here's my elaboration on that:</div><div class="gmail_extra"><br></div><div class="gmail_extra">The glossary above states: "<span style="color:rgb(51,51,51);font-family:'Arial Unicode MS',Arial,sans-serif;font-size:14px;line-height:20px">An object that represent a logical load balancer that may have multiple resources such as Vips, Pools, Members, etc.</span><span style="color:rgb(51,51,51);font-family:'Arial Unicode MS',Arial,sans-serif;font-size:14px;line-height:20px">Loadbalancer is a root object in the meaning described above." and references the diagram here: </span><font color="#333333" face="Arial Unicode MS, Arial, sans-serif"><span style="font-size:14.399999618530273px;line-height:20px"><a href="https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion#Loadbalancer_instance_solution">https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion#Loadbalancer_instance_solution</a></span></font></div>
<div class="gmail_extra"><font color="#333333" face="Arial Unicode MS, Arial, sans-serif"><span style="font-size:14.399999618530273px;line-height:20px"><br></span></font></div><div class="gmail_extra"><font color="#333333" face="Arial Unicode MS, Arial, sans-serif"><span style="font-size:14.399999618530273px;line-height:20px">On that diagram, it's clear that VIPs, & etc. are subordinate objects to a load balancer. What's more, attributes like 'protocol' and 'port' are not part of the load balancer object in that diagram (they're part of a 'VIP' in one proposed version, and part of a 'Listener' in the others).</span></font></div>
<div class="gmail_extra"><font color="#333333" face="Arial Unicode MS, Arial, sans-serif"><span style="font-size:14.399999618530273px;line-height:20px"><br></span></font></div><div class="gmail_extra"><font color="#333333" face="Arial Unicode MS, Arial, sans-serif"><span style="font-size:14.399999618530273px;line-height:20px">In your proposal, you state "</span></font><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap">only one port and one protocol per load balancer," and then later (on page 9 under "GET /vips") you show that a vip may have many load balancers associated with it. So clearly, "load balancer" the way you're using it is subordinate to a VIP. So in the glossary, it sounds like the object which has a single port and protocol associated with it that is subordinate to a VIP: A listener.</span></div>
<div class="gmail_extra"><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap"><br></span></div><div class="gmail_extra"><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap">Now, I don't really care if y'all decide to re-define "load balancer" from what is in the glossary so long as you do define it clearly in the proposal. (If we go with your proposal, it would then make sense to update the glossary accordingly.) Mostly, I'm just trying to avoid confusion because it's exactly these kinds of misunderstandings which have stymied discussion and progress in the past, eh.</span></div>
<div class="gmail_extra"><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap"><br></span></div><div class="gmail_extra"><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap">Also-- I can guess where the confusion comes from: I'm guessing most customers refer to "a service which listens on a tcp or udp port, understands a specific protocol, and forwards data from the connecting client to some back-end server which actually services the request" as a "load balancer." It's entirely possible that in the glossary and in previous discussions we've been mis-using the term (like we have with VIP). Personally, I suspect it's an overloaded term that in use in our industry means different things depending on context (and is probably often mis-used by people who don't understand what load balancing actually is). Again, I care less about what specific terms we decide on so long as we define them so that everyone can be on the same page and know what we're talking about. :)</span></div>
<div class="gmail_extra"><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap"><br></span></div><div class="gmail_extra"><span style="background-color:transparent;color:rgb(0,0,0);font-family:Arial;font-size:15px;white-space:pre-wrap">Stephen</span></div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 16, 2014 at 7:17 PM, Brandon Logan <span dir="ltr"><<a href="mailto:brandon.logan@rackspace.com" target="_blank">brandon.logan@rackspace.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><blockquote type="cite"><div dir="ltr"><div>
You say 'only one port and protocol per load balancer', yet
I don't know how this works. Could you define what a 'load
balancer' is in this case? (port and protocol are attributes
that I would associate with a TCP or UDP listener of some
kind.) Are you using 'load balancer' to mean 'listener' in
this case (contrary to previous discussion of this on this
list and the one defined here <a href="https://wiki.openstack.org/wiki/Neutron/LBaaS/Glossary#Loadbalancer" target="_blank">https://wiki.openstack.org/wiki/Neutron/<span class="">LBaaS</span>/Glossary#Loadbalancer</a>
)?<br>
</div>
</div>
</blockquote>
<br></div>
Yes, it could be considered as a Listener according to that
documentation. The way to have a "listener" using the same VIP but
listen on two different ports is something we call VIP sharing. You
would assign a VIP to one load balancer that uses one port, and then
assign that same VIP to another load balancer but that load balancer
is using a different port than the first one. How the backend
implements it is an implementation detail (redudant, I know). In
the case of HaProxy it would just add the second port to the same
config that the first load balancer was using. In other drivers it
might be different.</blockquote></div><br><br><br clear="all"><div><br></div>-- <br><span></span>Stephen Balukoff
<br>Blue Box Group, LLC
<br>(800)613-4305 x807
</div></div>