SlideShare a Scribd company logo
Drupal for the Enterprise




Seminar by DPCI featuring Dries Buytaert
Michael Mainiero, and Jeff Rigby
Thursday, October 29, 2009




  © 2009 DPCI. All Rights Reserved.
Drupal for the Enterprise




Presented by Jeff Rigby
Web Application Architect, DPCI
Thursday, October 29th, 2009




   © 2009 DPCI. All Rights Reserved.
Goals of this Presentation
          Describe how to scale Drupal from an out-of-box
          build to an enterprise level solution
          Explain some of the approaches DPCI has used
          with our clients to meet their scaling needs




©2009 DPCI. All Rights Reserved.
Scaling Drupal
          Anonymous is easy to scale
            — Mirror servers
            — Reverse-Proxy caches
            — Drupal only manages the content
          Authenticated traffic is more difficult
            — Each dynamic page must be processed by PHP
            — Requires more horsepower




©2009 DPCI. All Rights Reserved.
Built In Options
          Configuration
            — Drupal page/block cache
            — Page compression
            — Aggregate JS/CSS

          Coding
            — Drupal cache (use it!)
            — Use static variables when possible

    Immediately usable with no additional modules



©2009 DPCI. All Rights Reserved.
Built In Options Results
                      4.8
      Auth
                      4.8



                                                                      Optimized
                                                         96.5         OOB
      Anon
                      5.8



                0             20   40      60       80   100    120
                                   Requests Per Second




©2009 DPCI. All Rights Reserved.
Quick Optimizations
          Boost
          Memcached
          Opcode Cache




©2009 DPCI. All Rights Reserved.
Boost
          Amazing performance gain
          Anonymous users only
          Serves static files
          No additional software or hardware needed




©2009 DPCI. All Rights Reserved.
Memcached
          Easy to install on the server
          Minor module configuration
          Removes the cache from the database
          Optionally removes session tracking from the
          database
          Significantly reduces MySQL statements




©2009 DPCI. All Rights Reserved.
Opcode Cache
    — A few out there (APC, Zend Optimizer, XCache,
      eAccelerator)
    — Easy to install
    — Pre-compiles PHP in memory
    — Reduces server load




©2009 DPCI. All Rights Reserved.
Combined Results
                   15.1
     Auth
                  4.8



                                                                            Optimized
                                                                427         OOB
    Anon
                  5.8



              0                100    200        300      400         500
                                     Request Per Second




©2009 DPCI. All Rights Reserved.
MySQL Tweaks
          Tune your MySQL configuration to your server.
          MySQL Tuner is very useful:
          http://blog.mysqltuner.com
          Enable the query cache!
          Enable the slow query log to spot problem queries




©2009 DPCI. All Rights Reserved.
Apache SOLR
          Module provides drop-in replacement for search
          Gets search out of Drupal
          Avoids expensive node_load() calls
          Available as a hosted solution from Acquia




