At&T Interactive: The Many Facets Of Ruby

3,972 views
3,835 views

Published on

My presentation given at Voices That Matter: Professional Ruby Conference in Boston, MA in November 2008

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,972
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
60
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

At&T Interactive: The Many Facets Of Ruby

  1. 1. Voices That Matter: Professional Ruby Conference The many facets of Ruby at YELLOWPAGES.COM
  2. 2. 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.
  3. 3. Voices that Matter Professional Ruby Conference The Many Facets of Ruby at AT&T Interactive © 2008 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.
  4. 4. Who am I?
  5. 5. Coby Randquist Director, Web Development at AT&T Interactive crandquist@yellowpages.com Joined the company in April of 2008, after the Big Re-Write
  6. 6. Partner in http://www.confreaks.com Expert recording and networking services for conferences, seminars and workshops Yukihiro ‘Matz’ Matsumoto - speaking at Lone Star Ruby Conference 2008
  7. 7. Founding member of http://www.laruby.com http://github.com/laruby
  8. 8. Audience Poll Self Employed 0 - 10 in product development 10 - 25 in product development 25 + in product development
  9. 9. A bit about us Lots 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)
  10. 10. 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 27 million monthly unique visitors 165+ million page views
  11. 11. 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
  12. 12. How we scaled rails See DHH’s article from “It’s boring to scale with Ruby on Rails” from July of 2005 http://www.loudthinking.com/arc/000479.html Load Balancer Data Center Data Center Load Balancer Load Balancer Web-Tier Web-Tier Load Balancer Load Balancer Service Tier Service Tier Load Balancer Load Balancer Search Engine / Oracle Cluster Search Engine / Oracle Cluster
  13. 13. 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
  14. 14. 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
  15. 15. 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.
  16. 16. 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.
  17. 17. 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.
  18. 18. 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
  19. 19. 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...
  20. 20. 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
  21. 21. 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
  22. 22. Thank you for your time and attention.
  23. 23. © 2008 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.

×