SlideShare a Scribd company logo
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_)
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
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)
http://www.forbes.com/sites/ciocentral/2011/03/02/how-al-jazeera-successfully-managed-through-the-turmoil/
aljazeera.com

Editors

    50 web editors

    30 articles published every day

    Working in 2 shifts
aljazeera.com

Visitors

        Average 6 million req/hour
    
          (1,700 req/sec)

        Spikes 50 million req/hour
    
          (14,000 req/sec)
Common Requirements
Agile Development


    The platform should support the editorial
    process

    Web publishing is constantly evolving

    Time to market is crucial
Efficient Workflow


    Need to support editors' daily work

    Organizations work differently

    Sections within organizations work
    differently
Content Freshness


    Time span from clicking publish to first
    impression

    Minutes makes a difference on the
    social web

    Being first is vital
Content Freshness

        Content Delivery Network

        Varnish

        Cache API

        Static caching


        Drupal site
Scalability


    An event can change your business'
    impact

    Shorter cache times when spikes are
    high
Security


    Exposed to constant threats

    Trust is important for a publisher's brand

    Information leakage can jeopardize
    people's lives
Why Drupal Is the Right Tool?

       Agile Development

       Efficient Workflow

       Content Freshness

          Scalability

           Security
Give Me the Modules!




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


    Suite of modules

    Easier content management

    Flexible workflows

    Better coherence for editors




    http://drupal.org/project/workbench
    http://drupal.org/project/workbench_moderation
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
Why Workbench?


    Unique workflow per content type

    Unique workflow per role

    Better coherence
Deploy


    Framework for pushing content

    Automated or manual

    Can be used for content staging

    Separate editorial and public site




        http://drupal.org/project/deploy
Deployment




   Staging site                Production site




Secure network            Public network
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
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
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
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
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));
Why Entity List + Cache Tags?


    Refactor faster with better separation

    Transparently switch query backend

    No more stale caches

    Longer cache life times
Demo!
Are We Going to Release It?




         Yes!
Thank you!

     Drupal: dixon_
     Twitter: @dickolsson
     Blog: senzilla.com
What did you think?
     Locate this session on the
     DrupalCon Denver website
http://denver2012.drupal.org/program
  Click the “Take the Survey” link.


         Thank You!

More Related Content

PDF
Docker management
PPTX
Mind the Gap: Crossing the DevOps Chasm
PPTX
Why AvePoint chose Azure for its Office 365 solutions
KEY
Using the Atlassian Plugin Platform to Create Your Own SaaS Plugin Platform
PPTX
WinOps Conf 2015 - Microsoft Azure & Open Source
PDF
Windows Virtual Desktop - Desktops on Cloud !
PDF
Dev ops & laas fundamental
PPTX
Microsoft Presents: Chef in Action on Azure - ChefConf 2015
Docker management
Mind the Gap: Crossing the DevOps Chasm
Why AvePoint chose Azure for its Office 365 solutions
Using the Atlassian Plugin Platform to Create Your Own SaaS Plugin Platform
WinOps Conf 2015 - Microsoft Azure & Open Source
Windows Virtual Desktop - Desktops on Cloud !
Dev ops & laas fundamental
Microsoft Presents: Chef in Action on Azure - ChefConf 2015

What's hot (15)

PDF
Bringing Server Add-ons to the Cloud and Back Again
PPTX
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
PPTX
Power of Azure Devops
PPTX
Cloud Portability With Multi-Cloud Toolkits
PDF
DevOps Best Practices
PPTX
Introduction to Apache jclouds at ApacheCon 2014
PDF
Stackato
PPTX
Hidden Gems of Azure Websites: The Secret of Kudu
PPTX
Migrate to WVD and Beyond
PDF
12 Ways to Supercharge Your Connect Add-on
PPTX
Azure devops
PPTX
Azure cli-azure devops
PPTX
jclouds meetup
PPTX
Getting the most from Windows Virtual Desktop in Azure
PDF
Java Script Utilities
Bringing Server Add-ons to the Cloud and Back Again
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
Power of Azure Devops
Cloud Portability With Multi-Cloud Toolkits
DevOps Best Practices
Introduction to Apache jclouds at ApacheCon 2014
Stackato
Hidden Gems of Azure Websites: The Secret of Kudu
Migrate to WVD and Beyond
12 Ways to Supercharge Your Connect Add-on
Azure devops
Azure cli-azure devops
jclouds meetup
Getting the most from Windows Virtual Desktop in Azure
Java Script Utilities
Ad

Similar to How to Build a Scalable Platform for Today's Publishers (20)

PDF
Introduction to drupal
KEY
Choosing an Open Source CMS
KEY
Evaluating Drupal for the Enterprise
PDF
Acquia Business Mandate Deck Final
PDF
Four Open Source Drupal Applications for Higher Education
PDF
Showcasing drupal
PPTX
Reading Room Australia Drupal Expertise
PPTX
Reading Room's Drupal Expertise
PDF
Drupal Recipe
PDF
Going from Zero to Sixty in Drupal with Acquia
PDF
Performance Strategies
PPTX
Drupal as integration hub.odp
PDF
Drupal for the Enterprise
PDF
Making Drupal 7 Simple to Use for Everyone
PDF
What the White House Knows...
KEY
Hofmockel ignite ames2010
PPTX
Drupal Web Experience Management
PDF
Introduction to Drupal
PPTX
DrupalCon Austin 2014 Review
PPT
Drupal: an Overview
Introduction to drupal
Choosing an Open Source CMS
Evaluating Drupal for the Enterprise
Acquia Business Mandate Deck Final
Four Open Source Drupal Applications for Higher Education
Showcasing drupal
Reading Room Australia Drupal Expertise
Reading Room's Drupal Expertise
Drupal Recipe
Going from Zero to Sixty in Drupal with Acquia
Performance Strategies
Drupal as integration hub.odp
Drupal for the Enterprise
Making Drupal 7 Simple to Use for Everyone
What the White House Knows...
Hofmockel ignite ames2010
Drupal Web Experience Management
Introduction to Drupal
DrupalCon Austin 2014 Review
Drupal: an Overview
Ad

