How to Build a Scalable Platform for Today's Publishers

36

description

Presented during DrupalCon Denver 2012, on the Site Building track. http://denver2012.drupal.org/program/sessions/how-build-scalable-platform-todays-publishers

Transcript of How to Build a Scalable Platform for Today's Publishers

Page 1: How to Build a Scalable Platform for Today's Publishers
Page 2: How to Build a Scalable Platform for Today's Publishers

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

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

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

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

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

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

Common Requirements

Page 9: How to Build a Scalable Platform for Today's Publishers

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

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

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

Content Freshness

Drupal site

Static caching

Cache API

Varnish

Content Delivery Network

Page 13: How to Build a Scalable Platform for Today's Publishers

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

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

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

Give Me the Modules!

http://www.flickr.com/photos/13403905@N03/2080281038/

Page 17: How to Build a Scalable Platform for Today's Publishers

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
Page 19: How to Build a Scalable Platform for Today's Publishers
Page 20: How to Build a Scalable Platform for Today's Publishers
Page 21: How to Build a Scalable Platform for Today's Publishers

Why Workbench?

Unique workflow per content type

Unique workflow per role

Better coherence

What do u mean with better coherence?
Page 22: How to Build a Scalable Platform for Today's Publishers

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

Staging site Production site

Secure network Public network

Deployment

Page 24: How to Build a Scalable Platform for Today's Publishers
Page 25: How to Build a Scalable Platform for Today's Publishers

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

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

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
Page 29: How to Build a Scalable Platform for Today's Publishers
Page 30: How to Build a Scalable Platform for Today's Publishers
Page 31: How to Build a Scalable Platform for Today's Publishers

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

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

Demo!

Or write “Insh'allah”?
Page 34: How to Build a Scalable Platform for Today's Publishers

Are We Going to Release It?

Yes!

Test animation effect for “yes”
Page 35: How to Build a Scalable Platform for Today's Publishers

Thank you!

Drupal: dixon_

Twitter: @dickolsson

Blog: senzilla.com 

Page 36: How to Build a Scalable Platform for Today's Publishers

What did you think?

Locate this session on theDrupalCon Denver website

http://denver2012.drupal.org/program

Click the “Take the Survey” link.

Thank You!