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