View
3.674
Download
1
Category
Tags:
Preview:
DESCRIPTION
My presentation given at Voices That Matter: Professional Ruby Conference in Boston, MA in November 2008
Citation preview
Voices That Matter: Professional Ruby Conference
The many facets of Ruby at YELLOWPAGES.COM
© 2008 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.
YELLOWPAGES.COM, LLC
has changed it’s name
(but the site maintains the same branding)
so this presentation is now...
© 2008 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.
Voices that MatterProfessional Ruby Conference
The Many Facets of Ruby at AT&T Interactive
Who am I?
Coby Randquist
Director, Web Developmentat
AT&T Interactive
crandquist@yellowpages.com
Joined the company in April of 2008, after the Big Re-Write
Partner in
Yukihiro ‘Matz’ Matsumoto - speaking at Lone Star Ruby Conference 2008
Expert recording and networking services for conferences, seminars and workshops
http://www.confreaks.com
Founding member of
http://www.laruby.comhttp://github.com/laruby
Audience Poll
Self Employed
0 - 10 in product development
10 - 25 in product development
25 + in product development
A bit about usLots of small teams
– web-tier currently three teams 3-5 developers + manager
– HTML CSS team
– service-tier 3-5 developers + manager
– everyone does TDD
– test-automation team 3-5 developers + manager
– mobile development teams (being built up)
– product teams 4 product managers for web, 1 product manager for each mobile platform
– creative 3-5 designers + manager - comps
– usability 2-3 information architects + manager - wire frames and all human use factor analysis
– systems architecture 3-5 architects + manager (application support, performance)
– software architecture 3-5 architects + manager ( web, services, windows, search, data)
The many facets of Ruby at AT&T Interactive
One of the largest sites running on ruby and rails.
Consistently in the top 30 trafficked web-sites
165+ million page views
27 million monthly unique visitors
The Big re-write of YELLOWPAGES.COM
The re-write for us, is ancient history.
See John Straw’s presentation from RailsConf 2008 for
more details.
http://en.oreilly.com/rails2008/public/schedule/detail/2082
We replaced the Java based legacy application with a Ruby
on Rails app and service-tier, that was developed with a
small team (4 developers + product folks).
Launched June of 2007 on Rails 1.2.3
Site has been live on Rails for nearly 18 months.
Currently running on Rails 2.1.1
How we scaled railsSee DHH’s article from
“It’s boring to scale with Ruby on Rails” from July of 2005http://www.loudthinking.com/arc/000479.html
Data Center
Load Balancer
Web-Tier
Load Balancer
Service Tier
Load Balancer
Search Engine / Oracle Cluster
Data Center
Load Balancer
Web-Tier
Load Balancer
Service Tier
Load Balancer
Search Engine / Oracle Cluster
Load Balancer
The web-tier
Ruby on Rails - 8,415 LOC
Approximately 20 servers per data center
16 Mongrels per server
Minimal Active Record
Communicates with the Services Tier
Asset Packaging, Content Distribution Network with Akamai
and AT&T
The service-tier (today)
Ruby on Rails - 10,108 LOC
Approximately 8 servers per data center
30 mongrels on each server
memcached running on each server
ruby wrapper to our FAST search engine
oracle client for communications with Oracle Clusters
So how else do we use ruby?
Our production environment runs a custom compile of ruby.– the key compilation option is disabling the native thread used for
timing, leading to a 20-30% performance boost from the reduced context-switch overhead (--disable-pthreads). Most distros compile with pthreads support to allow compatibility with Tcl/Tk libraries, but other than that Ruby 1.8 doesn’t benefit from using the extra native thread.
– The rest of it is to make life easier for our operation center– Ruby 1.8.6 p114 base + security patches– standalone RPM, doesn’t interfere with OS provided RPM– bundled with Rubygems
We host our own internal gem server to maximize control over production environments.
It’s not all rails, or at least it won’t be
Our services tier is currently being re-written on Merb!
Why?
– Rails footprint for our app - 60MB per mongrel
– Merb footprint for our app - 25MB per mongrel
Performance - testing is not yet complete, but initial results
are promising enough to do a full re-write.
Effort required 3 developers, approximately 8 weeks.
Mobile platforms and ruby
Native iPhone app available in the App Store, runs against a
rails service app that sits in front of our service tier.
Same model is in development for other mobile devices
including the Google Android.
Our commitment to Open Source
Our developers have contributed to Rails, Merb, Sequel, and many other open source projects.
We promote community participation, some projects from employees of AT&T Interactive:
– waves - Resource-oriented open source Ruby framework for Web apps
– functors - patterned based dispatch for Ruby
– kablame - easily summarize who has done how much on work on your code base
– crufty - find unused code with ease
– hoshi - a library for creating real first-class HTML/XML views
– live-console - a ruby gem for providing irb over channels other than stdio
And even more - Research & Development
AT&T Interactive’s Research & Development group is building
out waves, and hoshi.
Waves uses bacon as it’s testing framework
They have written a rack handler for jetty, and are currently
developing none branded apps, Speak 4 it, and Need 2 Pee.
Both of which will be in the App Store soon, running a native
iPhone client against Waves on Jruby and jetty behind
nginx on Amazon’s EC2 for dynamic scaleability.
Additional research is being done with search, natural
language recognition, speech recognition, and a lot more...
Conference created content
Don’t get too big...– Small 3-5 developers + manager(hands on)– Mockup to HTML is separate– Still experimenting with pairing
Interviewing– Code screening in the form of a test class plus requirements– Short turn around– each candidate is decided on independent of all others– open source and community involvement count
Version Control– Subversion for production and deployment– git-svn for life– most developers use git and gitjour then git-svn back into primary
repository
What does the name change mean?
AT&T Interactive means
– we will be building out additional
properties in the future
– we’ll take our passion for ruby to
additional properties
– we’re continuing to hire
passionate developers
– we get to build even more cool
stuff
Drink the Ruby Kool-aid
Thank you for your time and
attention.
© 2008 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.
Recommended