the many facets of ruby at yellowpagesptgmedia.pearsoncmg.com/imprint_downloads/voices... · a bit...

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

Upload: others

Post on 20-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

Voices That Matter: Professional Ruby Conference

The many facets of Ruby at YELLOWPAGES.COM

Page 2: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

© 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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

© 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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

Who am I?

Page 5: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

Coby Randquist

Director, Web Developmentat

AT&T Interactive

[email protected]

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

Page 6: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

Founding member of

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

Page 8: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

Audience Poll

Self Employed

0 - 10 in product development

10 - 25 in product development

25 + in product development

Page 9: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

Thank you for your time and

attention.

Page 23: The many facets of Ruby at YELLOWPAGESptgmedia.pearsoncmg.com/imprint_downloads/voices... · A bit about us Lots of small teams – web-tier currently three teams 3-5 developers +

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