[openstack-dev] [tc] Swift api compat. Was: supporting Go

Fox, Kevin M Kevin.Fox at pnnl.gov
Wed May 4 21:52:49 UTC 2016


I think part of the problem with the whole Swift situation is that it does something most other OpenStack projects don't do. Its both a control plane and a data plane.

For example, Cinder provides a unified api and provides plugins to allow vendors to plug in their particular special sauce in. Through flavors, multiple plugins can be supported at once and everyone can go about doing what they do best. It isolates the vendor specific stuff from the api users expect.

Swift is in a strange place where the api is implemented in a way to favor one particular vendor backend implementation. The vendor is in the tent which is good, but other vendors have legitimate reasons to implement their own variants and they can't plugin nicely to the existing thing, which is bad. So, vendors have been forced to clean room reimplement the api. This means sites can only choose one and only one Swift api endpoint, and OpenStacks can't be tested properly. There is a lot of variation in clouds here. Its a common problem, and its only going to get worse if we don't start addressing it.

I think one solution would be to formalize the api as part of a plugin api, and add a control/multi-flavors service on top that the keystone service catalog returns. Initial traffic goes through it to identify which flavor to go to, and then things are redirected directly to the endpoint for the particular flavor. The current Swift implementation then has a nice place to plugin, so does radosgw, and any other vendors too.

I'd love to be able to plugin Swift into our sites, but because we can only have one, the various tradoffs have lead us to deploy RadosGW most of the time.

Some legitimate, non conflicting use cases of each category:
 * Swift's great for its advanced features, open community, etc.
 * RadosGW is great if you have an investment in Ceph and don't want to split your storage. It also reduces admin costs if you are Ceph already.
* Other vendors provide support for stuff like tape library storage, reducing costs for backend storage.

We should not be forcing operators to choose just one of these.

Would this kind of rearrangement help resolve some of the issues? Language choice and in tree vs out of tree are separate discussions to testing things and being inclusive at that point.

Thanks,
Kevin
________________________________________
From: Monty Taylor [mordred at inaugust.com]
Sent: Wednesday, May 04, 2016 12:47 PM
To: openstack-dev at lists.openstack.org
Subject: Re: [openstack-dev] [tc] supporting Go

On 05/04/2016 01:31 PM, Fox, Kevin M wrote:
> Explicitly, no. I agree. Implicitly... ? Why bother to even propose joining when you know the rules clearly state that its not acceptable? I don't claim to know what has gone on internally in such teams. I'm just saying just because there hasn't been visible signs here of exclusion doesn't mean exclusion hasn't happened.

At no point in time has the C++ nature of ceph EVER been even an
implicit blocker for any actions that were desired by either OpenStack
or Ceph.

There are other issues, such as it being an alternate/competing
implementation to an existing OpenStack service that was not done by the
existing OpenStack team. If the ceph team were to decide that they
wanted to be an OpenStack project instead of an independent project,
which to my knowledge has never been expressed by them as a desire, that
would be the important thing to discuss - and it's a thing that should
not be taken lightly.

As it is, the desire has not be expressed, nor has it be deflected, nor
has it been blocked. If any of those things _had_ happened, C++ would
not have been nor would it be a relevant or interesting part of the
discussion.


> Thanks,
> Kevin
> ________________________________________
> From: Pete Zaitcev [zaitcev at redhat.com]
> Sent: Wednesday, May 04, 2016 10:40 AM
> To: Fox, Kevin M
> Cc: OpenStack Development Mailing List (not for usage questions)
> Subject: Re: [openstack-dev] [tc] supporting Go
>
> On Tue, 3 May 2016 22:37:30 +0000
> "Fox, Kevin M" <Kevin.Fox at pnnl.gov> wrote:
>
>> RadosGW has been excluded from joining the OpenStack community in part
>> due to its use of c++.
>
> Sounds like sheer lunacy. Nothing like that ever happened, AFAIK.
>
> -- Pete
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list