The team here at SitePoint HQ seems to be holding its breath over the imminent release of the revamped SitePoint Design Contests. After many days, evenings and weekends of intense development, the application is now on the verge of going live … weeks before its servers are ready! This minor miracle—and several others—have been made possible by the Amazon Elastic Compute Cloud.
As if the planned from-scratch rewrite of the existing functionality on a state-of-the-art, multi-server scalable PHP 5 architecture and with a totally standards-compliant front end weren’t a big enough job, the project became more and more ambitious over time, with new features and usability improvements being added in at every stage.
Meanwhile, the development tools were changing too. To give just one example, the team took a weekend to throw together a continuous integration framework that would make it easier to deploy builds to the staging server and send emails to the team when a change to the application broke the automated tests.
Even the infrastructure was a moving target. After a lengthy planning period during which a shiny cluster of new, dedicated servers was assembled on paper and shopped around to various hosts, the team got wind of a number of success stories based on the Amazon Elastic Compute Cloud (EC2), currently in beta.
In short, EC2 lets you host your web site on Amazon.com’s servers. The service makes it look like your application is running on your own cluster of dedicated physical servers, when in fact these servers are being simulated using CPU virtualization technology.
You just upload a hard disk image to Amazon, and then you can add and remove virtual servers running that disk image as you need them to meet the demands your site’s traffic. And best of all, they cost a lot less to run than real, physical servers!
Of course, all this server magic comes with added complexity on the administration side, so the team spent another weekend building a tool to automatically administer a cluster of EC2 servers.
Though EC2 is still in beta, the service has gone from a curious side project to the primary server platform of SitePoint Design Contests 2.0! The site will actually be launched several weeks before our new server cluster is ready, and will initially run entirely on Amazon EC2. Assuming all goes well, our physical servers will act as a back-up in case the EC2 ever goes down.
Of course, there is still a laundry list of planned enhancements to come following the launch, so the team is by no means at the end of its journey. And then there’s the SitePoint Marketplace 2.0 project, which will also be completed and launched in the coming weeks.
Hopefully I can snaffle some of the team’s time to write up the more interesting parts of this technological marvel that they have pulled together. In the meantime, join me in congratulating them on the launch when Design Contests 2.0 goes live!