Books & Videos

Table of Contents

  1. Chapter 1 Beginning a Performance Project

    1. Getting Started with Performance Improvements

    2. Establishing a Performance Baseline

    3. Setting Goals for Website Performance

    4. The Many Aspects of Drupal Performance

    5. Creating a Prioritized List of Improvements

  2. Chapter 2 Frontend Performance

    1. Limiting HTTP Requests

    2. Image Requests

    3. Minification

    4. Compression

    5. Cacheable Headers

    6. CDNs

    7. Keep Third-Party Libraries Up to Date

    8. External Scripts

    9. Single Points of Failure (SPOFs)

  3. Chapter 3 Drupal Performance Out of the Box

    1. Page Caching

    2. When Should You Use Page Caching?

    3. CSS and JavaScript Aggregation

    4. Logging

    5. The Cache and Other Swappable Storage

    6. Cron

    7. Views

  4. Chapter 4 Drupal Coding for Optimal Performance

    1. Context Matters

    2. False Optimizations

    3. Listing Entities

    4. Caching

    5. Queues and Workers

    6. Cache Stampedes and Race Conditions

  5. Chapter 5 Drupal Coding for Abysmal Performance

    1. variable_set() Abuse

    2. External Requests

    3. Sessions

    4. Excessive Cache Granularity

    5. PHP Errors

    6. Debug Code in the Code Base

    7. Development Settings

  6. Chapter 6 Verifying Changes

    1. Analyzing Frontend Performance

    2. Analyzing Application Performance

  7. Chapter 7 Infrastructure Design and Planning

    1. Horizontal and Vertical Scaling

    2. Service Categorization

    3. Working Well Together

    4. Example Two-Layer Configuration

    5. Example Larger-Scale Infrastructure

    6. Development and Staging Environments

    7. Internal Network Layout

    8. Utility Servers

    9. High Availability and Failover

    10. Hosting Considerations

    11. Summary

  8. Chapter 8 Service Monitoring

    1. The Importance of Monitoring Services

    2. Monitoring Alerts with Icinga

    3. Graphing Monitoring Data

    4. Internal Versus Remote Monitoring

  9. Chapter 9 "DevOps": Breaking Down Barriers Between Development and Operations

    1. Revision Control Systems

    2. Configuration Management Systems

    3. Pulling It Together: In-Depth Example with Puppet and Git

    4. Development Virtual Machines

    5. Deployment Workflow

    6. Deployment with Jenkins CI

  10. Chapter 10 File Storage for Multiple Web Servers

    1. rsync

    2. GlusterFS

    3. Single NFS Server

    4. HA NFS Cluster

    5. Storage Area Networks (SANs)

  11. Chapter 11 Drupal and Cloud Deployments

    1. What Is the Cloud?

    2. Why Use the Cloud?

    3. Infrastructure Overhead

    4. Prepackaged Clouds

    5. Common Issues with Cloud Deployments and Their Mitigations

  12. Chapter 12 Failover Configuration

    1. IP Failover Versus DNS Failover

    2. Service-Level Issues

    3. Heartbeat

  13. Chapter 13 MySQL

    1. Drupal and MySQL Engines

    2. Versions of MySQL

    3. General Configuration

    4. Replication

    5. Virtualized Deployments

  14. Chapter 14 Tools for Managing and Monitoring MySQL

    1. Percona Toolkit

    2. Openark Kit

    3. mysqlreport

    4. Percona Monitoring Plug-Ins

  15. Chapter 15 MySQL Query Optimization

    1. Index Basics

    2. Base Tables and Join Order

    3. Common Issues

  16. Chapter 16 Alternative Storage and Cache Backends

    1. Cache, Lock, and Session Storage

    2. Memcache In Depth

    3. How to Break Your Site with Memcache

    4. Entity/Field Storage

  17. Chapter 17 Solr Search

    1. Performance and Scalability Considerations

    2. Integrating Solr with Drupal

    3. Solr Configuration

    4. Indexing Content

    5. Infrastructure Considerations

    6. Solr Replication

    7. Drupal Module Installation

  18. Chapter 18 PHP and httpd Configuration

    1. APC: PHP Opcode Cache

    2. php.ini Settings

    3. PHP Apache Module Versus CGI

    4. Apache MPM Settings

    5. Prefork Thread Settings

    6. KeepAlive

    7. Cache Headers

    8. Logging

    9. Server Signature

    10. Administrative Directory or VirtualHost

    11. Nginx

  19. Chapter 19 Reverse Proxies and Content Delivery Networks

    1. Using a Reverse Proxy with Drupal

    2. Understanding Varnish Configuration Language

    3. Cookies and Varnish

    4. Caching for Authenticated Users

    5. Edge-Side Includes

    6. Serving Expired Content

    7. Error Pages

    8. Memory Allocation

    9. Logging and Monitoring Varnish

    10. Sample VCL for Drupal

    11. Content Delivery Networks

  20. Chapter 20 Load Testing

    1. Different Types of Load Tests

    2. Creating a Valid Test

    3. When to Test

    4. Interpreting Test Results

    5. Server Monitoring During Load Tests

    6. Where to Test

    7. Example Load Test Using JMeter

  21. Chapter 21 Where to Next?

    1. Official Book Website

    2. High Performance Drupal Group

    3. Drupal Watchdog

    4. Revision Control with Git

    5. Varnish

    6. Configuration Management

    7. Vagrant

    8. Jenkins

    9. MySQL Performance

    10. InnoDB Index Structures

  1. Index

  2. Colophon