Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-17 Thread Eugene Nikanorov
Folks,

Initial implementation is here: https://review.openstack.org/#/c/105982/
It's pretty much complete (in terms of code parts) but may require some
adjustments and of course fixes.

I'm working on the client to test this end-to-end.

Thanks,
Eugene.

P.S. Almost got it under 1k lines!



On Thu, Jul 17, 2014 at 7:36 AM, Stephen Balukoff 
wrote:

> Hi Salvatore!
>
> Thank you for reading through my book-length e-mail and responding to all
> my points!
>
> Unfortunately, I have more responses for you, inline:
>
> On Wed, Jul 16, 2014 at 4:22 PM, Salvatore Orlando 
> wrote:
>
>> Hi Stephen,
>>
>> Thanks for your exhaustive comments!
>>
>
> I'm always happy to exhaust others with my comments. ;)
>
>
>> I think your points are true and valid for most cloud operators; besides
>> the first all the point you provided indeed pertain operators and vendors.
>> However you can't prove, I think, the opposite - that is to say that no
>> cloud operator will find multi-service flavors useful. At the end of the
>> day Openstack is always about choice - in this case the choice of having
>> flavours spanning services or flavours limited to a single service.
>> This discussion however will just end up slowly drifting into the realm
>> of the theoretical and hypotethical and therefore won't bring anything good
>> to our cause. Who know, in a few post we might just end up calling godwin's
>> law!
>>
>
> That's certainly true.  But would you be willing to agree that both the
> model and logic behind single-service_type flavors is likely to be simpler
> to implement, troubleshoot, and maintain than multi-service_type flavors?
>
> If you agree, then I would say: Let's go with single-service_type flavors
> for now so that we can actually get an implementation done by Juno (and
> thus free up development that is currently being blocked by lack of
> flavors), and leave the more complicated multi-service_type flavors for
> some later date when there's a more obvious need for them.
>
> For what it's worth, I'm not against multi-service_type flavors if someone
> can come up with a good usage scenario that is best solved using the same.
> But I think it's more complication than we want or need right now, and
> shooting for it now is likely to ensure we wouldn't get flavors in time for
> Juno.
>
>
>
>>   There are other considerations which could be made, but since they're
 dependent on features which do not yet exist (NFV, service insertion,
 chaining and steering) I think there is no point in arguing over it.

>>>
>>> Agreed. Though, I don't think single-service flavors paint us into a
>>> corner here at all. Again, things get complicated enough when it comes to
>>> service insertion, chaining, steering, etc. that what we'll really need at
>>> that point is actual orchestration. Flavors alone will not solve these
>>> problems, and orchestration can work with many single-service flavors to
>>> provide the illusion of multi-service flavors.
>>>
>>
>> Don't take it the wrong way - but this is what I mean by "theoretical and
>> hypothetical". I agree with you. I think that's totally possible. But there
>> are so many pieces which are yet missing from the puzzle that this
>> discussion is probably worthless. Anyway, I started it, and I'm the one to
>> be punished for it!
>>
>
> Hah! Indeed. Ok, I'll stop speculating down that path for now, eh. ;)
>
>
>>  In conclusion I think the idea makes sense, and is a minor twist in the
 current design which should not either make the feature too complex neither
 prevent any other use case for which the flavours are being conceived. For
 the very same reason however, it is worth noting that this is surely not an
 aspect which will cause me or somebody else to put a veto on this work 
 item.

