Wednesday, February 4, 2009

Rapidly Processing Video in the Cloud

Cloud computing is more than just a buzzword to those of us that rely on it everyday. It really makes computationally expensive tasks fun to tackle and much easier to pull off.  We had a very successful weekend processing a lot of video, and I thought I could take this opportunity to give an example of how the cloud computing model really saves in the end.  To give you a little bit of background, we needed to rapidly process some of the videos uploaded by our users this weekend in such a way that they would not even "feel" the difference.  We put Amazon Web Services to work on the task and accomplished what would have taken an estimated at 286 computing hours in 10.  Using a little SimpleDB, S3 and EC2 magic, we threw the problem to a grid of 20 EC2 instances that segmented and ripped through the videos in a fraction of the time it would have taken us otherwise.  What is so special about that?..  For us it was a great time saver and money saver.  I have included a screenshot of the AWS Management Console when we started the processing and after it was done and the instances were terminating.


If you have jobs that would take more than a couple of hours to do, it would be well worth your time to take a dive into the Amazon Web Services model.  The Management console made it very easy to start all 20 instances with a single click and take them down afterwards.  We used the new ability to copy content in S3 to a working bucket and the data storage of SimpleDB to help keep our EC2 instances from double processing.
I get a lot of requests to help people understand and harness the power of the cloud, and there is so much that you can use it for that the use cases are varied for every customer.  While our production systems are built to do live scaling and processing based upon load, I thought that this stand alone problem would be one of the more typical use cases to share.  It really shows that an isolated problem can be solved much faster with more resources very cheaply.