[openstack-dev] [Neutron][LBaaS] API proposal review thoughts
Eugene Nikanorov
enikanorov at mirantis.com
Sat May 10 09:30:32 UTC 2014
Hi Stephen,
Some comments on comments on comments:
On Fri, May 9, 2014 at 10:25 PM, Stephen Balukoff <sbalukoff at bluebox.net>wrote:
> Hi Eugene,
>
> This assumes that 'VIP' is an entity that can contain both an IPv4 address
> and an IPv6 address. This is how it is in the API proposal and
> corresponding object model that I suggested, but it is a slight
> re-definition of the term "virtual IP" as it's used in the rest of the
> industry. (And again, we're not yet in agreement that 'VIP' should actually
> contain two ip addresses like this.)
>
That seems a minor issue to me. May be we can just introduce a statement
that VIP has L2 endpoint first of all?
In my mind, the main reasons I would like to see the container object are:
>
>
> - It solves the colocation / apolcation (or affinity / anti-affinity)
> problem for VIPs in a way that is much more intuitive to understand and
> less confusing for users than either the "hints" included in my API, or
> something based off the nova blueprint for doing the same for virtual
> servers/containers. (Full disclosure: There probably would still be a need
> for some anti-affinity logic at the logical load balancer level as well,
> though at this point it would be an operator concern only and expressed to
> the user in the "flavor" of the logical load balancer object, and probably
> be associated with different billing strategies. "The user wants a
> dedicated physical load balancer? Then he should create one with this
> flavor, and note that it costs this much more...")
>
> In fact, that can be solved by scheduling, without letting user to control
that. Flavor Framework will be able to address that.
>
> - From my experience, users are already familiar with the concept of
> what a logical load balancer actually is (ie. something that resembles a
> physical or virtual appliance from their perspective). So this probably
> fits into their view of the world better.
>
> That might be so, but apparently it goes in opposite direction than
neutron in general (i.e. more abstraction)
>
> - It makes sense for "Load Balancer as a Service" to hand out logical
> load balancer objects. I think this will aid in a more intuitive
> understanding of the service for users who otherwise don't want to be
> concerned with operations.
> - This opens up the option for private cloud operators / providers to
> bill based on number of physical load balancers used (if the "logical load
> balancer" happens to coincide with physical load balancer appliances in
> their implementation) in a way that is going to be seen as "more fair" and
> "more predictable" to the user because the user has more control over it.
> And it seems to me this is accomplished without producing any undue burden
> on public cloud providers, those who don't bill this way, or those for whom
> the "logical load balancer" doesn't coincide with physical load balancer
> appliances.
>
> I don't see how 'loadbalancer' is better than 'VIP' here, other than being
a bit closer term to 'logical loadbalancer'.
>
> - Attaching a "flavor" attribute to a logical load balancer seems like
> a better idea than attaching it to the VIP. What if the user wants to
> change the flavor on which their VIP is deployed (ie. without changing IP
> addresses)? What if they want to do this for several VIPs at once? I can
> definitely see this happening in our customer base through the lifecycle of
> many of our customers' applications.
>
> I don't see any problems with above cases if VIP is the root object
>
> - Having flavors associated with load balancers and not VIPs also
> allows for operators to provide a lot more differing product offerings to
> the user in a way that is simple for the user to understand. For example:
> - "Flavor A" is the cheap load balancer option, deployed on a
> "shared" platform used by many tenants that has fewer guarantees around
> performance and costs X.
> - "Flavor B" is guaranteed to be deployed on "vendor Q's Super
> Special Product (tm)" but to keep down costs, may be shared with other
> tenants, though not among a single tenant's "load balancers" unless the
> tenant uses the same load balancer id when deploying their VIPs (ie. user
> has control of affinity among their own VIPs, but no control over whether
> affinity happens with other tenants). It may experience variable
> performance as a result, but has higher guarantees than the above and costs
> a little more.
> - "Flavor C" is guaranteed to be deployed on "vendor P's Even
> Better Super Special Product (tm)" and is also guaranteed not to be shared
> among tenants. This is essentially the "dedicated load balancer" option
> that gets you the best guaranteed performance, but costs a lot more than
> the above.
> - ...and so on.
>
> Right, that's how flavors are supposed to work, but that's again unrelated
to whether we make VIP or loadbalancer our root object.
>
> - A logical load balancer object is a great demarcation point <http://en.wikipedia.org/wiki/Demarcation_point> between
> operator concerns and user concerns. It seems likely that there will be an
> operator API created, and this will need to interface with the user API at
> some well-defined interface. (If you like, I can provide a couple specific
> operator concerns which are much more easily accomplished without
> disrupting the user experience using the demarc at the 'load balancer'
> instead of at the 'VIP'.)
>
> That might be fine to have loadbalancer for admin API, but we're
discussing tenant API right now.
For admin API 'loadbalancer' could be direct representation of a backend.
So what are the main arguments against having this container object? In
> answering this question, please keep in mind:
>
>
> - If you say "implementation details," please just go ahead and be
> more specific because that's what I'm going to ask you to do anyway. If
> "implementation details" is the concern, please follow this with a
> hypothetical or concrete example as to what kinds of implementations this
> object would invalidate simply by existing in the model, or what
> restrictions this object introduces.
>
> I personally never used this as an argument.
>
> -
> - If you say "I don't see a need" then you're really just asking
> people to come up with a use case that is more easily solved using the
> logical load balancer object rather than the VIP without the load balancer.
>
> Right, there could be cases that more 'easily' solved by loadbalancer
rather then other methods. Like aforementioned collocation problem.
But that's where project-wise design considerations apply. It's better if
we go with projects direction, which is going to address those cases by
other methods rather than by direct user control.
Thanks,
Eugene.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140510/95dc9b32/attachment.html>
More information about the OpenStack-dev
mailing list