After successfully working with Ruby on Rails for a number of recent projects, we have decided to add a Rails Server to our infrastructure.
We have traditionally worked with the Apache server framework for all of our websites. Combining this with Passenger allows us to deliver Rails applications with dynamic spawning of workers. However, with extensive testing we found that this system was not able to handle multiple concurrent requests.
After encountering the problems above, we replaced Apache with Nginx, a more lightweight solution and Passenger with Unicorn, similar systems are run by highly popular websites such as Github, Twitter, Scribd, Groupon, Shopify. With a self-monitoring solution built in, the server can actively manage any worker processes that are forked. The server has been tested to handle 1000 requests with a concurrency of 100 (100 users on the site at any one instance).
This level of server performance, combined with the limitless scalability of Rails allows our new server to easily handle even the highest levels of client traffic. Unicorn offers a stable platform to run our in-house Content Management System called p1t4m. Furthermore, it can run the ever popular ecommerce solution for Rails called Spree.