[openstack-dev] [Neutron] Flavor Framework
Jay Pipes
jaypipes at gmail.com
Mon Mar 3 20:33:13 UTC 2014
On Fri, 2014-02-28 at 10:19 +0400, Eugene Nikanorov wrote:
>
> 1) I'm not entirely sure that a provider attribute is even
> necessary to
> expose in any API. What is important is for a scheduler to
> know which
> drivers are capable of servicing a set of attributes that are
> grouped
> into a "flavor".
> Well, provider becomes read-only attribute and for admin only (jsut to
> see which driver actually handles the resources), not too much of API
> visibility.
I'd very much prefer to keep the provider/driver name out of the public
API entirely. I don't see how it is needed.
> 2) I would love to see the use of the term "flavor" banished
> from
> OpenStack APIs. Nova has moved from flavors to "instance
> types", which
> clearly describes what the thing is, without the odd
> connotations that
> the word "flavor" has in different languages (not to mention
> the fact
> that flavor is spelled flavour in non-American English).
>
> How about using the term "load balancer type", "VPN type", and
> "firewall
> type" instead?
> Oh... I don't have strong opinion on the name of the term.
> "Flavor" was used several time in our discussions and is short.
> "*Instance* Type" however seems also fine. Another option is probably
> a "Service Offering".
OK.
> 3) I don't believe the FlavorType (public or internal)
> attribute of the
> flavor is useful. We want to get away from having any
> vendor-specific
> attributes or objects in the APIs (yes, even if they are
> "hidden" from
> the normal user). See point #1 for more about this. A
> scheduler should
> be able to match a driver to a request simply by matching the
> set of
> required capabilities in the requested flavor (load balancer
> type) to
> the set of capabilities advertised by the driver.
> ServiceType you mean? If you're talking about ServiceType then it
> mostly for the user to filter flavors (I'm using short term for now)
> by service type. Say, when user wants to create new loadbalancer,
> horizon will show only flavors related to the lb.
> That could be also solved by having different names live you suggested
> above: "Lb type", "VPN type", etc.
> On other hand that would be similar objects with different names -
> does it make much sense?
No, I wasn't referring to ServiceType. I was referring to "FlavorType"
-- public or internal -- in your diagram. I don't believe this is
necessary, frankly.
> I'm not sure what you think 'vendor-specific' attributes are, I don't
> remember to have plan of exposing any kind of vendor-related
> parameters. The parameters that flavor represents are capabilities of
> the service in terms that user care about: latency, throughput,
> topology, technology, etc.
Yes, agreed. ++
> 4) A minor point... I think it would be fine to group the
> various
> "types" into a single database table behind the scenes (like
> you have in
> the Object model section). However, I think it is useful to
> have the
> public API expose a /$servie-types resource endpoint for each
> service
> itself, instead of a generic /types (or /flavors) endpoint.
> So, folks
> looking to set up a load balancer would call
> GET /balancer-types, or
> call neutron balancer-type-list, instead of calling
> GET /types?service=load-balancer or neutron flavor-list
> --service=load-balancer
> I'm fine with this suggestion.
>
>
> 5) In the section on Scheduling, you write "Scheduling is a
> process of
> choosing provider and a backend for the resource". As
> mentioned above, I
> think this could be changed to something like this:
> "Scheduling is a
> process of matching the set of requested capabilities -- the
> flavor
> (type) -- to the set of capabilities advertised by a driver
> for the
> resource". That would put Neutron more in line with how Nova
> handles
> this kind of thing.
> I agree, I actually meant this and nova example is how I think it
> should work.
> But more important is what is the result of scheduling.
> We discussed that yesterday with Mark and I think we got so the point
> where we could not find agreement for now.
> In my opinion the result of scheduling is binding resource to the
> driver (at least)
> So further calls to the resource go to the same driver because of that
> binding.
> That's pretty much the same how agent scheduling works.
>
> By the way I'm thinking about getting rid of 'provider' term and using
> 'driver' instead. Currently 'provider' is just a user-facing
> representation of the driver. Once we introduce flavors/service
> types/etc, we can use term 'driver' for implementation means.
++
Best,
-jay
More information about the OpenStack-dev
mailing list