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



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

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

Presented by Steven Merrill and Brian McMurray.



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment Case Study (DrupalCon Denver 2012) Case Study (DrupalCon Denver 2012) Document Transcript

    • 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 – 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 – Browser Compatibility Mobile phone compatibility
    • 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 - ShowSlow -
    • FRONT-END PERFORMANCE TUNINGRun daily front-end performance tests against anumber of competitors and keep metrics
    • CONTRIB SUCCESS STORIESSocial Badges Flag – Rules – “Buzz” BlogMapsShop
    • CONTRIB: ZAGAT "BUZZ" BLOGMigrate – –
    • CONTRIB: MAPSOpenLayers –
    • CONTRIB: SHOPÜbercart –
    • 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