Our own Tim Sabat wrote up
a super extensive guide explaining how we handle auto-scaling here at CodePen. That is, when we experience high volumes of traffic, additional servers automatically come online and our traffic is load balanced among them. When/if traffic goes back down, those additional servers can spin down. This means we're only paying for just what we need to keep the site fast. And when we push code (which we do every single day), the system is smart enough to push it to all the active servers.
Here's how this very morning looked in our New Relic dashboard:
For those already using autoscaling, this may be worth a look because the technique snapshots EBS volumes instead of entire AMIs, making delivery as fast as a normal Capistrano deploy - no additional AMIs to create!
It's such a big guide, Tim had to split it into three.