More from Dick Olsson (9)

PDF
Workflow Initiative Update
PDF
What Really Changed with Drupal 8
ODP
Planning for CRAP and entity revisions in Drupal core
PDF
Multisite Content Deployments for Media Organizations
PPTX
We need revisions and CRAP everywhere in Drupal core
ODP
Let's Take Drupal Offline!
ODP
Content Staging in Drupal 8
ODP
Content Staging in Drupal Core
ODP
Drupal distributions - how to build them
Workflow Initiative Update
What Really Changed with Drupal 8
Planning for CRAP and entity revisions in Drupal core
Multisite Content Deployments for Media Organizations
We need revisions and CRAP everywhere in Drupal core
Let's Take Drupal Offline!
Content Staging in Drupal 8
Content Staging in Drupal Core
Drupal distributions - how to build them

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Diabetes mellitus diagnosis method based random forest with bat algorithm
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Big Data Technologies - Introduction.pptx
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

How to Build a Scalable Platform for Today's Publishers

  • 2. Site Building How to Build a Scalable Platform for Today's Publishers Presented by Dick Olsson (dixon_)
  • 3. 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
  • 4. 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)
  • 6. aljazeera.com Editors  50 web editors  30 articles published every day  Working in 2 shifts
  • 7. aljazeera.com Visitors  Average 6 million req/hour  (1,700 req/sec)  Spikes 50 million req/hour  (14,000 req/sec)
  • 9. Agile Development  The platform should support the editorial process  Web publishing is constantly evolving  Time to market is crucial
  • 10. Efficient Workflow  Need to support editors' daily work  Organizations work differently  Sections within organizations work differently
  • 11. Content Freshness  Time span from clicking publish to first impression  Minutes makes a difference on the social web  Being first is vital
  • 12. Content Freshness Content Delivery Network Varnish Cache API Static caching Drupal site
  • 13. Scalability  An event can change your business' impact  Shorter cache times when spikes are high
  • 14. Security  Exposed to constant threats  Trust is important for a publisher's brand  Information leakage can jeopardize people's lives
  • 15. Why Drupal Is the Right Tool? Agile Development Efficient Workflow Content Freshness Scalability Security
  • 16. Give Me the Modules! http://www.flickr.com/photos/13403905@N03/2080281038/
  • 17. Workbench  Suite of modules  Easier content management  Flexible workflows  Better coherence for editors http://drupal.org/project/workbench http://drupal.org/project/workbench_moderation
  • 21. Why Workbench?  Unique workflow per content type  Unique workflow per role  Better coherence
  • 22. Deploy  Framework for pushing content  Automated or manual  Can be used for content staging  Separate editorial and public site http://drupal.org/project/deploy
  • 23. Deployment Staging site Production site Secure network Public network
  • 25. Why Deploy?  Separate sites, faster code deployments  Transparent content staging  Editorial site on closed network  Decreased “hit area” on public site
  • 26. 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
  • 27. 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
  • 31. cache_set('key', $node, array('node' => 1)); cache_add_request_tags(array('node' => 1)); cache_invalidate(array('node' => 1));
  • 32. Why Entity List + Cache Tags?  Refactor faster with better separation  Transparently switch query backend  No more stale caches  Longer cache life times
  • 33. Demo!
  • 34. Are We Going to Release It? Yes!
  • 35. Thank you! Drupal: dixon_ Twitter: @dickolsson Blog: senzilla.com
  • 36. What did you think? Locate this session on the DrupalCon Denver website http://denver2012.drupal.org/program Click the “Take the Survey” link. Thank You!

Editor's Notes

  • #2: Make most descriptions more compelling. Less uha, aah, ööh Less may have heard of, or as you may know, some....
  • #3: Foo
  • #4: Foo
  • #5: Present my self faster. “ Maintainer of UUID, Deploy and some other modules not worth mentioning here... :)” say it: “among others, I am the maintainer of UUID and Deploy. If you want to know more, come to me after the session”)
  • #6: Now to the topic that everyone is here for. We're going to look at a use case that I've been working on. Aljazeera English was soposed to be built entierly on Drupal. However, internal changes... But we've been building a platform to scale for this. And this is what we are going to talk about today.
  • #7: Stay more relevant, coherent and focused to the points on the slide. Don't necessarily read all the titles on the slides.
  • #8: Stay more relevant, coherent and focused to the points on the slide. Don't necessarily read all the titles on the slides.
  • #9: Foo
  • #10: Remove animations, to avoid reading the titles and get a better flow.
  • #11: Give eample of how sections work differently.
  • #12: Foo
  • #13: Foo
  • #14: Foo
  • #15: Foo
  • #16: Foo
  • #17: Foo
  • #18: Foo
  • #19: Foo
  • #20: Foo
  • #21: Foo
  • #22: Explain well what “better coherency” is and what it means?
  • #23: Foo
  • #24: Foo
  • #25: Foo
  • #26: Foo
  • #27: Foo
  • #28: Foo
  • #29: Foo
  • #30: Foo
  • #31: Foo
  • #32: Foo
  • #33: Foo
  • #34: Foo
  • #35: Consider just saying that our work is going to be released as some kind of distribution.
  • #36: Foo
  • #37: Foo