Zagat.com Case Study (DrupalCon Denver 2012)
Upcoming SlideShare
Loading in...5
×
 

Zagat.com Case Study (DrupalCon Denver 2012)

on

  • 1,205 views

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

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.

Statistics

Views

Total Views
1,205
Views on SlideShare
1,205
Embed Views
0

Actions

Likes
1
Downloads
13
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Zagat.com Case Study (DrupalCon Denver 2012) Zagat.com Case Study (DrupalCon Denver 2012) Document Transcript

    • ZAGAT.COM CASE STUDY
    • WHO ARE WE?Steven MerrillDirector of Engineering, Phase2 Technology@stevenmerrillBrian McMurrayDeveloper, Phase2 Technology@bmcmurray
    • , 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
    • THE PROBLEM(S)Legacy ASP.NET website rapidly agingUpdates difficultComplicated QA testing and deploymentprocessDesire for website to be more socialSeparated systems (website, blog, webstore)
    • THE SOLUTIONSFight for the UsersDrupal and FriendsRobots for Better LivingIt’s Dangerous To Go Alone! Take This!Eye on the PrizeHindsight is 20/20
    • 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 Users could be granted special permission (roles) to access beta features
    • USER TESTING (VIDEO) 00:01 -00:34
    • 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
    • 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 upgrades OpenLayers build scriptsMonitoring HARViewer - http://www.softwareishard.com/har/viewer/ ShowSlow - http://www.showslow.com/
    • 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 upsellingMultiple search interfacesCustom autocomplete
    • PAID ONLINE SUBSCRIPTIONSIntegrate with specific payment handler andZagat backendMany discrete data points: Promo codes Subscription offers Bundles Partner promotions
    • 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 deploys TortoiseHg on a Windows serverCron, with historical reportingRun daily tasks to sync between systems
    • 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 HTTPauthentication
    • SELENIUMhttp://seleniumhq.orgAutomated regression testingRun on the QA environmentARIA-compliant autocomplete(by upgrading jQuery and jQueryUI) meant we could test with Selenium
    • 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 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
    • 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
    • HINDSIGHT IS 20/20Config ManagementVirtualized LAMP environments
    • CONFIGURATION MANAGEMENTSix hosting environments