High Performance Drupal
O'Reilly Media (Verlag)
978-1-4493-9261-1 (ISBN)
How can you help your Drupal website continue to perform at the highest level as it grows to meet demand? This comprehensive guide provides best practices, examples, and in-depth explanations for solving several performance and scalability issues. You’ll learn how to apply coding and infrastructure techniques to Drupal internals, application performance, databases, web servers, and performance analysis.
Covering Drupal versions 7 and 8, this book is the ideal reference for everything from site deployment to implementing specific technologies such as Varnish, memcache, or Solr. If you have a basic understanding of Drupal and the Linux-Apache-MySQL-PHP (LAMP) stack, you’re ready to get started.
- Establish a performance baseline and define goals for improvement
- Optimize your website’s code and front-end performance
- Get best and worst practices for customizing Drupal core functionality
- Apply infrastructure design techniques to launch or expand a site
- Use tools to configure, monitor, and optimize MySQL performance
- Employ alternative storage and backend search options as your site grows
- Tune your web servers through httpd and PHP configuration
- Monitor services and perform load tests to catch problems before they become critical
Jeff Sheltren has been involved with open source for over eleven years. He started using Linux professionally at the University of California at Santa Barbara, where he was a Senior Systems Administrator and Programmer for the Computer Science department. He most recently worked at the Oregon State University Open Source Lab (OSL) as the Operations Manager, providing technical and organizational leadership to the OSL while working closely with the many open source projects hosted there, including Drupal.org, the Linux Foundation, and the Apache Software Foundation. Jeff has extensive infrastructure experience, gained over the years. As the Operations Manager at OSU Open Source Lab -- the largest open source hosting infrastructure of its kind -- he led the infrastructure and development teams; he is deeply involved in the CentOS Linux build and release process as a member of the QA team; and he works as a volunteer for the drupal.org infrastructure team. Jeff currently maintains a number of packages for the Fedora Project and Fedora's Extra Packages for Enterprise Linux (EPEL), and serves as the Lead Systems Engineer for multiple Tag1 clients. He lives in Vancouver, Washington.
Narayan Newton is a co-owner of Tag1 Consulting, who joined the team in 2008. He was introduced to Drupal during his tenure at the Oregon State University Open Source Lab where he was the co-lead system administrator -- and served as their Database Administrator of over 180 MySQL databases -- the Freenode Server Administrator, and the Drupal.org Server Administrator. He is a permanent member of the Drupal Association, as their Systems Coordinator, and is the lead Systems Administrator for the Drupal.org Infrastructure Team. He is also a co-maintainer of the Pressflow high performance Drupal distribution. Outside of Drupal, Narayan has been deeply involved in the FreeBSD, Gentoo, and Slackware communities. More recently, he acted as infrastructure lead for the Examiner.com 2.0 re-launch, infrastructure lead for the drupal.org redesign launch, and infrastructure lead/performance lead for drupal.org git migration. Narayan is currently Chief Technology Officer at Tag1 Consulting and resides in Portland, Oregon.
Nathaniel Catchpole has been using Drupal since version 4.5, and has been a regular contributor to Drupal core since 2006; along with extensive code profiling, he has contributed over 400 patches to the Drupal 7 release. Nathaniel also maintains the core entity, cache and taxonomy subsystems, as well as the memcache and entity cache contributed projects. In September 2011, Nathaniel became branch maintainer and release manager for the Drupal 8 release cycle. Nathaniel has been with Tag1 Consulting since September 2010. Prior to that, he worked on the Examiner.com Drupal migration and launch, and as a consultant for CivicActions, with clients such as Sony BMG and Amnesty International.
Chapter 1 Beginning a Performance Project
Getting Started with Performance Improvements
Establishing a Performance Baseline
Setting Goals for Website Performance
The Many Aspects of Drupal Performance
Creating a Prioritized List of Improvements
Chapter 2 Frontend Performance
Limiting HTTP Requests
Image Requests
Minification
Compression
Cacheable Headers
CDNs
Keep Third-Party Libraries Up to Date
External Scripts
Single Points of Failure (SPOFs)
Chapter 3 Drupal Performance Out of the Box
Page Caching
When Should You Use Page Caching?
CSS and JavaScript Aggregation
Logging
The Cache and Other Swappable Storage
Cron
Views
Chapter 4 Drupal Coding for Optimal Performance
Context Matters
False Optimizations
Listing Entities
Caching
Queues and Workers
Cache Stampedes and Race Conditions
Chapter 5 Drupal Coding for Abysmal Performance
variable_set() Abuse
External Requests
Sessions
Excessive Cache Granularity
PHP Errors
Debug Code in the Code Base
Development Settings
Chapter 6 Verifying Changes
Analyzing Frontend Performance
Analyzing Application Performance
Chapter 7 Infrastructure Design and Planning
Horizontal and Vertical Scaling
Service Categorization
Working Well Together
Example Two-Layer Configuration
Example Larger-Scale Infrastructure
Development and Staging Environments
Internal Network Layout
Utility Servers
High Availability and Failover
Hosting Considerations
Summary
Chapter 8 Service Monitoring
The Importance of Monitoring Services
Monitoring Alerts with Icinga
Graphing Monitoring Data
Internal Versus Remote Monitoring
Chapter 9 "DevOps": Breaking Down Barriers Between Development and Operations
Revision Control Systems
Configuration Management Systems
Pulling It Together: In-Depth Example with Puppet and Git
Development Virtual Machines
Deployment Workflow
Deployment with Jenkins CI
Chapter 10 File Storage for Multiple Web Servers
rsync
GlusterFS
Single NFS Server
HA NFS Cluster
Storage Area Networks (SANs)
Chapter 11 Drupal and Cloud Deployments
What Is the Cloud?
Why Use the Cloud?
Infrastructure Overhead
Prepackaged Clouds
Common Issues with Cloud Deployments and Their Mitigations
Chapter 12 Failover Configuration
IP Failover Versus DNS Failover
Service-Level Issues
Heartbeat
Chapter 13 MySQL
Drupal and MySQL Engines
Versions of MySQL
General Configuration
Replication
Virtualized Deployments
Chapter 14 Tools for Managing and Monitoring MySQL
Percona Toolkit
Openark Kit
mysqlreport
Percona Monitoring Plug-Ins
Chapter 15 MySQL Query Optimization
Index Basics
Base Tables and Join Order
Common Issues
Chapter 16 Alternative Storage and Cache Backends
Cache, Lock, and Session Storage
Memcache In Depth
How to Break Your Site with Memcache
Entity/Field Storage
Chapter 17 Solr Search
Performance and Scalability Considerations
Integrating Solr with Drupal
Solr Configuration
Indexing Content
Infrastructure Considerations
Solr Replication
Drupal Module Installation
Chapter 18 PHP and httpd Configuration
APC: PHP Opcode Cache
php.ini Settings
PHP Apache Module Versus CGI
Apache MPM Settings
Prefork Thread Settings
KeepAlive
Cache Headers
Logging
Server Signature
Administrative Directory or VirtualHost
Nginx
Chapter 19 Reverse Proxies and Content Delivery Networks
Using a Reverse Proxy with Drupal
Understanding Varnish Configuration Language
Cookies and Varnish
Caching for Authenticated Users
Edge-Side Includes
Serving Expired Content
Error Pages
Memory Allocation
Logging and Monitoring Varnish
Sample VCL for Drupal
Content Delivery Networks
Chapter 20 Load Testing
Different Types of Load Tests
Creating a Valid Test
When to Test
Interpreting Test Results
Server Monitoring During Load Tests
Where to Test
Example Load Test Using JMeter
Chapter 21 Where to Next?
Official Book Website
High Performance Drupal Group
Drupal Watchdog
Revision Control with Git
Varnish
Configuration Management
Vagrant
Jenkins
MySQL Performance
InnoDB Index Structures
Index
Colophon
Erscheint lt. Verlag | 3.12.2013 |
---|---|
Zusatzinfo | black & white illustrations |
Verlagsort | Sebastopol |
Sprache | englisch |
Maße | 178 x 233 mm |
Gewicht | 386 g |
Einbandart | Paperback |
Themenwelt | Informatik ► Web / Internet ► Content Management Systeme |
Informatik ► Web / Internet ► Web Design / Usability | |
ISBN-10 | 1-4493-9261-X / 144939261X |
ISBN-13 | 978-1-4493-9261-1 / 9781449392611 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich