

Libcloud: a unified (python) interface into the cloud - polvi
http://libcloud.org/

======
polvi
We're looking for folks who would be interested in "owning" a particular
provider. Shoot us a note on the mailing list if you would like to
participate! Although, patches speak louder than words. :)

~~~
sriramk
[Disclaimer - I work for Windows Azure]

I think this is a great library and I would love to see it work with Windows
Azure. Windows Azure doesn't have a service management API today (we only have
storage APIs) but we are working on one and we'll have it by the end of the
year[1].

I do think it'll need some changes to work with us (or with AppEngine for that
matter) since libcloud seems to deal with raw nodes and Windows Azure likes to
deal with 'services' as the first class entity with the raw
nodes/machines/VMs/whatever just being various instances of something we call
'roles'. I think you could kind of hack around that in your code but it
wouldn't be very elegant.

[1] I'm the person responsible for them so feel free to reach out to me. I
can't reveal much of how it will look like in public yet though.

~~~
polvi
It is true, we're initially targeting providers that will give you a "server
via API call". When you're developing against AppEngine (and I imagine Azure),
you're committing to that platform, because it is very very specific. Whereas
when you develop against Amazon or Slicehost, the server is the common unit
... which you are free to do whatever you like with.

That said, I think there is a lot of room for a similar project with storage.
Amazon S3, Rackspace Cloud Files ... and maybe Azure will fit in there?

As for libcloud, we're trying to provide a DBI like thing for cloud server
providers. It's not the end-all solution, but it is a clean first step towards
cloud portability.

~~~
sriramk
You can hack around it (but like I said, it isn't very clean). I can't speak
for AppEngine or the others but on Windows Azure, you're really committing to
Windows but not Windows Azure. So in theory, anything that works on Windows
should work on us (we don't run things in a sandbox as some people like to say
though we do run you currently in a normal user account without admin privs).

One way to implement this would be wrap a Windows Azure service around
whatever you want to do on a node/server and then deploy that service. For
example, if you have a Windows server where you install a ASP.NET app or a PHP
site by xcopying binaries, you could do the same thing by wrapping that into a
web role and put that in a Windows Azure service.

By doing this, you do miss out on some of the advantages of the platform but
it should make it fit into your model.

------
timf
Launching and stopping servers is a small part of the portability hassle. The
big part is a unified image and data plan. Things like building images
programmatically from templates (look up rBuilder) and calling back to some
centralized thing to seed the image with context/data to work on can help
(many variations in these areas).

That said, I am glad to see more people releasing tooling in this area and
appreciate the open licensing! Not trying to rain on this parade or anything.

------
domodomo
Great! I'm a slicehost user and happy to see them here, but nice to be able to
do this stuff in a non-platform specific way.

------
thesethings
I attended your talk at Oscon, and am really excited about this project,
thanks for releasing it. You'll see me on the mailing list soon.

