![Page 1: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/1.jpg)
![Page 2: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/2.jpg)
Site Building
How to Build a Scalable Platform for Today's
Publishers
Presented by Dick Olsson (dixon_)
![Page 3: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/3.jpg)
Agenda
Who am I?
The project I'm working on
Common requirements
Why Drupal is the right tool (high level)
What modules to use (technical level)
Demo
![Page 4: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/4.jpg)
Dick Olsson
A Swede living in Doha, Qatar
Lead Drupal Developer at Al Jazeera
On a leave of absence from NodeOne
Active core contributor
Maintainer of
UUID (http://drupal.org/project/uuid)
Deploy (http://drupal.org/project/deploy)
![Page 5: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/5.jpg)
http://www.forbes.com/sites/ciocentral/2011/03/02/how-al-jazeera-successfully-managed-through-the-turmoil/
![Page 6: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/6.jpg)
aljazeera.com
Editors 50 web editors
30 articles published every day
Working in 2 shifts
![Page 7: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/7.jpg)
aljazeera.com
Visitors Average 6 million req/hour
(1,700 req/sec)
Spikes 50 million req/hour
(14,000 req/sec)
![Page 8: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/8.jpg)
Common Requirements
![Page 9: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/9.jpg)
Agile Development
The platform should support the editorial process
Web publishing is constantly evolving
Time to market is crucial
![Page 10: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/10.jpg)
Efficient Workflow
Need to support editors' daily work
Organizations work differently
Sections within organizations work differently
![Page 11: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/11.jpg)
Content Freshness
Time span from clicking publish to first impression
Minutes makes a difference on the social web
Being first is vital
![Page 12: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/12.jpg)
Content Freshness
Drupal site
Static caching
Cache API
Varnish
Content Delivery Network
![Page 13: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/13.jpg)
Scalability
An event can change your business' impact
Shorter cache times when spikes are high
![Page 14: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/14.jpg)
Security
Exposed to constant threats
Trust is important for a publisher's brand
Information leakage can jeopardize people's lives
![Page 15: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/15.jpg)
Why Drupal Is the Right Tool?
Agile Development
Efficient Workflow
Content Freshness
Scalability
Security
![Page 16: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/16.jpg)
Give Me the Modules!
http://www.flickr.com/photos/13403905@N03/2080281038/
![Page 17: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/17.jpg)
Workbench
Suite of modules
Easier content management
Flexible workflows
Better coherence for editors
http://drupal.org/project/workbenchhttp://drupal.org/project/workbench_moderation
![Page 18: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/18.jpg)
![Page 19: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/19.jpg)
![Page 20: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/20.jpg)
![Page 21: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/21.jpg)
Why Workbench?
Unique workflow per content type
Unique workflow per role
Better coherence
![Page 22: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/22.jpg)
Deploy
Framework for pushing content
Automated or manual
Can be used for content staging
Separate editorial and public site
http://drupal.org/project/deploy
![Page 23: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/23.jpg)
Staging site Production site
Secure network Public network
Deployment
![Page 24: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/24.jpg)
![Page 25: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/25.jpg)
Why Deploy?
Separate sites, faster code deployments
Transparent content staging
Editorial site on closed network
Decreased “hit area” on public site
![Page 26: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/26.jpg)
Entity List
Wrapper for listing functionalities
Views, Nodequeue, Solr, EntityFieldQuery, etc.
Unified output with Panels
Transparently switch query backends
Integrates with Cache Tags
http://drupal.org/project/entitylist
![Page 27: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/27.jpg)
Cache Tags
Backported functionality from Drupal 8
Ability to tag cache entries
Ability to tag requests
Invalidate cache entires by tag
http://drupal.org/project/cachetags
![Page 28: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/28.jpg)
![Page 29: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/29.jpg)
![Page 30: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/30.jpg)
![Page 31: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/31.jpg)
cache_set('key', $node, array('node' => 1));
cache_add_request_tags(array('node' => 1));
cache_invalidate(array('node' => 1));
![Page 32: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/32.jpg)
Why Entity List + Cache Tags?
Refactor faster with better separation
Transparently switch query backend
No more stale caches
Longer cache life times
![Page 33: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/33.jpg)
Demo!
![Page 34: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/34.jpg)
Are We Going to Release It?
Yes!
![Page 35: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/35.jpg)
Thank you!
Drupal: dixon_
Twitter: @dickolsson
Blog: senzilla.com
![Page 36: How to Build a Scalable Platform for Today's Publishers](https://reader035.vdocuments.us/reader035/viewer/2022081413/548da098b479597e6a8b4a45/html5/thumbnails/36.jpg)
What did you think?
Locate this session on theDrupalCon Denver website
http://denver2012.drupal.org/program
Click the “Take the Survey” link.
Thank You!