>>>
>>> I don't think this is a minor twist in the current design, actually:
>>> * We'll have to deal with cases like the above where no valid service
>>> profiles can be found for a given kind of flavor (which we can avoid
>>> entirely if a flavor can have service profiles valid for only one kind of
>>> service).
>>>
>>
>> Point taken, but does not require a major change to the design since a
>> service flavour like this should probably be caught by a validation
>> routine. Still you'd need more pervasive validation in different points of
>> the API.
>>
>
> ... which sounds like significantly more complication to me. But at this
> point, we're arguing over what a "minor twist" is, which is not likely to
> lead to anywhere useful...
>
>
>>  * When and if tags/capabilities/extensions get introduced, we would
>>> need to provide an additional capabilities list on the service profiles in
>>> order to be able to select which service profiles provide the capabilities
>>> requested.
>>>
>>
>> Might be... but I don't see how that would be worse with multiple service
>> types, especially if profiles are grouped by type.
>>
>
> Presumably, with single-service_type flavors, all service

Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-16 Thread Stephen Balukoff
Hi Salvatore!

Thank you for reading through my book-length e-mail and responding to all
my points!

Unfortunately, I have more responses for you, inline:

On Wed, Jul 16, 2014 at 4:22 PM, Salvatore Orlando 
wrote:

> Hi Stephen,
>
> Thanks for your exhaustive comments!
>

I'm always happy to exhaust others with my comments. ;)


> I think your points are true and valid for most cloud operators; besides
> the first all the point you provided indeed pertain operators and vendors.
> However you can't prove, I think, the opposite - that is to say that no
> cloud operator will find multi-service flavors useful. At the end of the
> day Openstack is always about choice - in this case the choice of having
> flavours spanning services or flavours limited to a single service.
> This discussion however will just end up slowly drifting into the realm of
> the theoretical and hypotethical and therefore won't bring anything good to
> our cause. Who know, in a few post we might just end up calling godwin's
> law!
>

That's certainly true.  But would you be willing to agree that both the
model and logic behind single-service_type flavors is likely to be simpler
to implement, troubleshoot, and maintain than multi-service_type flavors?

If you agree, then I would say: Let's go with single-service_type flavors
for now so that we can actually get an implementation done by Juno (and
thus free up development that is currently being blocked by lack of
flavors), and leave the more complicated multi-service_type flavors for
some later date when there's a more obvious need for them.

For what it's worth, I'm not against multi-service_type flavors if someone
can come up with a good usage scenario that is best solved using the same.
But I think it's more complication than we want or need right now, and
shooting for it now is likely to ensure we wouldn't get flavors in time for
Juno.



>  There are other considerations which could be made, but since they're
>>> dependent on features which do not yet exist (NFV, service insertion,
>>> chaining and steering) I think there is no point in arguing over it.
>>>
>>
>> Agreed. Though, I don't think single-service flavors paint us into a
>> corner here at all. Again, things get complicated enough when it comes to
>> service insertion, chaining, steering, etc. that what we'll really need at
>> that point is actual orchestration. Flavors alone will not solve these
>> problems, and orchestration can work with many single-service flavors to
>> provide the illusion of multi-service flavors.
>>
>
> Don't take it the wrong way - but this is what I mean by "theoretical and
> hypothetical". I agree with you. I think that's totally possible. But there
> are so many pieces which are yet missing from the puzzle that this
> discussion is probably worthless. Anyway, I started it, and I'm the one to
> be punished for it!
>

Hah! Indeed. Ok, I'll stop speculating down that path for now, eh. ;)


>  In conclusion I think the idea makes sense, and is a minor twist in the
>>> current design which should not either make the feature too complex neither
>>> prevent any other use case for which the flavours are being conceived. For
>>> the very same reason however, it is worth noting that this is surely not an
>>> aspect which will cause me or somebody else to put a veto on this work item.
>>>
>>
>> I don't think this is a minor twist in the current design, actually:
>> * We'll have to deal with cases like the above where no valid service
>> profiles can be found for a given kind of flavor (which we can avoid
>> entirely if a flavor can have service profiles valid for only one kind of
>> service).
>>
>
> Point taken, but does not require a major change to the design since a
> service flavour like this should probably be caught by a validation
> routine. Still you'd need more pervasive validation in different points of
> the API.
>

... which sounds like significantly more complication to me. But at this
point, we're arguing over what a "minor twist" is, which is not likely to
lead to anywhere useful...


