Hi Philip

I want someone else to make an OpenStack API over JClouds so that I
can ALSO expose an OpenStack API to customers, not just a JClouds API.
My customers want an OpenStack API and a JClouds API.

Thanks for explaining - that certainly helps. As Andrew G mentioned, this kind of thing is certainly possible and has actually been done for blob storage (i.e. Swift).

However, there are a couple of things I'd recommend bearing in mind before deciding on this approach:

1. Overhead

I don't know the details of how your Java API communicates to your cloud service, but if there is some kind of remoting involved, the call chain would be:

HTTP -> OpenStack-compatible server -> jclouds provider -> Java call -> cloud service

If the Java call is not local, that could be quite a significant penalty, Or would you be planning to run the OpenStack-compatible server on the same machines/inside the same JVM as your actual cloud service?

2. Possible loss of "fidelity"

What I mean by this is that I suspect the first approach to writing a *general* OpenStack-compatible API provider on top of jclouds would look a bit like:

OpenStack-compatible server -> jclouds domain model -> jclouds provider-specific model

This would mean that any OpenStack options not supported by the "portable" (i.e. cross-provider) jclouds domain model would not work, which I suspect is not your intention. In other words, we'd probably be looking at a mapping more like:

OpenStack-compatible server -> jclouds provider-specific model that supports all the required options

That would allow us to retain OpenStack compatibility, but would tie the "OpenStack-compatible server" bit to one specific provider in jclouds - yours, in this case. I think it's likely you'd have to build this server yourself, in that case - which may have been the intention in the first place, of course ;-)

Taking a step back: you had mentioned that the driver was a client request to have both a jclouds and an OpenStack API. Now we're talking about a solution that results in someone building both a jclouds provider, and an OpenStack-compatible front-end for jclouds.

If you were to build the OpenStack-compatible part *into* your cloud service, you would effectively get jclouds support "for free" - or at very little cost, since the changes required to tweak one of the existing OpenStack providers should be minimal. Have you considered this as an alternative option?

Regards

ap

Reply via email to