Sooner or later, you’ll be asked the dreaded question: “Can’t you make it faster?”
Like most complex web frameworks, Drupal can at times appear slow, especially when its configuration prevents it from getting the best out of the hardware on which it runs.
There’s a range of solutions, from the very simple (turn on simple caching) to the mind-boggling (event-oriented parallelised distributed hierarchical content aggregation, anyone?)
In this tutorial, we’ll look at the solutions and tools that are available to most developers, using a standard LAMP stack, and which will improve the performance on 99% of the sorts of sites a typical Drupal agency will build. These tools are fairly well-known at today’s technology conferences: tools such as Varnish, Memcached, APC, xdebug and xhprof. The tutorial will focus on configuring and using these with Drupal to be sure you’re getting the best performance out of the hardware.
Finally, we’ll look at the grail of performance: how to cache fully-authenticated personalised web pages.
Questions & Answers
- Who’s the target audience for this tutorial?
- Primarily Drupal developers, but sysadmins and development managers may find some of the information useful.
- How experienced do I need to be?
- You should be familiar with installing Drupal, using contrib modules, and developing in PHP. Some of the topics will be more advanced, but you don’t necessarily need to fully understand the solutions to take advantage of them (and if you do want to understand things like the inner workings of Varnish, there’ll be a list of useful resources to take away!)
- Which version of Drupal will you be covering?
- The tutorial will be focused on Drupal 7 and it’s variations (Pressflow 7, Acquia Drupal 7, etc). Most of the principles can also be applied to Drupal 6.
- Do I need to bring a laptop?
- You’ll get much more out of the tutorial if you bring a laptop which is already setup with your usual developer environment (ideally a standard LAMP stack in a VM). If you have VMWare or VirtualBox, there’ll be a prepared VM for you to use.
- Can you show me what’s wrong with my site/how to make it faster?
- Bring a copy of your site with you (a copy of the code, any required file assets, and a backup of the database) and you can test how the tools affect its performance. If time allows, I’ll also review the code and setup with you.
Marcus is a long-term contributor to open-source, and an active member of the Drupal community. He looks after a number of modules on drupal.org, talks regularly at conferences and meetups (in fact, the challenge is to *stop* him talking), and he is on a mission to attend every Drupal User Group meetup in Britain at least once.
Marcus works for Capgemini UK, where he leads the architecture and development of large-scale Drupal-centered systems.