>  * When and if tags/capabilities/extensions get introduced, we would need
>> to provide an additional capabilities list on the service profiles in order
>> to be able to select which service profiles provide the capabilities
>> requested.
>>
>
> Might be... but I don't see how that would be worse with multiple service
> types, especially if profiles are grouped by type.
>

Presumably, with single-service_type flavors, all service profiles
associated with the flavor should be capable of providing all the features
advertised as being provided by the flavor (first in the 'description' and
possibly later programmatically via an extensions list). This means we
don't have to check to see whether a service profile associated with the
flavor can provide for all the extensions advertised in the flavor
description because by creating the association, the operator is implying
it can.


>  * The above point makes things muc

Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-16 Thread Salvatore Orlando
Hi Stephen,

Thanks for your exhaustive comments!
Some more replies from me inline.

Have a good evening,
Salvatore


On 16 July 2014 00:05, Stephen Balukoff  wrote:

> Hi Salvatore and Eugene,
>
> Responses inline:
>
> On Tue, Jul 15, 2014 at 12:59 PM, Salvatore Orlando 
> wrote:
>
>> I think I've provided some examples in the review.
>>
>
> I was hoping for specific examples. The discussion I've seen so far has
> been vague enough that it's difficult to see what people mean. It's also
> possible you gave specific examples but these were buried in comments on
> previous revisions (one of my biggest gripes with the way Gerrit works. :P
> ) Could you please give a specific example of what you mean, as well as how
> it simplifies the user experience?
>
> However, the point is mostly to simplify usage from a user perspective -
>> allowing consumers of the neutron API to use the same flavour object for
>> multiple services.
>>
>
> Actually, I would argue the having a single flavor valid for several
> different services complicates the user experience (and vastly complicates
> the operator experience). This is because:
>
> * Flavors are how Operators will provide different service levels, or
> different feature sets for similar kinds of service. Users interested in
> paying for those services are likely to be more confused if a single flavor
> lists features for several different kinds of service.
> * Billing becomes more incomprehensible when the same flavor is used for
> multiple kinds of service. Users and Operators should not expect to pay the
> same rate for a "Gold" FWaaS instance and "Gold" VPNaaS instance, so why
> complicate things by putting them under the same flavor?
> * Because of the above concerns, it's likely that Operators will only
> deploy service profiles in a flavor for a single type of service anyway.
> But from the user's perspective, it's not apparent when looking at the list
> of flavors, which are valid for which kinds of service. What if a user
> tries to deploy a LBaaS service using a flavor that only has FWaaS service
> profiles associated with it? Presumably, the system must respond with an
> error indicating that no valid service profiles could be found for that
> service in that flavor. But this isn't very helpful to the user and is
> likely to lead to increased support load for the Operator who will need to
> explain this.
> * A single-service flavor is going to be inherently easier to understand
> than a multi-service flavor.
> * Single-service flavors do not preclude the ability for vendors to have
> multi-purpose appliances serve multiple roles in an OpenStack cloud.
>

I think your points are true and valid for most cloud operators; besides
the first all the point you provided indeed pertain operators and vendors.
However you can't prove, I think, the opposite - that is to say that no
cloud operator will find multi-service flavors useful. At the end of the
day Openstack is always about choice - in this case the choice of having
flavours spanning services or flavours limited to a single service.
This discussion however will just end up slowly drifting into the realm of
the theoretical and hypotethical and therefore won't bring anything good to
our cause. Who know, in a few post we might just end up calling godwin's
law!



>
>
>> There are other considerations which could be made, but since they're
>> dependent on features which do not yet exist (NFV, service insertion,
>> chaining and steering) I think there is no point in arguing over it.
>>
>
> Agreed. Though, I don't think single-service flavors paint us into a
> corner here at all. Again, things get complicated enough when it comes to
> service insertion, chaining, steering, etc. that what we'll really need at
> that point is actual orchestration. Flavors alone will not solve these
> problems, and orchestration can work with many single-service flavors to
> provide the illusion of multi-service flavors.
>

