continuous delivery with content management and ugc
DESCRIPTION
Like salmon swimming upstream, user-generated content (UGC) and changes from content management systems (CMS) need to flow in the opposite direction to most software product changes. What strategies exist for reconciling the bidirectional flow (applications & features vs. content)? How can we bring upstream-moving content into our deployment pipeline, in which everything flows down towards Production?TRANSCRIPT
Continuous Delivery with Content Management
Systems (CMS) and User-Generated
Content (UGC)
Matthew Skelton23rd October 2013
#londoncd meetup group
@matthewpskelton
CMS and UGC
• Content Management System–WordPress, Drupal, CQ5, Magnolia,
Sitecore, SharePoint (?!)
• User-Generated Content– Reviews, photos, ratings
What’s the Problem?
Photo: Ingy the Wingy http://www.flickr.com/photos/ingythewingy/5740856803/
Much contemporary CMS-managed content and UGC is not simply static but changes application functionality
Made in Production ®
• Non-technical content authors– New pages, widgets, workflow
• End users– Graph connections, tagging
New Functionality
• Ideal: flow down new functionality and behaviour from Dev
• Reality: CMS and UGC introduce new behaviour and functionality directly in Production
What do Humble & Farley say?
“In most cases, don’t use dumps of the production dataset for testing purposes. Create custom datasets by carefully selecting a smaller subset of production data” p.344
... but not much more than this
Example Strategies
1. Remove the Problem– Avoid CMS– Decouple UGC
2. Embrace the Problem– Testing– More testing
Remove the Problem
• Ditch the CMS– Use plain HTML fragments + tooling– Flow down the pipeline– Package Management for
dependency graph
• Decouple UGC– JavaScript client-side integration
Embrace the Problem
• Front-end tests in Production– Use Staging?
• Identify new pages/features, extract, bring back– Track content with UUIDs
• Pre-live environment with data regularly synched from Prod
Content Flow: ‘Upstream’
Photo: Karen Miller, http://www.flickr.com/photos/tmtht/4029281127/
Other Approaches?
• Performance Testing?– Data dumps
• ‘Content Platform’?– ETL approaches
• (No correct answers)
Discussion Time!
Matthew Skelton@matthewpskelton
London Continuous Delivery meetup group:@londoncdhttp://londoncd.org.uk/