Home »

Developing in the cloud

3. December 2008 by james 0 Comments

Now that thin client computing has become fashionable again (as part of cloud computing) and the likes of Microsoft, Google and Amazon have released their respective platforms, it's interesting to look at some of the opportunities opening for companies.  There has already been a  coverage around the use of cloud computing as a potential replacement for data and hosting centres which are expensive, environmentally unfriendly and difficult to locate and several startups have used the model for either a complete production environment or as a means of backup.

I've been wondering about development itself though and whether that could be something that would sit logically in a cloud computing virtualisation model.  I'll use Amazon's Elastic Computing Cloud (EC2) service as the example, it's probably the most appropriate of the frameworks for general virtualisation and is relatively mature.

EC2 makes use of an Amazon Machine Image (AMI) which is a complete configured operating system (of which several are supported) along with any applications which the AMI needs.  Customers can either select a pre-built AMI or create their own from scratch (including the OS),  customise it exactly to their personal / corporate needs and then upload it to Amazons S3 storage service.  From that point EC2 allows instances of the AMI to be started and stopped at will and charging is based on a Pay As You Go (PAYG) model.

Let's assume that your AMI is Windows based and given we want to use this machine for development, it's going to need a reasonable amount of computational power and RAM.  EC2 measures CPU usage in computer units (ECU) which the documentation explains as being 'one EC2 Compute Unit (EC2) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor).  For development the type of instance we will probably choose is the 'Standard Large Instance':

Large Instance - 7.5 GB of memory, 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each), 850GB of instance storage, 64-bit platform

Until recently, EC2 instances had no form of persistent storage when they were shut down and relied on the user to transfer the data off either to the storage service S3 or to their own persistent storage.  That's changed now and in this instance we get an impressive 850Gb which should be more than ample for most cases.

The cost for this instance is $0.50 per hour while it is running with partial hours charged as full hours.  Assuming the instance runs for 40 hours in the working week (switched off at night) and there was 4Gb if traffic to the instance (2Gb either way), the weekly bill would be $20.54 (£13.91).  Used every week of the year the total bill comes to a shade over $1k ($1068 or £727 at the time of writing).

That may not sound particularly cheap but the instance specified above would most likely support two developers rather than requiring an instance per developer.

Some clear advantages I can see with this:

  • Small number of AMI "templates" to maintain for different types of instances and immediate roll-out as instances are re-started
  • As projects start/stop and developers move between types of work then the number of relevant instances can be immediately scaled
  • Internal hardware lifetime can be extended as developers do not require such capable terminals - a modern docked laptop would be more than suitable for general office duties and sessions open to a cloud developer instance.
  • Any AMI can be run against any type of instance depending on the needs - prices start from $0.10 / hour for a single ECU, Linux/Unix based instance
  • Instances can be monitored and automatically shut down when idle for certain periods of time through the EC2 Webservice API
  • Costs can clearly be seen and controlled

On the other side, the challenges I see would be:

  • Security - A VPN would be a first step but there are bound to be corporate difficulties with this
  • How the cost is accounted - the expensive developer workstations are presumably company assets
  • Developer reliance on a third party

It's a very different sort of model and one that would probably be a challenge to many corporations but with the push for green computing as well as cost pressures, cloud virtualisation may become a viable option for development capabilities.

Technorati Tags: ,


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5