Don't take it the wrong way - but this is what I mean by "theoretical and
hypothetical". I agree with you. I think that's totally possible. But there
are so many pieces which are yet missing from the puzzle that this
discussion is probably worthless. Anyway, I started it, and I'm the one to
be punished for it!


>
>
>> In conclusion I think the idea makes sense, and is a minor twist in the
>> current design which should not either make the feature too complex neither
>> prevent any other use case for which the flavours are being conceived. For
>> the very same reason however, it is worth noting that this is surely not an
>> aspect which will cause me or somebody else to put a veto on this work item.
>>
>
> I don't think this is a minor twist in the current design, actually:
> * We'll have to deal with cases like the above where no valid service
> profiles can be found for a given kind of flavor (which we can avoid
> entirely if a flavor can have service profiles valid for only one kind of
> service).
>

Point taken, bu

Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-16 Thread Sumit Naiksatam
To the earlier question on whether we had defined what we wanted to
solve with the flavors framework, a high level requirement was
captured in the following approved spec for advanced services:
https://review.openstack.org/#/c/92200

On Wed, Jul 16, 2014 at 5:18 AM, Eugene Nikanorov
 wrote:
> Some comments inline:
>
>>
>> Agreed-- I think we need to more fully flesh out how extension list / tags
>> should work here before we implement it. But this doesn't prevent us from
>> rolling forward with a "version 1" of flavors so that we can start to use
>> some of the benefits of having flavors (like the ability to use multiple
>> service profiles with a single driver/provider, or multiple service profiles
>> for a single kind of service).
>
> Agree here.
>
>>
>>
>> Yes, I think there are many benefits we can get out of the flavor
>> framework without having to have an extensions list / tags at this revision.
>> But I'm curious: Did we ever define what we were actually trying to solve
>> with flavors?  Maybe that's the reason the discussion on this has been all
>> of the place: People are probably making assumptions about the problem we're
>> trying to solve and we need to get on the same page about this.
>
>
> Yes, we did!
>  The original problem has several aspects aspects:
> 1) providing users with some information about what service implementation
> they get (capabilities)
> 2) providing users with ability to specify (choose, actually) some
> implementation details that don't relate to a logical configuration
> (capacity, insertion mode, HA mode, resiliency, security standards, etc)
> 3) providing operators a way to setup different modes of one driver
> 4) providing operators to seamlessly change drivers backing up existing
> logical configurations (now it's not so easy to do because logical config is
> tightly coupled with provider/driver)
>
> The proposal we're discussing right is mostly covering points (2), (3) and
> (4) which is already a good thing.
> So for now I'd propose to put 'information about service implementation' in
> the description to cover (1)
>
> I'm currently implementing the proposal (API and DB parts, no integration
> with services yet)
>
>
> Thanks,
> Eugene.
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-16 Thread Eugene Nikanorov
Some comments inline:


> Agreed-- I think we need to more fully flesh out how extension list / tags
> should work here before we implement it. But this doesn't prevent us from
> rolling forward with a "version 1" of flavors so that we can start to use
> some of the benefits of having flavors (like the ability to use multiple
> service profiles with a single driver/provider, or multiple service
> profiles for a single kind of service).
>
Agree here.


>
> Yes, I think there are many benefits we can get out of the flavor
> framework without having to have an extensions list / tags at this
> revision. But I'm curious: Did we ever define what we were actually trying
> to solve with flavors?  Maybe that's the reason the discussion on this has
> been all of the place: People are probably making assumptions about the
> problem we're trying to solve and we need to get on the same page about
> this.
>

Yes, we did!
 The original problem has several aspects aspects:
1) providing users with some information about what service implementation
they get (capabilities)
2) providing users with ability to specify (choose, actually) some
implementation details that don't relate to a logical configuration
(capacity, insertion mode, HA mode, resiliency, security standards, etc)
3) providing operators a way to setup different modes of one driver
4) providing operators to seamlessly change drivers backing up existing
logical configurations (now it's not so easy to do because logical config
is tightly coupled with provider/driver)