©2009 DPCI. All Rights Reserved.
Reverse-Proxy Cache
          Squid or Varnish
          Run on the same server or clustered on multiple
          external servers
          Can reduce web server traffic by 90%+ if serving
          the entire site (anonymous traffic)
          For dynamic sites, offload all static files (JS, CSS,
          images, etc.) and let Apache focus on PHP
          Low overhead
          Tip: Override the expires header (
            — Expires: Sun, 19 Nov 1978 05:00:00 GMT



©2009 DPCI. All Rights Reserved.
Reverse-Proxy Cache




©2009 DPCI. All Rights Reserved.
Use a CDN
          Many options out there: Akamai, Amazon, CacheFly
          Generally easy to setup
          Off-load entire site or only static files (JS, CSS,
          images, etc.)
          Can be expensive




©2009 DPCI. All Rights Reserved.
Static Page Tips
          Javascript!
          Store dynamic values in a cookie
          Use AJAX to load small portions of dynamic
          content
          Use Javascript to replace dates with natural
          language “About 4 Minutes Ago”




©2009 DPCI. All Rights Reserved.
Load Balanced Web Servers
          Use rsync to keep Web servers synched or NFS web
          root
          Advanced load balancers can handle server
          failures
          Easy to add or remove servers with no site
          downtime
          Run server intensive tasks (cron, data import, etc.)
          on an internal server to avoid site slow downs




©2009 DPCI. All Rights Reserved.
Multiple MySQL Databases
          Master / Slave Setup
            — Minimum of 2 servers
            — Drupal 5 and 6 require minor core hacks
            — Built into Drupal 7!
            — Be mindful of database lag
            — Reliant on master database
          Use Memcached to share the query cache across
          all servers
          Clustering and distributed configurations



©2009 DPCI. All Rights Reserved.
Sample Large Scale Site




©2009 DPCI. All Rights Reserved.
Scaling Drupal


  Questions?
                   Jeff’ s Blog:
        www.databasepublish.com/blog/jrigby




©2009 DPCI. All Rights Reserved.

More Related Content

PDF
Accelerating virtualized Oracle 12c performance with vSphere 5.5 advanced fea...
PDF
VMworld 2013: Architecting Oracle Databases on vSphere 5 with NetApp Storage
PPTX
Oracle on vSphere best practices
PDF
Oracle Virtualization Best Practices
 
PDF
Postgres on OpenStack
 
PPTX
Varrow datacenter storage today and tomorrow
PPTX
Vm13 vnx mixed workloads
Accelerating virtualized Oracle 12c performance with vSphere 5.5 advanced fea...
VMworld 2013: Architecting Oracle Databases on vSphere 5 with NetApp Storage
Oracle on vSphere best practices
Oracle Virtualization Best Practices
 
Postgres on OpenStack
 
Varrow datacenter storage today and tomorrow
Vm13 vnx mixed workloads

What's hot (18)

PDF
Sofia WP User Group Presentation
PDF
IV Evento GeneXus Italia - Storage IBM
PPTX
SM16 - Can i move my stuff to openstack
PPTX
Microsoft Azure Virtual Machine
PDF
Web agencies: An analysis of the OVH infrastructure to optimise your web proj...
PDF
Lessons Learned Managing Large AWS Environments
PDF
SOUG_SDM_OracleDB_V3
PPTX
Nginx [engine x] and you (and WordPress)
PDF
What's new in Veeam 7 - Was ist neu in Veeam 7
PDF
Veeam Backup and Replication: Overview
KEY
Oracle 11g New Features Out-of-the-Box by Alex Gorbachev (from Sydney Oracle ...
PPTX
wordpress-performance-presentation
PDF
Securing Your WordPress Website - WordCamp Sydney 2012
PPTX
V mware2012 20121221_final
PPTX
Azure virtual machines & Terraform
PPTX
Tips for Fixing a Hacked WordPress Site - WordCamp Sydney 2016
PDF
RHT Design for Security
PPTX
Whats new in ws2016 Hyper-V with Aidan Finn
Sofia WP User Group Presentation
IV Evento GeneXus Italia - Storage IBM
SM16 - Can i move my stuff to openstack
Microsoft Azure Virtual Machine
Web agencies: An analysis of the OVH infrastructure to optimise your web proj...
Lessons Learned Managing Large AWS Environments
SOUG_SDM_OracleDB_V3
Nginx [engine x] and you (and WordPress)
What's new in Veeam 7 - Was ist neu in Veeam 7
Veeam Backup and Replication: Overview
Oracle 11g New Features Out-of-the-Box by Alex Gorbachev (from Sydney Oracle ...
wordpress-performance-presentation
Securing Your WordPress Website - WordCamp Sydney 2012
V mware2012 20121221_final
Azure virtual machines & Terraform
Tips for Fixing a Hacked WordPress Site - WordCamp Sydney 2016
RHT Design for Security
Whats new in ws2016 Hyper-V with Aidan Finn
Ad

Similar to Jeff Rigby on Scaling Drupal in the Enterprise (20)

PPTX
Drupal performance
PDF
Scaling Drupal: Not IF... HOW
PDF
Drupal 7 performance and optimization
PPT
Performance and Scalability
PDF
Drupal performance and scalability
PDF
Improving Website Performance and Scalability with Memcached
PDF
Beat the devil: towards a Drupal performance benchmark
PDF
High Performance Drupal
PPTX
Improving Website Performance with Memecached Webinar | Achieve Internet
PPTX
Improving Website Performance with Memecached Webinar | Achieve Internet
ODP
Experience In Building Scalable Web Sites Through Infrastructure's View
PDF
DrupalCampLA 2011: Drupal backend-performance
PDF
Drupal Performance : DrupalCamp North
PPTX
Drupal Backend Performance and Scalability
PPT
Drupalcamp Estonia - High Performance Sites
PPT
Drupalcamp Estonia - High Performance Sites
PPTX
PHP Performance tuning for Drupal 8
PPTX
Joomla! Performance on Steroids
PDF
Top ten-list
PPT
Drupal caching
Drupal performance
Scaling Drupal: Not IF... HOW
Drupal 7 performance and optimization
Performance and Scalability
Drupal performance and scalability
Improving Website Performance and Scalability with Memcached
Beat the devil: towards a Drupal performance benchmark
High Performance Drupal
Improving Website Performance with Memecached Webinar | Achieve Internet
Improving Website Performance with Memecached Webinar | Achieve Internet
Experience In Building Scalable Web Sites Through Infrastructure's View
DrupalCampLA 2011: Drupal backend-performance
Drupal Performance : DrupalCamp North
Drupal Backend Performance and Scalability
Drupalcamp Estonia - High Performance Sites
Drupalcamp Estonia - High Performance Sites
PHP Performance tuning for Drupal 8
Joomla! Performance on Steroids
Top ten-list
Drupal caching
Ad

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
Teaching material agriculture food technology
PDF
Electronic commerce courselecture one. Pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Unlocking AI with Model Context Protocol (MCP)
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The AUB Centre for AI in Media Proposal.docx
Teaching material agriculture food technology
Electronic commerce courselecture one. Pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
20250228 LYD VKU AI Blended-Learning.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf
Review of recent advances in non-invasive hemoglobin estimation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Programs and apps: productivity, graphics, security and other tools
Unlocking AI with Model Context Protocol (MCP)

Jeff Rigby on Scaling Drupal in the Enterprise

  • 1. Drupal for the Enterprise Seminar by DPCI featuring Dries Buytaert Michael Mainiero, and Jeff Rigby Thursday, October 29, 2009 © 2009 DPCI. All Rights Reserved.
  • 2. Drupal for the Enterprise Presented by Jeff Rigby Web Application Architect, DPCI Thursday, October 29th, 2009 © 2009 DPCI. All Rights Reserved.
  • 3. Goals of this Presentation Describe how to scale Drupal from an out-of-box build to an enterprise level solution Explain some of the approaches DPCI has used with our clients to meet their scaling needs ©2009 DPCI. All Rights Reserved.
  • 4. Scaling Drupal Anonymous is easy to scale — Mirror servers — Reverse-Proxy caches — Drupal only manages the content Authenticated traffic is more difficult — Each dynamic page must be processed by PHP — Requires more horsepower ©2009 DPCI. All Rights Reserved.
  • 5. Built In Options Configuration — Drupal page/block cache — Page compression — Aggregate JS/CSS Coding — Drupal cache (use it!) — Use static variables when possible Immediately usable with no additional modules ©2009 DPCI. All Rights Reserved.
  • 6. Built In Options Results 4.8 Auth 4.8 Optimized 96.5 OOB Anon 5.8 0 20 40 60 80 100 120 Requests Per Second ©2009 DPCI. All Rights Reserved.
  • 7. Quick Optimizations Boost Memcached Opcode Cache ©2009 DPCI. All Rights Reserved.
  • 8. Boost Amazing performance gain Anonymous users only Serves static files No additional software or hardware needed ©2009 DPCI. All Rights Reserved.
  • 9. Memcached Easy to install on the server Minor module configuration Removes the cache from the database Optionally removes session tracking from the database Significantly reduces MySQL statements ©2009 DPCI. All Rights Reserved.
  • 10. Opcode Cache — A few out there (APC, Zend Optimizer, XCache, eAccelerator) — Easy to install — Pre-compiles PHP in memory — Reduces server load ©2009 DPCI. All Rights Reserved.
  • 11. Combined Results 15.1 Auth 4.8 Optimized 427 OOB Anon 5.8 0 100 200 300 400 500 Request Per Second ©2009 DPCI. All Rights Reserved.
  • 12. MySQL Tweaks Tune your MySQL configuration to your server. MySQL Tuner is very useful: http://blog.mysqltuner.com Enable the query cache! Enable the slow query log to spot problem queries ©2009 DPCI. All Rights Reserved.
  • 13. Apache SOLR Module provides drop-in replacement for search Gets search out of Drupal Avoids expensive node_load() calls Available as a hosted solution from Acquia ©2009 DPCI. All Rights Reserved.
  • 14. Reverse-Proxy Cache Squid or Varnish Run on the same server or clustered on multiple external servers Can reduce web server traffic by 90%+ if serving the entire site (anonymous traffic) For dynamic sites, offload all static files (JS, CSS, images, etc.) and let Apache focus on PHP Low overhead Tip: Override the expires header ( — Expires: Sun, 19 Nov 1978 05:00:00 GMT ©2009 DPCI. All Rights Reserved.
  • 15. Reverse-Proxy Cache ©2009 DPCI. All Rights Reserved.
  • 16. Use a CDN Many options out there: Akamai, Amazon, CacheFly Generally easy to setup Off-load entire site or only static files (JS, CSS, images, etc.) Can be expensive ©2009 DPCI. All Rights Reserved.
  • 17. Static Page Tips Javascript! Store dynamic values in a cookie Use AJAX to load small portions of dynamic content Use Javascript to replace dates with natural language “About 4 Minutes Ago” ©2009 DPCI. All Rights Reserved.
  • 18. Load Balanced Web Servers Use rsync to keep Web servers synched or NFS web root Advanced load balancers can handle server failures Easy to add or remove servers with no site downtime Run server intensive tasks (cron, data import, etc.) on an internal server to avoid site slow downs ©2009 DPCI. All Rights Reserved.
  • 19. Multiple MySQL Databases Master / Slave Setup — Minimum of 2 servers — Drupal 5 and 6 require minor core hacks — Built into Drupal 7! — Be mindful of database lag — Reliant on master database Use Memcached to share the query cache across all servers Clustering and distributed configurations ©2009 DPCI. All Rights Reserved.
  • 20. Sample Large Scale Site ©2009 DPCI. All Rights Reserved.
  • 21. Scaling Drupal Questions? Jeff’ s Blog: www.databasepublish.com/blog/jrigby ©2009 DPCI. All Rights Reserved.