Utility Photo-editing with Amazon EC2

It’s been almost a year since Amazon announced EC2 with the promise of “Utility computing”. I have to admit that the penny didn’t drop the first time I played around with Amazon’s Elastic Computing Cloud. It’s been a few months since I last played with EC2 and wow ! – the tools have greatly improved.

I’m using the excellent EC2 Firefox UI plugin as the front-end. This is so much better than the java-based command-line tools made available when EC2 was first released.

ec2blogfirefox.jpg

Using EC2 means I can have Pixenate™ running on any number of machines in less time than it takes to read this blog post. This is important because under the covers we’ve been making some changes to pixenate to facilitate scaling. What we’ve effectively done is separate completely the presenation layer and the image-editing layer so that now the presentation (the HTML, CSS and javascript) – the User Interface in other words – can live on a completely different server to the core image-editing engine which does all of the heavy lifting (all of the CPU-intensive work of rotating, cropping and making your photos beautiful). What’s more , multiple image-editing engines/servers can be used by a single UI/web server so load-balancing is easy.
The amazing thing (and I’m sorry if it sounds like we’re blowing our own trumpet here but we’re really excited about this) is we’ve done this without resorting to webserver-specific solutions like Apache’s mod_proxy. So large customer’s who want to run Pixenate on Windows clusters or Linux clusters can get load balancing with minimum effort.

pixenate-pres-app-separation.jpg

As a proof-of-concept we’ve been running Pixenate across 10 servers (9 of them are Amazon EC2 servers) in a load-balanced configuration and I have to say, the load averages are way down – at the moment pixenate.com is purring along with a 0.10 load average. As a bootstrapping startup we couldn’t have dreamt of doing this without Amazon EC2.

The beauty of EC2 is that I can have Pixenate™ running on 1 to 100 servers in no time at all thanks to a Pixenate AMI (Amazon Machine Instance). AMIs are basically snapshots of all of the software installed on a machine. It’s kind of mind-blowing knowing your software can be running on 100 machines at the press of a button. It must be the nerd in me but I get a buzz just launching a batch of 10 EC2 instances. Yeah – I’m that kind of nerd.

I’ve said it before and I’ll say it again – Amazon EC2 is a game-changer. Think about it – “Utility Computing” ; what does that mean ?

  • Utility Photo-Editing
  • Utility Spreadsheets
  • Utility word-processing…

… Utility Anything-That-Uses-CPU-Cycles.

Despite working in Software, I don’t often get excited by Technology. Today I’m positively giddy.

Advertisements

3 thoughts on “Utility Photo-editing with Amazon EC2

  1. John Ward says:

    Hi Walter,
    Been looking at this myself quite a bit.

    One thing I can tell you is that there a number of great ruby based tools for controlling instances. Let me know if you’d like more info.

    Rumour has it they’re working on a MySQL solution to deal with the non persistent storage. That would deal with issues around using it for ecommerce type applications.

    John

  2. jmason23 says:

    Yeah, it’s cool, isn’t it ;)

  3. John O'Reilly says:

    Hi Walter,

    I was at your talk on Amazon EC2 at Barcamp Galway – very interesting stuff. Client side load balancing was one of the issues you discussed and, as such, I thought you might be interested in the following
    http://www.artima.com/forums/flat.jsp?forum=276&thread=216262

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: