PHP Fog and The Smithsonian
Imagine our delight when we discovered that the Smithsonian Cooper-Hewitt, National Design Museum was running their site on our flagship PaaS product, PHP Fog!
Normally, we’d be treating you to our traditional Friday round up post right about now; instead, we’d like to share one of our customer’s success stories. Plenty of our team members have fond memories of visiting the Smithsonian’s many museums, our impressionable and nerdy brains feasting on delights from the Apollo 11 Command Module to the Hope Diamond.
Read on for more from Micah Walter, Cooper-Hewitt’s webmaster and PHP Fog afficianado…
Moving to the Fog
When people have asked me where we host our website, I have usually replied with “it’s complicated.”
Last week we made some serious changes to our web infrastructure. Up until now we have been running most of our web properties on servers we have managed ourselves at Rackspace. These have included dedicated physical servers as well as a few cloud based instances. We also have a couple of instances running on Amazon EC2, as well as a few properties running at the Smithsonian Mothership in Washington DC.
For a long time, I had been looking for a more seamless and easier to manage solution. This was partially achieved when I moved the main site from our old dedicated server to a cloud-based set of instances behind a Rackspace load balancer. It seemed to perform pretty well, but still I was mostly responsible for it on my own.
PHPFog can be used to easily scale your web-app by adding multiple app servers
Eventually I discovered a service built on top of Amazon EC2 known as PHP Fog. This Platform as a Service (PaaS) is designed to allow people like myself to easily develop and deploy PHP based web apps in the Cloud. Essentially, what PHPFog does is set up an EC2 instance, configured and optimized by their own design. This is placed behind their own set of load balancers, Varnish Cache servers and other goodies, and connected up with an Amazon RDS MySQL server. They also give you a hosted Git repository, and in fact, Git becomes your only connection to the file system. At first this seemed very un-orthrodox. No SSH, no FTP, nothing… just Git and PHPMyAdmin to deal with the database. However, I spent a good deal of time experimenting with PHPFog and after a while I found the workflow to be really simple and easy to manage. Deployment is as easy as doing a Git Push, and the whole thing worked in a similar fashion to Heroku.com, the popular Ruby on Rails PaaS.
What’s more is that PHPFog, being built on EC2 was fairly extensible. If I wanted to, I could easily add an ElastiCache server, or my own dedicated RDS server. Basically, through setting up security groups which allow communication to PHPFog’s instances, I am able to connect to just about anything that Amazon AWS has to offer.
I continued to experiment with PHPFog and found some additional highlights. Each paid account comes with a free NewRelic monitoring account. NewRelic is really great as it offers a much more comprehensive monitoring system than many of the typical server alerting and monitoring apps available today. You can really get a nice picture of where the different bottlenecks are happening on your app, and what the real “end user” experience is like. In short, NewRelic was the icing on the cake.
Our New Relic Dashboard
So, last week, we made the switch and are now running our main cooperhewitt.org site on “The Fog.” We have also been running this blog on the same instance. In fact, if you are really interested, you can check out our NewRelic stats for the last three hours in the “Performance menu tab!” It took a little tweaking to get our NewRelic alerts properly configured, but they seem to be working pretty seamlessly now.
Ed. Note: This post was originally published on the Cooper-Hewitt Labs Blog and is reproduced here with permission. Many thanks to Micah and our friends at Cooper-Hewitt for sharing their story with us.