Need to Know how to Use EC2 instances for screenshots
Hello all today we are going to see about how to Use EC2 instances for screenshots!
using EC2 instances to run various browsers and generate and store (Amazon S3?) screenshots?
That's apparently exactly what they are doing - as far as I know this is not officially documented in detail indeed, but one can deduce it to some extent from the following information.
1) Their Feature Tour -> Email Tests answers How does it work? as follows:
You send us a copy of your email design, either by uploading the HTML or sending us a test email. Within a couple of minutes you'll see screenshots of your email as it's rendered by all the different email clients. Made a change? One click starts a re-test.
This is exactly what one would expect, i.e. they are apparently running a test harness which exercises all supported email clients (and dito for browsers) after a new test is scheduled via a queue. This requires a decent amount of automation around all these clients; while some may nowadays offer a dedicated automation API/component to allow rendering without running the full application, I expect this to be a fairly complicated process all in all still, likely requiring external UI automation, which used to be brittle and slow (OS support for this improved in recent years though).
2) Litmus has fortunately participated in an AWS Case Study in February 2010 (updated in April 2011), which confirms their infrastructure to be (meanwhile) running on AWS (specifically Amazon EC2 and Amazon S3) and provides additional insight:
Initially, Litmus was hosted on a combination of in-house hardware and dedicated servers. The company grew quickly, and soon they outgrew their hardware. [...] Paul Farnell tells us about the process, “We looked for solutions that would meet our needs of scalability and cost. We chose Amazon S3 because there was nothing else like it when we first started. For Amazon EC2 we initially trialed a competitor to Amazon, but found it to be tremendously unreliable. [emphasis mine]
Furthermore (as of April 2011) Litmus uses Amazon S3 to store over 6TB of customers’ images and Amazon EC2 for running customers’ tests:
When we first started out we stored the images on our own hardware, but as we grew we realized this was quickly going to become a headache. By using S3 we were able to focus on improving our product, not worrying about scaling up our storage. We also use Amazon EC2(AWS Certified) to run the automated email tests for our customers; we currently have 400 EC2 servers. By using EC2 we’re able to add more servers to our grid during the busy periods of the day, and remove them during quieter periods.
Finally, they are using Spot Instances [to] gain significant EC2 cost savings:
Specifically, we have a queue-based architecture where a worker node will pull a job from the queue and then process it. As worker nodes appear after a Spot bid is accepted, they can just take jobs off of the queue. [emphasis mine]