[openstack-dev] [Neutron] Provider Framework and Flavor Framework

Zang MingJie zealot0630 at gmail.com
Thu Apr 17 11:27:29 UTC 2014


Hi Eugene:

I have several questions

1. I wonder if tags is really needed. for example, if I want a ipsec
vpn, I'll define a flavor which is directly refer to ipsec provider.
If using current design, almost all users will end up creating flavors
like this:

ipsec tags=[ipsec]
sslvpn tags=[sslvpn]

so the tags is totally useless, and I suggest replace tags by provider
name/uuid. It is much more straightforward and easier.

2. currently the provider name is something configured in neutron.conf:

service_provider=<service_type>:<name>:<driver>[:default]

the name is arbitrary, user may set whatever he want, and the name is
also used in service instance stored in database. I don't know why
give user the ability to name the provider, and the name is totally
nonsense, it hasn't been referred anywhere. I think each service
provider should provide a alias, so user can configure service more
flexible:

service_provider=<service_type>:<driver_alias>[:default]

and the alias can be also used as an identifier in rpc or other place,
also I don't want to see any user configured name used as an
identifier.


On Wed, Apr 16, 2014 at 5:10 AM, Eugene Nikanorov
<enikanorov at mirantis.com> wrote:
> Hi folks,
>
> In Icehouse there were attempts to apply Provider Framework ('Service Type
> Framework') approach to VPN and Firewall services.
> Initially Provider Framework was created as a simplistic approach of
> allowing user to choose service implementation.
> That approach definitely didn't account for public cloud case where users
> should not be aware of underlying implementation, while being able to
> request capabilities or a SLA.
>
> However, Provider Framework consists of two parts:
> 1) API part.
> That's just 'provider' attribute of the main resource of the service plus a
> REST call to fetch available providers for a service
>
> 2) Dispatching part
> That's a DB table that keeps mapping between resource and implementing
> provider/driver.
> With this mapping it's possible to dispatch a REST call to the particular
> driver that is implementing the service.
>
> As we are moving to better API and user experience, we may want to drop the
> first part, which makes the framework "non-public-cloud-friendly" but the
> second part will remain if we ever want to support more then one driver
> simultaneously.
>
> Flavor framework proposes choosing implementation based on capabilities, but
> the result of the choice (e.g. scheduling) is still a mapping between
> resource and the driver.
> So the second part is still needed for the Flavor Framework.
>
> I think it's a good time to continue the discussion on Flavor and Provider
> Frameworks.
>
> Some references:
> 1. Flavor Framework description
> https://wiki.openstack.org/wiki/Neutron/FlavorFramework
> 2. Flavor Framework PoC/example code https://review.openstack.org/#/c/83055/
> 3. FWaaS integration with Provider framework:
> https://review.openstack.org/#/c/60699/
> 4. VPNaaS integration with Provider framework:
> https://review.openstack.org/#/c/41827/
>
> I'd like to see the work on (3) and (4) continued, considering Provider
> Framework is a basis for Flavor Framework.
>
> Thanks,
> Eugene.
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



More information about the OpenStack-dev mailing list