On Wed, 2010-01-20 at 13:20 +1100, Michael Neale wrote:
So this turns deltacloud into a "discovery" API - is that the direction that deltacloud needs to go? At the moment it is an API that you can use to do something more or less directly. Introducing a discovery component means that to use this api, you need to discover capabilities, and then make a decision in your client code how to use/not use them (which is kind of pushing it up a layer to the clients) - doesn't that make it harder for people to write clients that can work across clouds?
I think you're disappointed with the messenger ;)
To stick with file/user-data injection: today, only EC2 and Rackspace give you some capability to do that as far as I can tell. EC2 does the user-data thing that you can access via HTTP inside the image, Rackspace lets you write up to five small files anywhere in the file system. The only way in which we could make that difference disappear is to simulate EC2's user-data on Rackspace by putting user-data into a fixed file in the filesystem - that's unsatisfactory for people who want to use deltacloud only for Rackspace, since we've removed a feature.
Both mechanisms are reasonable, and I would hope that other cloud providers will follow one of these instead of inventing yet another one. That in itself means that you can port applications from one cloud to another as long as they support the same injection mechanism - deltacloud will take care of minor differences of how exactly you inject that data. If you don't want to bother with discovery, ensure in some other way that all the clouds you're targeting support the features you need, e.g. restrict yourself to a subset of drivers.
To get portability to a wider range of clouds, an application needs to be aware to some extent of the differences between clouds - there's no way we can pretend in deltacloud that GoGrid (or most other clouds) support any sort of data injection. To help those, more complex, applications, deltacloud should tell them about features that only some of the drivers support.
So, I see adding capabilities metadata and allowing discovery not as a restriction of what people can do, but a help for people who want or need to do more complicated things.
David