litany against fear
The many facets of Ruby at AT&T Interactive Notes
Part of my series of notes from the Professional Ruby Conference. See them all here.
This talk is from Coby Randquist from AT&T Interactive (and a partner at Confreaks!)
They’re already TOO BIG. They handle this by breaking these things down into smaller teams. Everyone does TDD! Mobile development teams too: iPhone, Blackberry, Android. Project managers, plenty of designers. Huge team.
The site (YellowPages.com) is one of the highest traffic sites on the net. 27 million monthly uniques, 165+ million page views. WOW. Basically, they replaced a legacy Java legacy application with a Rails app and service tier with a small team in a manner of months. It’s been live since July 2007, currently running on Rails 2.1.1.
How did they scale Rails? Load balancer gets requests that figures out which datacenter to hit it. Load Balancer there => Web Tier => Load Balancer => Service Tier => Load Balancer => Oracle Cluster.
Web tier: 8.4k LOC, 20 servers/data center, 16 mongrels/server. Minimal AR. Communicates with service tier primarily. These process ERB and HAML. CDN servers for images, js.
Service tier: 10k LOC. 8 servers/data center, 30 mongrels/server, memcached. Talks to search engine and oracle DBs.
Their production environment runs a custom compilation of Ruby. Plenty of other little tweaks for speed boosts. They’re rewriting their service layer in Merb! Why? Rails footprint: 60MB/mongrel. Merb footprint: 25MB/mongrel. Huge difference because of their traffic. Hopefully will deploy by the end of the year.
They’re huge into Open Source. Plenty of open source projects on GitHub: waves, functors, kablame, crufty, hoshi, live-console. Lots of fun little apps that their R&D is playing with: ‘Speak 4 it’, ‘Need 2 Pee’. Research being done with search, natural language recognition, speech recognition and more. Their site is a huge force in hyperlocal searching.
Content from other presentations: Their interview process is quite interesting…they send ruby code first and give candidates and hour to complete a unit test with a class. They use SVN for version control and most developers use git-svn.