The proposal we're discussing right is mostly covering points (2), (3) and
(4) which is already a good thing.
So for now I'd propose to put 'information about service implementation' in
the description to cover (1)

I'm currently implementing the proposal (API and DB parts, no integration
with services yet)


Thanks,
Eugene.
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-15 Thread Eichberger, German
Hi Stephen,

+1

Admittedly,  since Stephen and I come from an operator centric world we have 
sometimes trouble grasping other use cases so I am wondering if you can provide 
one which would help us understand the need for grouping multiple different 
devices (LB, VPN, FW) under a single flavor.

Thanks,
German


From: Stephen Balukoff [mailto:sbaluk...@bluebox.net]
Sent: Tuesday, July 15, 2014 3:06 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Neutron] Flavor framework proposal

Hi Salvatore and Eugene,

Responses inline:

On Tue, Jul 15, 2014 at 12:59 PM, Salvatore Orlando 
mailto:sorla...@nicira.com>> wrote:
I think I've provided some examples in the review.

I was hoping for specific examples. The discussion I've seen so far has been 
vague enough that it's difficult to see what people mean. It's also possible 
you gave specific examples but these were buried in comments on previous 
revisions (one of my biggest gripes with the way Gerrit works. :P ) Could you 
please give a specific example of what you mean, as well as how it simplifies 
the user experience?

However, the point is mostly to simplify usage from a user perspective - 
allowing consumers of the neutron API to use the same flavour object for 
multiple services.

Actually, I would argue the having a single flavor valid for several different 
services complicates the user experience (and vastly complicates the operator 
experience). This is because:

* Flavors are how Operators will provide different service levels, or different 
feature sets for similar kinds of service. Users interested in paying for those 
services are likely to be more confused if a single flavor lists features for 
several different kinds of service.
* Billing becomes more incomprehensible when the same flavor is used for 
multiple kinds of service. Users and Operators should not expect to pay the 
same rate for a "Gold" FWaaS instance and "Gold" VPNaaS instance, so why 
complicate things by putting them under the same flavor?
* Because of the above concerns, it's likely that Operators will only deploy 
service profiles in a flavor for a single type of service anyway. But from the 
user's perspective, it's not apparent when looking at the list of flavors, 
which are valid for which kinds of service. What if a user tries to deploy a 
LBaaS service using a flavor that only has FWaaS service profiles associated 
with it? Presumably, the system must respond with an error indicating that no 
valid service profiles could be found for that service in that flavor. But this 
isn't very helpful to the user and is likely to lead to increased support load 
for the Operator who will need to explain this.
* A single-service flavor is going to be inherently easier to understand than a 
multi-service flavor.
* Single-service flavors do not preclude the ability for vendors to have 
multi-purpose appliances serve multiple roles in an OpenStack cloud.

There are other considerations which could be made, but since they're dependent 
on features which do not yet exist (NFV, service insertion, chaining and 
steering) I think there is no point in arguing over it.

Agreed. Though, I don't think single-service flavors paint us into a corner 
here at all. Again, things get complicated enough when it comes to service 
insertion, chaining, steering, etc. that what we'll really need at that point 
is actual orchestration. Flavors alone will not solve these problems, and 
orchestration can work with many single-service flavors to provide the illusion 
of multi-service flavors.

In conclusion I think the idea makes sense, and is a minor twist in the current 
design which should not either make the feature too complex neither prevent any 
other use case for which the flavours are being conceived. For the very same 
reason however, it is worth noting that this is surely not an aspect which will 
cause me or somebody else to put a veto on this work item.

