ZAGAT.COM CASE STUDY
WHO ARE WE?Steven MerrillDirector of Engineering, Phase2 Technology@stevenmerrillBrian McMurrayDeveloper, Phase2 Technolog...
, the quick historyFounded in 1979 by Tim and Nina ZagatUser-Generated Content before “User-Generated Content”“The Gastron...
THE PROBLEM(S)Legacy ASP.NET website rapidly agingUpdates difficultComplicated QA testing and deploymentprocessDesire for ...
THE SOLUTIONSFight for the UsersDrupal and FriendsRobots for Better LivingIt’s Dangerous To Go Alone! Take This!Eye on the...
FIGHT FOR THE USERSIterate quickly and test the ideas with real usersTrack goals and analytics
USER TESTINGFormal in-person interviews with functionalprototypeOn-going user testing through usertesting.comservice  User...
USER TESTING (VIDEO)   00:01               -00:34
TRACK GOALS AND ANALYTICSGoogle Analytics –http://dgo.to/google_analyticsCrazyEgg analytics – http://crazyegg.comGoogle We...
DRUPAL AND FRIENDSUse complimentary technologies to augmentContrib for the 80%, Custom for the 100%
DYNAMIC CHARTINGRaphaëlJS –http://raphaeljs.com  Browser Compatibility  Mobile phone  compatibility
THE ZAGAT MATRIX
THE ZAGAT MATRIX
PERFORMANCE MATTERSVarnish – http://varnish-cache.orgFront-end Performance
VARNISHHTTP CachingCaching Fragments (ESI)
FRONT-END PERFORMANCESpriting“Spooning”  <img src="spacer.gif"  data-src="actual-  image.jpg" />Page Weight Trimming  AJAX...
FRONT-END PERFORMANCE TUNINGRun daily front-end performance tests against anumber of competitors and keep metrics
FRONT-END PERFORMANCE TUNING
CONTRIB SUCCESS STORIESSocial Badges  Flag –  http://dgo.to/flag  Rules –  http://dgo.to/rulesZagat “Buzz” BlogMapsShop
CONTRIB: ZAGAT "BUZZ" BLOGMigrate – http://dgo.to/migrateViews – http://dgo.to/views
CONTRIB: MAPSOpenLayers – http://dgo.to/openlayers
CONTRIB: SHOPÜbercart – http://dgo.to/ubercart
GOING CUSTOMSearchPaid Online Subscriptions
SEARCHNeeded to integrate with specific Endeca setupAJAX refreshing of resultsIntegration with subscription upsellingMulti...
PAID ONLINE SUBSCRIPTIONSIntegrate with specific payment handler andZagat backendMany discrete data points:  Promo codes  ...
CONTRIB IN CUSTOM CODESubscription offers used CTools Export UI
ROBOTS FOR BETTER LIVINGAutomate deploymentsPerformance monitoringRegression testing
JENKINSAutomated data importsAutomatic deployment  Run SimpleTests before each  deployEmpowering QA people to pushand do d...
MONITORING TOOLSReal-time StatsPingdomGTMetrix
REAL-TIME STATSCoRadiant ApplianceZeus Load Balancer
PINGDOMUptimeBackend response times
GTMETRIXFront-end performance testingDaily snapshot and performance over timeCan send custom cookies or use HTTPauthentica...
SELENIUMhttp://seleniumhq.orgAutomated regression testingRun on the QA environmentARIA-compliant autocomplete(by upgrading...
ITS DANGEROUS TO GO ALONE!TAKE THIS!Your Drupal site needs more than just DrupalersTips on adding team members
BRINGING IN NON-DRUPAL TALENTLook for folks:  Who are familiar with contributing to open-  source  Interested in learning ...
EYE ON THE PRIZEAll software has bugsProduct owners with deep experience will noticebugs that users won’tSome features wer...
HINDSIGHT IS 20/20Config ManagementVirtualized LAMP environments
CONFIGURATION MANAGEMENTSix hosting environments
Zagat.com Case Study (DrupalCon Denver 2012)
Zagat.com Case Study (DrupalCon Denver 2012)
Upcoming SlideShare
Loading in...5
×

Zagat.com Case Study (DrupalCon Denver 2012)

1,275

Published on

A look behind the scenes of the 2011 Drupal relaunch of Zagat.com. Includes interactive charting with RaphaelJS and multi-layered performance optimization techniques.

Presented by Steven Merrill and Brian McMurray.

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

