<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; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>I pretty much completely agree with Stephen here, other than believing we should do N:1 on VIPs (item 2 in your list) from the start. We
<span style="font-weight: bold; ">know</span> we're doing IPv6 this way, and I'd rather not put off support for it at the controller/driver/whatever layer just because the underlying infrastructure isn't there yet. I'd like to be 100% ready when it is, not
 wait until the network is ready and then do a refactor.</div>
<div><br>
</div>
<div>
<div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>--Adam</div>
<div><br>
</div>
</div>
<div><a href="https://keybase.io/rm_you">https://keybase.io/rm_you</a></div>
<div><br>
</div>
</div>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Stephen Balukoff <<a href="mailto:sbalukoff@bluebox.net">sbalukoff@bluebox.net</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Monday, September 15, 2014 1:33 PM<br>
<span style="font-weight:bold">To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [Octavia] Responsibilities for controller drivers<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>
<div>
<div dir="ltr">Hi Brandon!
<div><br>
</div>
<div>My responses in-line:</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Sep 12, 2014 at 11:27 AM, 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
IN IRC the topic came up about supporting many-to-many load balancers to<br>
amphorae.  I believe a consensus was made that allowing only one-to-many<br>
load balancers to amphorae would be the first step forward, and<br>
re-evaluate later, since colocation and apolocation will need to work<br>
(which brings up another topic, defining what it actually means to be<br>
colocated: On the same amphorae, on the same amphorae host, on the same<br>
cell/cluster, on the same data center/availability zone. That should be<br>
something we discuss later, but not right now).<br>
<br>
I am fine with that decisions, but Doug brought up a good point that<br>
this could very well just be a decision for the controller driver and<br>
Octavia shouldn't mandate this for all drivers.  So I think we need to<br>
clearly define what decisions are the responsibility of the controller<br>
driver versus what decisions are mandated by Octavia's construct.<br>
</blockquote>
<div><br>
</div>
<div>In my mind, the only thing dictated by the controller to the driver here would be things related to colocation / apolocation. So in order to fully have that discussion here, we first need to have a conversation about what these things actually mean in
 the context of Octavia and/or get specific requirements from operators here.  The reference driver (ie. haproxy amphora) will of course have to follow a given behavior here as well, and there's the possibility that even if we don't dictate behavior in one
 way or another, operators and users may come to expect the behavior of the reference driver here to become the defacto requirements.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Items I can come up with off the top of my head:<br>
<br>
1) LB:Amphora - M:N vs 1:N<br>
</blockquote>
<div><br>
</div>
<div>My opinion:  For simplicity, first revision should be 1:N, but leave open the possibility of M:N at a later date, depending on what people require. That is to say, we'll only do 1:N at first so we can have simpler scheduling algorithms for now, but let's
 not paint ourselves into a corner in other portions of the code by assuming there will only ever be one LB on an amphora.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2) VIPs:LB - M:N vs 1:N<br>
</blockquote>
<div><br>
</div>
<div>So, I would revise that to be N:1 or 1:1. I don't think we'll ever want to support a case where multiple LBs share the same VIP. (Multiple amphorae per VIP, yes... but not multiple LBs per VIP. LBs are logical constructs that also provide for good separation
 of concerns, particularly around security.)</div>
<div><br>
</div>
<div>The most solid use case for N:1 that I've heard is the IPv6 use case, where a user wants to expose the exact same services over IPv4 and IPv6, and therefore it makes sense to be able to have multiple VIPs per load balancer. (In fact, I'm not aware of other
 use cases here that hold any water.) Having said this, we're quite a ways from IPv6 being ready for use in the underlying networking infrastructure.  So...  again, I would say let's go with 1:1 for now to make things simple for scheduling, but not paint ourselves
 into a corner here architecturally in other areas of the code by assuming there will only ever be one VIP per LB.</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3) Pool:HMs - 1:N vs 1:1<br>
</blockquote>
<div><br>
</div>
<div>Does anyone have a solid use case for having more than one health monitor per pool?  (And how do you resolve conflicts in health monitor check results?)  I can't think of one, so 1:1 has my vote here.</div>
<div><br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I'm sure there are others.  I'm sure each one will need to be evaluated<br>
on a case-by-case basis.  We will be walking a fine line between<br>
flexibility and complexity.  We just need to define how far over that<br>
line and in which direction we are willing to go.<br>
<br>
Thanks,<br>
Brandon<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>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<span></span>Stephen Balukoff <br>
Blue Box Group, LLC <br>
(800)613-4305 x807 </div>
</div>
</div>
</div>
</blockquote>
</span>
</body>
</html>