I don't think this is a minor twist in the current design, actually:
* We'll have to deal with cases like the above where no valid service profiles 
can be found for a given kind of flavor (which we can avoid entirely if a 
flavor can have service profiles valid for only one kind of service).
* When and if tags/capabilities/extensions get introduced, we would need to 
provide an additional capabilities list on the service profiles in order to be 
able to select which service profiles provide the capabilities requested.
* The above point makes things much more complicated when it comes to 
scheduling algorithms for choosing which service profile to use when multiple 
can meet the need for a given service. What does 'weight' mean if all but two 
low-weight service profiles get eliminated as not suitable?

Another aspect to consider is how the flavours will work when the advanced 
service type they 

Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-15 Thread Eichberger, German
Hi Eugene,

I understand the argument with preferring tags over extensions to turn/features 
on and off since that is more fine grained. Now you are bringing up the policy 
framework to actually controlling which features are available. So let’s look 
at this example:

As an operator I want to offer a load balancer without TLS – so based on my 
understanding of flavors I would

· Create a flavor which does not have a TLS extension/tags

· Add some description on my homepage “Flavor Bronze - the reliable TLS 
less load balancer”

· Use profiles to link that flavor to some haproxy and also some 
hardware load balancer aka F6

o   Set parameters in my profile to disable TLS for the F6 LB

Now, the user  asks for a “Bronze: load balancer and I give him an F6. So he 
can go ahead and enable TLS via the TLS API (since flavors don’t control API 
restrictions) and go his merry way – unless I also use some to-be-developed 
policy extension to restrict access to certain API features.

I am just wondering if this is what we are trying to build – and then why would 
we need tags and extensions if the heavy lifting is done with the policy 
framework…

German

From: Eugene Nikanorov [mailto:enikano...@mirantis.com]
Sent: Tuesday, July 15, 2014 2:07 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Neutron] Flavor framework proposal

Hi Stephen,

So, as was discussed, existing proposal has some aspects which better to be 
postponed, like extension list on the flavor (instead of tags).
Particularly that idea has several drawbacks:
 - it makes public API inflexible
 - turning features on/off is not what flavors should be doing, it's a task for 
policy framework and not flavors
 - flavor-based rest call dispatching is quite complex solution giving no 
benefits for service plugins
While this is not explicitly written in proposal - that's what implied there.
I think that one is a major blocker of the proposal right now, it deserves 
future discussion and not essential to the problem flavors are supposed to 
solve.
Other than that, I personally don't have much disagreements on the proposal.

