A client of mine had a vast amount of digital artwork as part of their software.
That digital source was vector graphics.
For their web application it had to be converted to jpgs.
They had software to do it, but it took literally weeks to run in their office. They kept buying increasing faster PCs to run it. Then it took a long time to upload the results. The outcome was a process that they didn’t like to run very often, consequently they left artwork changes unprocessed.
We designed an amazon web services ec2 application. The design included:
– a head node. That managed the queue, started new nodes, hosted the results, and shutdown everything once done.
– processing nodes. These booted, requested work from the head node, and returned results to the head node.
– the head node kept calculating the estimated run time of the job, based on the performance of all the nodes. If the estimated run time still exceeded 1 hour, it started another node.
– once there was no more work for a processing node it was shutdown.
The outcome was they could process ANY amount of source artwork into jpg’s in 1 hour. The application simply started more and more nodes.
Amazon charges per hour, or part thereof. So we had also minimised the amazon ec2 costs by completing everything within an hour.
The data once processed was already in the cloud, and it was very quick to copy to the web server.
The customer also saved money, in not having to buying increasing faster PCs in their office.