[openstack-tc] Policy on "3rd party" APIs and Nova

Mark McLoughlin markmc at redhat.com
Tue Nov 6 21:13:25 UTC 2012


Hey

I was asked to clarify exactly what motion is being proposed so that the
TC can vote on it for next weeks meeting.

What we're proposing is:

  The previous aspirational statement that the PPB made in May 2012 
  about 3rd party APIs being implemented external to core stands. 
  However, where a given project does yet have expose a "stable, 
  complete, performant interface" for 3rd party APIs to build on, that 
  project may choose to accept proposed new APIs in the interim if it
  sees fit.

Bit of a mouthful, but I think it captures our position.

Cheers,
Mark.

On Fri, 2012-11-02 at 16:56 +0000, Mark McLoughlin wrote:
> Hey
> 
> Almost exactly 6 months ago, the PPB had a discussion about 3rd party
> APIs after a mailing list discussion on the topic:
> 
>   http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-05-08-20.00.html
>   https://lists.launchpad.net/openstack-poc/msg00448.html
> 
> The conclusion reached in the meeting was:
> 
>   "an OpenStack project will support an official API in it's core 
>    implementation (the OpenStack API). other APIs will be implemented
>    external to core. the core project will expose stable, complete,
>    performant interfaces so that 3rd party APIs can be implemented in a
>    complete and performant manner."
> 
> Let me first qualify that with some of the discussion that lead up to
> the policy being voted on:
> 
>   <vishy> jbryce: I'm not sure that we can mandate that they must live outside
>   <vishy> jbryce: unless we are just talking ultimate goal here.
>   <vishy> jbryce: I agree with the principle that they should be there
>   <vishy> jbryce: I just don't know if we are technically at the point where they can
>   <jbryce> vishy: let's work on defining the end state of this as the goal/convention to aim for
> 
> i.e. I think it's fair to say the "policy" was intended to be a
> forward-looking "where we want to get to" statement.
> 
> Also, the statement might seem to imply that 3rd party APIs should be
> implemented as proxies to the OpenStack REST APIs, but actually the
> statement wasn't directing an implementation choice. The other option
> discussed was a project exposing a "stable, complete, performant" python
> interface for implementing 3rd party APIs either as a plugins or
> completely separate services talking to the DB and message bus.
> 
> 
> Now, what about Nova?
> 
> Nova has an implementation of the EC2 API (a "3rd party API") and,
> indeed, has had this since the project began ... even before the
> Rackspace CloudServers API became the OpenStack API.
> 
> It seems to me that the EC2 API is a fairly popular feature, generally
> works reasonably well and is tested by unit tests, the devstack gate
> (using devstack's euca exercise) and smokestack (using nova smoketests).
> 
> It's true there isn't any particular person or group of people
> consistently working to improve the EC2 API (can that also be said of
> the OpenStack API?) but in Folsom nova/api/ec2 did have 59 commits (4%
> of total) by 27 developers (14% of total) and the diffstat was:
> 
>    6 files changed, 585 insertions(+), 688 deletions(-)
> 
> Part of that work involved re-factoring some code that was common
> between the EC2 and OpenStack APIs.
> 
> Anyway, my take is the EC2 API is a nice feature, we should be proud of
> it and we're successfully maintaining it without a terrible amount of
> pain.
> 
> 
> In theory, the PPB's policy decision should have prompted some move by
> Nova developers to figure out what "stable, complete, performant"
> interface to expose and move the EC2 API to that. Six months have passed
> with zero progress, partly because of a lack of interest but mostly
> because Nova developers have a lot of other higher priority things on
> their plate.
> 
> 
> The question reared its head again at the Grizzly summit when Joe Gordon
> lead this session:
> 
>   https://etherpad.openstack.org/grizzly-nova-splitting-out-EC2
> 
> The (or at least part of the) motivation for the session was Joe and his
> team's work on a Google Compute Engine API implementation:
> 
>   https://github.com/cloudscaling/nova-gce
> 
> This is implemented quite similarly to the EC2 API so the question
> becomes "if new 3rd party APIs can't be added to Nova, how do we expose
> the appropriate APIs for those new APIs". It was pretty clear during the
> session that we don't have an answer to that.
> 
> 
> So, to the point - what Nova developers wish to discuss here and at a TC
> meeting is how we can make progress.
> 
> Assuming we don't have the "stable, complete, performant" interface
> needed for 3rd party APIs, what do we do if the GCE API is proposed for
> inclusion in Nova?
> 
> 
> My opinion - the GCE work looks awesome, it's an exciting new feature
> and it's the kind of awesome new feature by awesome developers that we
> should be facilitating.
> 
> We have a long term goal of facilitating work like this happening
> outside of Nova, but no real sign of that goal coming about in the
> medium term.
> 
> We shouldn't let our idealistic long term plans get in the way of
> pragmatic, exciting progress happening now.
> 
> Cheers,
> Mark.
> 
> 
> _______________________________________________
> OpenStack-TC mailing list
> OpenStack-TC at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-tc





More information about the OpenStack-TC mailing list