Platform BackgroundWe host on heroku - a great company that's done a lot of good for the programming community. They offer a powerful product that handles all the operations for you. You can see on their public status page that they have an excellent uptime record - many world-class websites are hosted there.
Their big innovation has been the "dyno" - it's their web server process and it's the equivalent of a single process on an amazon ec2 VM with like 16 other processes on the same box. (shared)
You get one for free and you can run a site off of it no problem - we actually ran on the free tier while we were in public beta (summer 2012). It worked perfectly. We quickly moved up and have consistently increased dynos as we've grown.
Later, Heroku customers recognized that the 500MB of memory was a problem so they came out with a "2X Dyno" which had 1GB. Then, just a few weeks ago a "PX Dyno" that gives you an entire ec2 VM with 8GB ram to yourself (not shared).
One of the things that makes it attractive is they handle the scaling infrastructure for you. You can send a command to increase the number of app servers and even the size of them automatically. You can scale up to an unlimited size - without needing an operations team to manage physical / virtual servers.
One of the downsides of this is that you don't get access to all the servers / load balancers / logs / etc of your infrastructure - and have to sometimes troubleshoot just using application logs or performance metrics - which is not the same as ssh'ing into a box and seeing how it feels and pinging around.