Changing the Tires at 60 MPH: How Martha Stewart Living Omnimedia Migrated to Drupal

Changing the Tires at 60 MPH: How Martha Stewart Living Omnimedia Migrated to Drupal

Building a complex, high traffic, Drupal site from scratch is challenging. Converting a site that already has a high traffic web presence to Drupal while maintaining the legacy site throughout the process is like changing your tires at 60 MPH. Martha Stewart Living Omnimedia tackled this very issue on an enterprise scale, running two CMS systems, Vignette and Drupal, simultaneously under the same domains.

This session was co-presented by Lullabot James Sansbury and the MSLO Internet Technology team at Drupalcon 2012.

06d59b7a09c0085d85d0a42638e0db01?s=128

Mark Dorison

March 20, 2012
Tweet

Transcript

  1. 1.

    CHANGING THE TIRES AT 60 MPH HOW MARTHA STEWART LIVING

    OMNIMEDIA MIGRATED TO DRUPAL MARTHA STEWART DIGITAL TEAM DrupalCon Denver 2012 MARTHASTEWART.COM Friday, March 16, 12
  2. 10.

    WHY? EXPENSIVE AND AGING DIFFICULT TO CUSTOMIZE INFLEXIBLE CONTENT MODEL

    CUMBERSOME EDIT UI SCARCE DEV RESOURCES Friday, March 16, 12
  3. 17.
  4. 18.

    GETTING STARTED 4 Analyzed Internal Processes 1 Document Content Types

    2 Document High-Level Functionality 3 Content Asset Inventory Friday, March 16, 12
  5. 19.

    GETTING STARTED 3 Content Asset Inventory 4 Analyzed Internal Processes

    5 Engage the Experts 1 Document Content Types 2 Document High-Level Functionality Friday, March 16, 12
  6. 23.

    DRAWING THE ROADMAP 3 Mitigate Risk 1 Show Continuous Progress

    2 Socialize Drupal Internally Friday, March 16, 12
  7. 24.

    DRAWING THE ROADMAP 3 Mitigate Risk 4 Keep Developers Psyched

    1 Show Continuous Progress 2 Socialize Drupal Internally Friday, March 16, 12
  8. 25.

    DRAWING THE ROADMAP 3 Mitigate Risk 4 Keep Developers Psyched

    5 Keep Management Happy 1 Show Continuous Progress 2 Socialize Drupal Internally Friday, March 16, 12
  9. 31.

    DRAWING THE ROADMAP 3 Move One Content Type at a

    Time 1 Migrate Iteratively 2 Maintain Two Platforms Friday, March 16, 12
  10. 32.

    DRAWING THE ROADMAP 3 Move One Content Type at a

    Time 4 MAGIC! 1 Migrate Iteratively 2 Maintain Two Platforms Friday, March 16, 12
  11. 40.

    MOVING THE DATA MIGRATE MODULE Drupal 6 Magazine Platform Drupal

    6 Enterprise Content Library MarthaStewart.com WholeLiving.com MarthaStewartWeddings.com Drupal Migrations Drupal Migrations Custom Image Upload Service <XML> <XML> IPTC Data VCM Data XML HTTP Service Recipe Data HTTP Service Print Images Friday, March 16, 12
  12. 41.

    MOVING THE DATA TAKE AWAYS 1 Vital to track content

    sources easily Friday, March 16, 12
  13. 42.

    MOVING THE DATA TAKE AWAYS 1 Vital to track content

    sources easily Friday, March 16, 12
  14. 43.

    MOVING THE DATA TAKE AWAYS 1 Vital to track content

    sources easily Friday, March 16, 12
  15. 44.

    MOVING THE DATA TAKE AWAYS 1 Vital to track content

    sources easily 2 Content types are iterative too Friday, March 16, 12
  16. 45.

    MOVING THE DATA TAKE AWAYS 1 Vital to track content

    sources easily 2 Content types are iterative too 3 Real data reveals bugs earlier Friday, March 16, 12
  17. 46.

    MOVING THE DATA TAKE AWAYS 1 Vital to track content

    sources easily 2 Content types are iterative too 3 Real data reveals bugs earlier 4 Migrate is powerful, complex, and heavy Friday, March 16, 12
  18. 58.

    DEVELOPING, TESTING, DEPLOYING 1 Create deployment package bouwer seed [platform]

    [version] 2 Save deployment package bouwer save [platform] [version] Friday, March 16, 12
  19. 59.

    DEVELOPING, TESTING, DEPLOYING 1 Create deployment package bouwer seed [platform]

    [version] 2 Save deployment package bouwer save [platform] [version] 3 Deploy bouwer deploy [platform] [version] Friday, March 16, 12
  20. 61.

    DEVELOPING, TESTING, DEPLOYING TAKE AWAYS 2 Better coding 1 Consistent

    deployments build confidence Friday, March 16, 12
  21. 62.

    DEVELOPING, TESTING, DEPLOYING TAKE AWAYS 1 Consistent deployments builds confidence

    3 Still can't capture every configuration detail :( 2 Better coding Friday, March 16, 12
  22. 63.

    DEVELOPING, TESTING, DEPLOYING TAKE AWAYS 1 Consistent deployments builds confidence

    4 True rollbacks impossible in Drupal 2 Better coding 3 Still can't capture every configuration detail :( Friday, March 16, 12
  23. 76.
  24. 77.

    BUILDING THE SITE TAKE AWAYS 1 Node references are powerful

    and flexible 2 ...but they’re also expensive Friday, March 16, 12
  25. 78.

    BUILDING THE SITE TAKE AWAYS 1 Node references are powerful

    and flexible 2 ...but they’re also expensive 3 ...and they create caching issues Friday, March 16, 12
  26. 79.

    BUILDING THE SITE TAKE AWAYS 1 Node references are powerful

    and flexible 2 ...but they’re also expensive 3 ...and they create caching issues 4 Block and context need strategic planning Friday, March 16, 12
  27. 100.

    CONTROLLING THE CONTENT TAKE AWAYS 1 Drupal permissions are complex

    and processor intensive Friday, March 16, 12
  28. 101.

    CONTROLLING THE CONTENT TAKE AWAYS 1 Drupal permissions are complex

    and processor intensive 2 Workflow is powerful but unruly Friday, March 16, 12
  29. 102.

    CONTROLLING THE CONTENT TAKE AWAYS 1 Drupal permissions are complex

    and processor intensive 2 Workflow is powerful but unruly 3 Solve special cases with hooks Friday, March 16, 12
  30. 103.

    CONTROLLING THE CONTENT TAKE AWAYS 1 Drupal permissions are complex

    and processor intensive 2 Workflow is powerful but unruly 3 Solve special cases with hooks 4 Avoid using actions Friday, March 16, 12
  31. 104.

    CONTROLLING THE CONTENT TAKE AWAYS 1 Drupal permissions are complex

    and processor intensive 2 Workflow is powerful but unruly 3 Solve special cases with hooks 4 Avoid using actions 5 Learn how people work! Friday, March 16, 12
  32. 118.

    MAKING IT BEAUTIFUL SMALL MEDIUM LARGE X-LARGE VIDEO LARGE VIDEO

    MEDIUM LEGACY IMAGES SIZES VIDEO SMALL Friday, March 16, 12
  33. 119.

    SMALL LARGE X-LARGE VIDEO LARGE VIDEO MEDIUM VIDEO SMALL MAKING

    IT BEAUTIFUL X-LARGE IPHONE SHOP MEDIUM LEGACY IMAGES SIZES Friday, March 16, 12
  34. 120.

    MAKING IT BEAUTIFUL MEDIUM LARGE VIDEO SMALL VIDEO LARGE VIDEO

    MEDIUM VIDEO MEDIUM LEGACY IMAGES SIZES SMALL LARGE X-LARGE VIDEO LARGE SHOP MEDIUM VIDEO MEDIUM Friday, March 16, 12
  35. 121.

    MAKING IT BEAUTIFUL MEDIUM LARGE VIDEO SMALL VIDEO LARGE VIDEO

    MEDIUM VIDEO SMALL VIDEO MEDIUM LEGACY IMAGES SIZES SMALL LARGE X-LARGE VIDEO LARGE VIDEO MEDIUM VIDEO SMALL OVER 14 IMAGE CROPS! Friday, March 16, 12
  36. 125.

    TAKE AWAYS MAKING IT BEAUTIFUL 1 Pre-processing is expensive 2

    Avoid complex theme logic Friday, March 16, 12
  37. 126.

    TAKE AWAYS MAKING IT BEAUTIFUL 1 Pre-processing is expensive 2

    Avoid complex theme logic 3 Managing multiple styles is tricky Friday, March 16, 12
  38. 139.

    ROUTING THE TRAFFIC THE INGREDIENTS 1 2 CCK field for

    Vignette URL “Served from Vignette” list Friday, March 16, 12
  39. 140.

    ROUTING THE TRAFFIC THE INGREDIENTS 1 2 CCK field for

    Vignette URL 3 Custom url() and l() functions “Served from Vignette” list Friday, March 16, 12
  40. 141.

    ROUTING THE TRAFFIC Node ID 274244 URL alias: 274244/easter-ideas Vignette

    URL: photogallery/easter-ideas Friday, March 16, 12
  41. 142.

    ROUTING THE TRAFFIC Node ID 274244 URL alias: 274244/easter-ideas Vignette

    URL: photogallery/easter-ideas url('node/274244') /274244/easter-ideas Friday, March 16, 12
  42. 143.

    ROUTING THE TRAFFIC Node ID 274244 URL alias: 274244/easter-ideas Vignette

    URL: photogallery/easter-ideas custom_url('node/274244') /photogallery/easter-ideas /274244/easter-ideas Served from Vignette? YES NO Friday, March 16, 12
  43. 145.

    ROUTING THE TRAFFIC TAKE AWAYS 1 URL-juggling required care, strategy

    2 Showing continuous progress = huge win Friday, March 16, 12
  44. 146.

    ROUTING THE TRAFFIC TAKE AWAYS 1 URL-juggling required care, strategy

    2 Showing continuous progress = huge win 3 Maintaining two CMSs added expense and complexity Friday, March 16, 12
  45. 147.

    ROUTING THE TRAFFIC TAKE AWAYS 1 URL-juggling required care, strategy

    2 Showing continuous progress = huge win 3 Maintaining two CMSs added expense and complexity 4 Disposable code was inevitable Friday, March 16, 12
  46. 148.

    ROUTING THE TRAFFIC TAKE AWAYS 1 URL-juggling required care, strategy

    2 Showing continuous progress = huge win 3 Maintaining two CMSs added expense and complexity 4 Disposable code was inevitable 5 Gradual transition had pluses and minuses Friday, March 16, 12
  47. 160.

    WELCOMING OUR USERS TAKE AWAYS 1 Complicated Stuff is... Complicated

    2 Developers & Designers, Unite! Friday, March 16, 12