No Downloads
Views
Total Views
1,275
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Zagat.com Case Study (DrupalCon Denver 2012)

  1. 1. ZAGAT.COM CASE STUDY
  2. 2. WHO ARE WE?Steven MerrillDirector of Engineering, Phase2 Technology@stevenmerrillBrian McMurrayDeveloper, Phase2 Technology@bmcmurray
  3. 3. , the quick historyFounded in 1979 by Tim and Nina ZagatUser-Generated Content before “User-Generated Content”“The Gastronomic Bible” - The Wall Street JournalWe worked with Zagat from June 2010 -November 2011
  4. 4. THE PROBLEM(S)Legacy ASP.NET website rapidly agingUpdates difficultComplicated QA testing and deploymentprocessDesire for website to be more socialSeparated systems (website, blog, webstore)
  5. 5. THE SOLUTIONSFight for the UsersDrupal and FriendsRobots for Better LivingIt’s Dangerous To Go Alone! Take This!Eye on the PrizeHindsight is 20/20
  6. 6. FIGHT FOR THE USERSIterate quickly and test the ideas with real usersTrack goals and analytics
  7. 7. USER TESTINGFormal in-person interviews with functionalprototypeOn-going user testing through usertesting.comservice Users could be granted special permission (roles) to access beta features
  8. 8. USER TESTING (VIDEO) 00:01 -00:34
  9. 9. TRACK GOALS AND ANALYTICSGoogle Analytics –http://dgo.to/google_analyticsCrazyEgg analytics – http://crazyegg.comGoogle Website Optimizer for multi-variatetestingLinks with anchor names (# tags) to track in-sitereferrals
  10. 10. DRUPAL AND FRIENDSUse complimentary technologies to augmentContrib for the 80%, Custom for the 100%
  11. 11. DYNAMIC CHARTINGRaphaëlJS –http://raphaeljs.com Browser Compatibility Mobile phone compatibility
  12. 12. THE ZAGAT MATRIX
  13. 13. THE ZAGAT MATRIX
  14. 14. PERFORMANCE MATTERSVarnish – http://varnish-cache.orgFront-end Performance
  15. 15. VARNISHHTTP CachingCaching Fragments (ESI)
  16. 16. FRONT-END PERFORMANCESpriting“Spooning” <img src="spacer.gif" data-src="actual- image.jpg" />Page Weight Trimming AJAX upgrades OpenLayers build scriptsMonitoring HARViewer - http://www.softwareishard.com/har/viewer/ ShowSlow - http://www.showslow.com/
  17. 17. FRONT-END PERFORMANCE TUNINGRun daily front-end performance tests against anumber of competitors and keep metrics
  18. 18. FRONT-END PERFORMANCE TUNING
  19. 19. CONTRIB SUCCESS STORIESSocial Badges Flag – http://dgo.to/flag Rules – http://dgo.to/rulesZagat “Buzz” BlogMapsShop
  20. 20. CONTRIB: ZAGAT "BUZZ" BLOGMigrate – http://dgo.to/migrateViews – http://dgo.to/views
  21. 21. CONTRIB: MAPSOpenLayers – http://dgo.to/openlayers
  22. 22. CONTRIB: SHOPÜbercart – http://dgo.to/ubercart
  23. 23. GOING CUSTOMSearchPaid Online Subscriptions
  24. 24. SEARCHNeeded to integrate with specific Endeca setupAJAX refreshing of resultsIntegration with subscription upsellingMultiple search interfacesCustom autocomplete
  25. 25. PAID ONLINE SUBSCRIPTIONSIntegrate with specific payment handler andZagat backendMany discrete data points: Promo codes Subscription offers Bundles Partner promotions
  26. 26. CONTRIB IN CUSTOM CODESubscription offers used CTools Export UI
  27. 27. ROBOTS FOR BETTER LIVINGAutomate deploymentsPerformance monitoringRegression testing
  28. 28. JENKINSAutomated data importsAutomatic deployment Run SimpleTests before each deployEmpowering QA people to pushand do deploys TortoiseHg on a Windows serverCron, with historical reportingRun daily tasks to sync between systems
  29. 29. MONITORING TOOLSReal-time StatsPingdomGTMetrix
  30. 30. REAL-TIME STATSCoRadiant ApplianceZeus Load Balancer
  31. 31. PINGDOMUptimeBackend response times
  32. 32. GTMETRIXFront-end performance testingDaily snapshot and performance over timeCan send custom cookies or use HTTPauthentication
  33. 33. SELENIUMhttp://seleniumhq.orgAutomated regression testingRun on the QA environmentARIA-compliant autocomplete(by upgrading jQuery and jQueryUI) meant we could test with Selenium
  34. 34. ITS DANGEROUS TO GO ALONE!TAKE THIS!Your Drupal site needs more than just DrupalersTips on adding team members
  35. 35. BRINGING IN NON-DRUPAL TALENTLook for folks: Who are familiar with contributing to open- source Interested in learning new thingsExamples Junior developer with a Linux / CS background who ended up contributing to a large amount of Drupal development Experienced contributor to a Linux distribution with no web programming background who came in and helped write complex Selenium tests and automate web QA Later went on to assume the majority of the sysops responsibilities
  36. 36. EYE ON THE PRIZEAll software has bugsProduct owners with deep experience will noticebugs that users won’tSome features were gone, and users let us know
  37. 37. HINDSIGHT IS 20/20Config ManagementVirtualized LAMP environments
  38. 38. CONFIGURATION MANAGEMENTSix hosting environments

×