High Performance Drupal, Jeff Sheltren et al - REVIEW
Drupal can scale from small blogs like this one all the way to humongo high profile sites like WhiteHouse.gov. Building a high volume, high traffic, website with Drupal requires some care, configuration and advanced technologies like Varnish, Memcache, APC, load balanced multiple servers, network file storage systems, optimized MySQL and more. This book, High Performance Drupal, goes over all these techniques. This makes it a great purchase anybody needing to upgrade the performance of their site, and especially those thinking of multi-server site infrastructure or even cloud deployments of Drupal.
When your site graduates beyond those needs, what do you do? There's quite a lot of advice out there, some of it conflicting, and of course there's services like Acquia Cloud of Pantheon promising to make cloud deployment a piece of cake. Or, you can roll your own high performance Drupal system. That's where this book comes to the rescue.
In chapter after chapter the authors discuss every aspect of configuring Drupal for high performance. While the advice covers both Drupal 7 and Drupal 8, a lot is applicable to Drupal 6. But, shouldn't you already be planning your migration from D6 to D7?
It has a very nice discussion of caching, especially for the new caching system coming with Drupal 8. With Drupal 8 is a new feature, cache chain back-end, that will allow us to use multiple caching back-ends. For example it could be configured to use both APC and database back-ends, and if the item isn't found in the APC cache it'll look in the database before declaring whether the item is found, or not.
Beginning with Chapter 7 the book explains horizontal and vertical scaling, multi-layer infrastructure architectures, high availability and failover, and a bunch of other details useful for truly high volume websites.
One issue when deploying a multi-server Drupal site is how to maintain consistency for sites/default/files directory contents. Suppose a site member uploads an image. That image will land on one of the servers, but how will it propagate to other servers? The book spends a whole chapter discussing different options for dealing with this.
Another area of big concern is slow queries in MySQL. Drupal won't always generate nice clean SQL queries, and maybe you need to introduce indexes to fields that end up being critical in complex queries. There's a whole chapter about this, plus two other chapters on MySQL optimization and even use of MySQL alternatives like MariaDB or Percona.
It's a comprehensive book that covers a lot of territory. However, that does mean the book isn't always able to cover things in great detail or depth. While there are many sections containing code or other low level details, there are many other sections that rely on high level advice. The places where it's giving advice, rather than details, are still very useful and informative, you'll just have to read up on the details elsewhere.
For owners of small scale Drupal sites, this book is overkill. Where it shines is the larger volume sites. For people running such sites, or looking to run such a site, this book will give you reams of excellent advice. And because the bike covers Drupal 8, it's not going to go out of date any time soon.