Ezra just put up a nice set of slides for his RailsConf 2007 presentation. Scaling Rails apps is tricky, and the state of the art has been moving fast (just seems like months ago that apache was back at the front of the pack). Ezra provides background and a picture, based on hard-won experience with EngineYard, on things have been, and where they’re headed.
Ezra recommends Nginx as the load balancing reverse proxy (replacing Apache or lighttpd), and Mongrel (cluster) as the clustered application server for dynamic pages. And he introduces more about Swiftiply to increase Mongrel’s already excellent performance.
There are warnings and some suggestions to attack Ruby/Rails weak spot – memory consumption. And some great thoughts on making use of VMs to partition your applications for scaling and maintenance from day 1. A presentation worth reading through.
I haven’t been doing much with VMs in the past year. It’s the source of some guilt, since my RORVM post still gets search-related hits every day. And I haven’t had anything useful & additional to say, since I develop on my Macbook, then deploy to hosted accounts where I can’t load an arbitrary VM image.
Nginx, Mongrel, Deprec, and Amazon’s hosting services are all great innovations for scaling Rails apps. I’m looking forward to following their evolution.