Rackspace goes Open Source with API’s

We launched our RESTful Cloud Servers API last week and the feedback thus far has been fantastic.  When we were first looking to build the API, we surveyed the cloud standards world to see if there was anything existing we could embrace.  After all, why have another cloud interface if you can avoid it?  We believe in a world of open clouds where customers can migrate, federate, burst, etc. and not be concerned with lock-in.  Common APIs are part of that battle, but unfortunately, nothing suitable existed (although OCCI looked interesting).  So, we built our own interface embracing easy to use web service standards like REST, WADL, XML, JSON, etc.  We spent a lot of time modeling a compute cloud in a RESTful manner and adjusting based on feedback from our developer and partner communities.  The responses we got back helped us course correct as part of the design process and that open approach resulted in an API that is powerful, yet easy to use and understand (there is of course plenty of room for improvement).  We’ve heard that message over and over during this past week.

Still, we had to create a proprietary interface which in some ways, makes the cloud world more divergent.  So, in order to share what we’ve designed and to foster a more open cloud, we announced yesterday at OSCON that our Cloud Servers AND Cloud Files API specifications are now open sourced under the Creative Commons 3.0 Attribution license.  This means anybody building private clouds, other public clouds, developing standards, etc. is free to take the specification design work we’ve done and copy it, modify it, or reuse it any way without fear of legal action.  We don’t know if that will happen, but we at least wanted to make it possible.

That deals with openness on the cloud service side – now let’s talk about the client side.  When Cloud Files was built, in addition to a RESTful interface, Rackspace also built Java, Python, Ruby, PHP, and C# language bindings.  One of our overarching design goals at the Rackspace Cloud is to make the cloud easy to use, and we believe a canonical set of bindings, consistent across languages, helps to achieve that.  In an effort to open these to the community, we have now made all Cloud Files bindings, open sourced under the MIT license, available on github at http://github.com/rackspace.  We invite people to pull down a copy and begin making contributions.  We’d love to see the community take ownership of them and eventually have external committers as well.  For more information on how to get involved, hop on the Cloud Files IRC channel at irc.freenode.net #cloudfiles.

With Cloud Servers, we are taking a different approach with language bindings.  We want to engage our developer community and enable them to build and own the bindings, but do it in a manner that still provides cross-language consistency.  To that end, we have created a Cloud Servers technical specification that serves as a blueprint for how to build bindings.  This is also available on github at http://github.com/rackspace/docs-specs-cloud-servers-language-binding/tree/master.  We will soon release a reference implementation in Python, which along with the tech spec, will provide good guidance on building in other languages.  We are just now getting this out and already, after one week of the RESTful API being available, we are aware of Twisted Python, Ruby, Java, and Perl bindings done or on the way.  Now that’s a great response from our developer community!  Thank you.  Our job is to work with you to help bring alignment to the tech spec and minimize competing/redundant bindings.  If you are developing Cloud Servers bindings or are interested in being involved, you can get more info on the Cloud Server IRC channel at irc.freenode.net #cloudservers.

We’re not sure where things will go, but we are committed to openness, being involved in standardization discussions, and taking a proactive role in our developer community to foster an open cloud.

Erik Carlin

Erik joined Rackspace in 2008 as Chief Architect helping to launch and grow Cloud Servers as well as integrate and optimize multiple services across the Rackspace Cloud portfolio. Erik has been involved in OpenStack since its inception and helped launch the Quantum network service. Erik currently serves as Director of Product Strategy for the Cloud Infrastructure Product Line, which includes all base cloud building block services (Cloud Servers, Cloud Networks, Cloud Block Storage, Cloud Files, Cloud Load Balancers and RackConnect). Prior to joining Rackspace, Erik was Chief Infrastructure Architect for SRA International, where he helped architect solutions for large, complex enterprise and government clients. Erik is a graduate of Virginia Tech and holds a B.S. in Computer Engineering and a minor in Computer Science.


  1. This is great news. Now tool makers can build cross-cloud libraries. It always sucks to find a library/plugin/whatever that has some really awesome feature you want, but it doesn’t work with your infrastructure. Open standards like this can really help to alleviate that.

    Plus, it never hurts to be the ones defining the standard that everyone else is using. Smart move on your part.

  2. Do you plan to release an API for Cloud Sites? I think that would be a killer addition, especially since it would allow folks with large numbers of email accounts and aliases to migrate their sites much more quickly.

    What do you think?

  3. This is fantastic news, great to see that you’re going in an “Open” direction. I’m also interested tonow if there are plans to create an API for Cloud Sites? When can we expect Cloud Servers to support Windows Server 2008?

  4. @Greg — Absolutely. The goal is to one day have an API for all of our offerings. We’re building towards that. Cloud Sites is one of the harder services to provide an API for, so it will take time, but I certainly think its worth the effort. It would absolutely help with creating and migrating sites.

    • Carson,

      Small glitch. Sorry. CS language binding tech spec is on github. Let me know if you still don’t see it.

      We support custom images now. You just need to keep the cloud server you built the gold image from running. Not ideal but workable. Next release (can’t give you a firm date but soon) will include more flexible custom image support and sharing.


  5. +1

    Great job on the cloud servers api. We feature completed the java binding in jclouds in only 1 week, including integration testing every feature.

    Keep up the great work!

  6. Way cool! We’re really excited about this API. We just opened up our Cloud Server today and we are moving our Beanstalk repository to it this evening. Our private beta launch on the Rackspace begins July 31. If you are interested in checking us out and being invited to try the beta, please come visit us at http://bloomapps.com

    Thanks Rackspace!


Please enter your comment!
Please enter your name here