The New York Times used Ruby on Rails to pull together, analyze and display election results in near real time on one of its busiest Web traffic days ever. How did nytimes.com scale up Rails — a framework known for quick development turnaround but less than lightning fast performance?
“The secret is, we didn’t,” Ben Koski told a session at the Professional Ruby Conference in Boston Tuesday. Instead, Koski and others in the Times’ interactive new media group used low-level SQL commands for some key data-manipulation tasks. And while some Rails purists might frown upon choosing SQL over Rails’ own higher-level interactions with data, Koski said the direct SQL commands helped slash the time needed to process thousands of records from 30 seconds to about 1 second — a major boost when election result files were literally being updated by the minute.
In fact, while this week’s event is aimed at Ruby practitioners and enthusiasts, a common theme emerged from several of the presentations: Don’t get hung up on the idea that one tool, language or platform — no matter how good — fits all needs.
Rails can help developers go from raw data to a working application in just a few hours, and it’s “tweak friendly” for multiple iterations of an already working app, Koski noted.
Rails Web code can be used from a command line to run automated cron jobs, and there’s customizable built-in SQL for dealing with data that needs to be reformatted.
Even so, deployment — while improving — can be considered a weakness compared to other options, he noted. Also, installing and running Rails tools on Sun servers can be a challenge ( Amazon’s EC2 cloud computing service is now hosting some nytimes.com Rails apps). And, available built-in administrative interfaces are not as robust in Rails as they are on a competing Python -based framework, Django . The Times interactive new media group — which works largely on projects that offer added functionality beyond conventional text, audio and video — plans to launch a Django application next month. (The bulk of the New York Times Web site does not use Rails.)
At YellowPages.com, one of the largest sites to be built with Rails, developers are looking to rewrite some services using another framework, Merb, said director of Web development Coby Randquist. That’s because the Merb version would use less than half the memory of the Rails version, allowing more instances to run on the same hardware.
Still, Randquist sounded bullish on the move last year to replace the Web site’s legacy Java code with Ruby on Rails . “We haven’t regretted that,” he said, scoffing at criticism that Rails doesn’t scale.
(Ruby began moving into Java territory sometime in 2006)
YellowPages.com is one of the Web’s top 30 traffic sites, handling about 165 million page requests per month. Randquist pointed conference attendees to an article by Rails inventor David Heinemeier Hansson, “It’s boring to scale with Ruby on Rails.”
YellowPages.com scales in part by using load balancers, two data centers and very little dynamic content from its own Web servers, outsourcing the delivery of items like images and JavaScript. The company also uses its own version of Ruby, compiled to optimize performance for its application by doing things such as disabling unneeded functionality.
However, the entire company isn’t a Rails shop, Randquist noted; while the consumer-facingYellowPages.com site is coded with Ruby on Rails, AT&T Interactive’s advertising products are built on .Net.