at&t interactive: the many facets of ruby

23
Voices That Matter: Professional Ruby Conference The many facets of Ruby at YELLOWPAGES.COM

Upload: coby-randquist

Post on 15-May-2015

3.674 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: At&T Interactive: The Many Facets Of Ruby

Voices That Matter: Professional Ruby Conference

The many facets of Ruby at YELLOWPAGES.COM

Page 2: At&T Interactive: The Many Facets Of Ruby

© 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...

Page 3: At&T Interactive: The Many Facets Of Ruby

© 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

Page 4: At&T Interactive: The Many Facets Of Ruby

Who am I?

Page 5: At&T Interactive: The Many Facets Of Ruby

Coby Randquist

Director, Web Developmentat

AT&T Interactive

[email protected]

Joined the company in April of 2008, after the Big Re-Write

Page 6: At&T Interactive: The Many Facets Of Ruby

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

Page 7: At&T Interactive: The Many Facets Of Ruby

Founding member of

http://www.laruby.comhttp://github.com/laruby

Page 8: At&T Interactive: The Many Facets Of Ruby

Audience Poll

Self Employed

0 - 10 in product development

10 - 25 in product development

25 + in product development

Page 9: At&T Interactive: The Many Facets Of Ruby

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)

Page 10: At&T Interactive: The Many Facets Of Ruby

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

Page 11: At&T Interactive: The Many Facets Of Ruby

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

Page 12: At&T Interactive: The Many Facets Of Ruby

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

Page 13: At&T Interactive: The Many Facets Of Ruby

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

Page 14: At&T Interactive: The Many Facets Of Ruby

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

Page 15: At&T Interactive: The Many Facets Of Ruby

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.

Page 16: At&T Interactive: The Many Facets Of Ruby

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.

Page 17: At&T Interactive: The Many Facets Of Ruby

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.

Page 18: At&T Interactive: The Many Facets Of Ruby

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

Page 19: At&T Interactive: The Many Facets Of Ruby

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...

Page 20: At&T Interactive: The Many Facets Of Ruby

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

Page 21: At&T Interactive: The Many Facets Of Ruby

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

Page 22: At&T Interactive: The Many Facets Of Ruby

Thank you for your time and

attention.

Page 23: At&T Interactive: The Many Facets Of Ruby

© 2008 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.