The question about service type on the flavor is minor IMO. We can allow it to 
be NULL, which would mean multiservice flavor.
However, multiservice flavors may put some minor requirements to driver API 
(that's mainly because of how flavor plugin interacts with service plugins)

Thanks,
Eugene.

On Tue, Jul 15, 2014 at 11:21 PM, Stephen Balukoff 
mailto:sbaluk...@bluebox.net>> wrote:
Hi folks!

I've noticed progress on the flavor framework discussion slowing down over the 
last week. We would really like to see this happen for Juno because it's 
critical for many of the features we'd also like to get into Juno for LBaaS. I 
understand there are other Neutron extensions which will need it too.

The proposal under discussion is here:

https://review.openstack.org/#/c/102723/

One of the things I've seen come up frequently in the comments is the idea that 
a single flavor would apply to more than one service type (service type being 
'LBaaS', 'FWaaS', 'VPNaaS', etc.). I've commented extensively on this, and my 
opinion is that this doesn't make a whole lot of sense.  However, there are 
people who have a different view on this, so I would love to hear from them:

Could you describe a specific usage scenario where this makes sense? What are 
the characteristics of a flavor that applies to more than one service type?

Let's see if we can come to some conclusions on this so that we can get flavors 
into Juno, please!

Thanks,
Stephen

--
Stephen Balukoff
Blue Box Group, LLC
(800)613-4305 x807

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org<mailto:OpenStack-dev@lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-15 Thread Stephen Balukoff
Hi Salvatore and Eugene,

Responses inline:

On Tue, Jul 15, 2014 at 12:59 PM, Salvatore Orlando 
wrote:

> I think I've provided some examples in the review.
>

I was hoping for specific examples. The discussion I've seen so far has
been vague enough that it's difficult to see what people mean. It's also
possible you gave specific examples but these were buried in comments on
previous revisions (one of my biggest gripes with the way Gerrit works. :P
) Could you please give a specific example of what you mean, as well as how
it simplifies the user experience?

However, the point is mostly to simplify usage from a user perspective -
> allowing consumers of the neutron API to use the same flavour object for
> multiple services.
>

Actually, I would argue the having a single flavor valid for several
different services complicates the user experience (and vastly complicates
the operator experience). This is because:

* Flavors are how Operators will provide different service levels, or
different feature sets for similar kinds of service. Users interested in
paying for those services are likely to be more confused if a single flavor
lists features for several different kinds of service.
* Billing becomes more incomprehensible when the same flavor is used for
multiple kinds of service. Users and Operators should not expect to pay the
same rate for a "Gold" FWaaS instance and "Gold" VPNaaS instance, so why
complicate things by putting them under the same flavor?
* Because of the above concerns, it's likely that Operators will only
deploy service profiles in a flavor for a single type of service anyway.
But from the user's perspective, it's not apparent when looking at the list
of flavors, which are valid for which kinds of service. What if a user
tries to deploy a LBaaS service using a flavor that only has FWaaS service
profiles associated with it? Presumably, the system must respond with an
error indicating that no valid service profiles could be found for that
service in that flavor. But this isn't very helpful to the user and is
likely to lead to increased support load for the Operator who will need to
explain this.
* A single-service flavor is going to be inherently easier to understand
than a multi-service flavor.
* Single-service flavors do not preclude the ability for vendors to have
multi-purpose appliances serve multiple roles in an OpenStack cloud.


> There are other considerations which could be made, but since they're
> dependent on features which do not yet exist (NFV, service insertion,
> chaining and steering) I think there is no point in arguing over it.
>

Agreed. Though, I don't think single-service flavors paint us into a corner
here at all. Again, things get complicated enough when it comes to service
insertion, chaining, steering, etc. that what we'll really need at that
point is actual orchestration. Flavors alone will not solve these problems,
and orchestration can work with many single-service flavors to provide the
illusion of multi-service flavors.


> In conclusion I think the idea makes sense, and is a minor twist in the
> current design which should not either make the feature too complex neither
> prevent any other use case for which the flavours are being conceived. For
> the very same reason however, it is worth noting that this is surely not an
> aspect which will cause me or somebody else to put a veto on this work item.
>

I don't think this is a minor twist in the current design, actually:
* We'll have to deal with cases like the above where no valid service
profiles can be found for a given kind of flavor (which we can avoid
entirely if a flavor can have service profiles valid for only one kind of
service).
* When and if tags/capabilities/extensions get introduced, we would need to
provide an additional capabilities list on the service profiles in order to
be able to select which service profiles provide the capabilities requested.
* The above point makes things much more complicated when it comes to
scheduling algorithms for choosing which service profile to use when
multiple can meet the need for a given service. What does 'weight' mean if
all but two low-weight service profiles get eliminated as not suitable?

Another aspect to consider is how the flavours will work when the advanced
> service type they refer to is not consumable through the neutron API, which
> would be the case with an independent load balancing API endpoint. But this
> is probably another story.
>

As far as I'm aware, flavors will only ever apply to advanced services
consumable through the Neutron API. If this weren't the case, what's the
point of having a flavor describing the service at all? If you're talking
about Octavia here--  well, our plan is to have Octavia essentially be an
other load balancer vendor, interfaced through a driver in the Neutron
LBaaS extension. (This is also why so many developers interested in seeing
Octavia come to light are spending all their time right now improving
Neutro

Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-15 Thread Eugene Nikanorov
Hi Stephen,

So, as was discussed, existing proposal has some aspects which better to be
postponed, like extension list on the flavor (instead of tags).
Particularly that idea has several drawbacks:
 - it makes public API inflexible
 - turning features on/off is not what flavors should be doing, it's a task
for policy framework and not flavors
 - flavor-based rest call dispatching is quite complex solution giving no
benefits for service plugins
While this is not explicitly written in proposal - that's what implied
there.
I think that one is a major blocker of the proposal right now, it deserves
future discussion and not essential to the problem flavors are supposed to
solve.
Other than that, I personally don't have much disagreements on the proposal.

The question about service type on the flavor is minor IMO. We can allow it
to be NULL, which would mean multiservice flavor.
However, multiservice flavors may put some minor requirements to driver API
(that's mainly because of how flavor plugin interacts with service plugins)

Thanks,
Eugene.


On Tue, Jul 15, 2014 at 11:21 PM, Stephen Balukoff 
wrote:

> Hi folks!
>
> I've noticed progress on the flavor framework discussion slowing down over
> the last week. We would really like to see this happen for Juno because
> it's critical for many of the features we'd also like to get into Juno for
> LBaaS. I understand there are other Neutron extensions which will need it
> too.
>
> The proposal under discussion is here:
>
> https://review.openstack.org/#/c/102723/
>
> One of the things I've seen come up frequently in the comments is the idea
> that a single flavor would apply to more than one service type (service
> type being 'LBaaS', 'FWaaS', 'VPNaaS', etc.). I've commented extensively on
> this, and my opinion is that this doesn't make a whole lot of sense.
>  However, there are people who have a different view on this, so I would
> love to hear from them:
>
> Could you describe a specific usage scenario where this makes sense? What
> are the characteristics of a flavor that applies to more than one service
> type?
>
> Let's see if we can come to some conclusions on this so that we can get
> flavors into Juno, please!
>
> Thanks,
> Stephen
>
> --
> Stephen Balukoff
> Blue Box Group, LLC
> (800)613-4305 x807
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] Flavor framework proposal

2014-07-15 Thread Salvatore Orlando
I think I've provided some examples in the review.

However, the point is mostly to simplify usage from a user perspective -
allowing consumers of the neutron API to use the same flavour object for
multiple services.
There are other considerations which could be made, but since they're
dependent on features which do not yet exist (NFV, service insertion,
chaining and steering) I think there is no point in arguing over it.

In conclusion I think the idea makes sense, and is a minor twist in the
current design which should not either make the feature too complex neither
prevent any other use case for which the flavours are being conceived. For
the very same reason however, it is worth noting that this is surely not an
aspect which will cause me or somebody else to put a veto on this work item.

Another aspect to consider is how the flavours will work when the advanced
service type they refer to is not consumable through the neutron API, which
would be the case with an independent load balancing API endpoint. But this
is probably another story.

Salvatore



On 15 July 2014 21:21, Stephen Balukoff  wrote:

> Hi folks!
>
> I've noticed progress on the flavor framework discussion slowing down over
> the last week. We would really like to see this happen for Juno because
> it's critical for many of the features we'd also like to get into Juno for
> LBaaS. I understand there are other Neutron extensions which will need it
> too.
>
> The proposal under discussion is here:
>
> https://review.openstack.org/#/c/102723/
>
> One of the things I've seen come up frequently in the comments is the idea
> that a single flavor would apply to more than one service type (service
> type being 'LBaaS', 'FWaaS', 'VPNaaS', etc.). I've commented extensively on
> this, and my opinion is that this doesn't make a whole lot of sense.
>  However, there are people who have a different view on this, so I would
> love to hear from them:
>
> Could you describe a specific usage scenario where this makes sense? What
> are the characteristics of a flavor that applies to more than one service
> type?
>
> Let's see if we can come to some conclusions on this so that we can get
> flavors into Juno, please!
>
> Thanks,
> Stephen
>
> --
> Stephen Balukoff
> Blue Box Group, LLC
> (800)613-4305 x807
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev