While a lot of attention has been focused on Twitter with questions about whether Ruby on Rails scales, LinkedIn has been quietly running a RoR application on Facebook that is beating down around 1 billion page view per month. Bumpersticker, a relatively trivial Facebook application that allows you to create a cartoon that you can put on your Facebook friends' sites.
Developed by LinkedIn's Light Engineering Development team, the service was designed to help LinkedIn clearly understand the viral growth vectors that impact a web application. Jim Meyer, manager of LED says that Rails scales like any other web application: "That is to say you need to take into account all the components from the moment the request is received at the load balancer all the way down and all the way back again." Meyer identifies three basic design guidelines in all cases that give customers a better and faster experience that in turn increases the likelihood they will use the application:
- Talking to spindles is bad - talking to file systems and databases has to be minimized
- Dynamic content is your enemy. Anything you can turn into static, including periodic re-caching should be removed.
- Push everything you possibly can to the client to reduce the amount of traffic going over the network no matter where the client is.
According to Meyer, the net result is that the more time people can play with an application, the more likely they are to pull people in which helps make applications viral. Bumpersticker averages 1.4 million daily users, peeking at 1.7 million and each use includes around 2o page views. That calculates out to around 1 billion page views per month. Joyent, which provides LinkeIn's cloud computing environment claims this amounts to transfer rates of 1 gigabit per second sustained transfer rate and around 100TB per month of data transferred. LinkedIn achieves this by throwing as much content as possible at Joyent's F5 load balancers.
Rod Boothby, evangelist for Joyent says the secret to making applicaitons of this kind work is Joyent's own distribution of Solaris which includes DTrace: "It helps you instrument every piece of an application so you can see where bottlenecks occur, quickly fix them and scale upwards. Just as important, the key for enterprise is to have a data center that includes everything with which you are already familiar. With Amazon you have to make material changes, with Google, you pretty much have to change everything."
Given that Bumpersticker is relatively trival, I asked Boothby what's the point? "It has allowed LinkedIn to perfect a new way of fast tracking the development of new applications, edge cases if you will that need to scale quickly and reliably. LinkedIn is for example using Joyent's cloud to work on LinkedIn mobile (currently in beta) applications that will need to work anywhere in the world."
Update: Joyent has a video in which LinkedIn explains what they did.