Entries in software (1)

Friday
Jun262009

Owning The Rackspace Cloud

Over the last few months I've been exploring the shiny bauble that is "Cloud Computing". I've got various bits of this and that running in The Clouds at EC2, Slicehost and RackspaceCloud, but I mostly viewed it like the spork. Sure, they both serve up the content, but it wasn't really much of an improvement over the standard hosting I was used to... or spoons...

But when it rains it pours... Busted Loop has an internal project that needs significant bursts of computing power throughout the day, and one of our clients is looking to replace a $1000/month build server with a cheaper alternative. Fortunately, the client has a large investment in Rackspace and some substantial bandwidth requirements, which made the choice of which service to embrace pretty easy, with a bit of a hurdle...

No API?! The RackspaceCloud API isn't going live until Q3 of this year... This struck me as odd because I believe the Rackspace Cloud is powered by the Slicehost technology which has an API.

Oh well... This is 2009, the web is the API.

Introducing the RackspaceCloud Command Line Tool!

 

It's a groovy script I wrote that does the bare minimum we need to complete our projects; create, delete, resize and list servers in the Rackspace Cloud and some variations on those themes and a way to keep an eye on our bill!. I'm basically wrapping the web site features with a groovy API and then wrapping that in a command line tool. I'll switch features to the official API when it's released. We needed this tool pretty quickly so the API (in the script guts) isn't perfect and will be refactored before I package it up for general consumption, but I think there's enough in this command line tool to be generally useful.

In the future there will be commands for controlling DNS settings, fetching the internal IP of the server, rebooting, and anything else that stands in the way of our completed solutions.

If this is useful or interesting to anyone besides us, I can post more about how you can use the API in your groovy or java code to add this functionality into your apps.

If you think this is interesting, please use the "share article" links at the bottom of the post and leave a comment.