Semantic web development and publishing

Custom Drupal Distributions (part 10)

There are a couple of projects which have made it easy to achieve performance gains by making slight amendments to core or packaging up the code in a helpful manner. Pressflow makes it possible to use a reverse proxy such as Varnish, amongst other things. Mercury packages Pressflow up as a Amazon EC2 image. The development of both these projects is the sign of a maturing ecosystem where serious deployments can easily be rolled out.

Pressflow

Pressflow is a distribution which attempts to bring many of the improvements discussed above (SQL improvements, Varnish) into a single package. Pressflow is a standard Drupal install which has had its core modified to fix bottlenecks and facilitate the use of advanced caching features. FourKitchens don’t regard Pressflow as a fork since many of the initiatives found in Pressflow are contributed back into the development of the head of Drupal.

So long as you haven’t hacked core yourself then using Pressflow is a simple matter of swapping out core drupal and replacing it with Pressflow.

In a nutshell Pressflow allows the following:

  • Support for database replication
  • Support for Squid and Varnish reverse proxy caching
  • Optimization for MySQL
  • Optimization for PHP 5

High Traffic, Varnish required: Easy setup.

Pressflow makes Drupal scale
Announcement covering the advantages and features of Pressflow.

Project Mercury

Project Mercury is an innovative project from Chapter Three which wraps up a tricked out PressFlow installation in to a preconfigured Amazon Machine Image (AMI) for use on Amazon EC2 instances.

The Pantheon Project Blazes Ahead
Hot of the press: Mercury will also be available for deployment on other servers, not just EC2. Further there will be a Mercury On Demand service at Rackspace.

The goal of this project is to make Drupal as fast as possible for as many people as possible. To that end, we are developing a pre-built Amazon Machine Image (AMI) which will allow anyone with an Amazon Web Services account to spin up an EC2 instance and see how all this works in real-time. The ultimate goal is a production-ready release that can be used for deploying real websites.

If you want to get started using the image all you need to do is signup to Amazon Web Services and then start up an instance of your choosing. You know are in control of a fully configured, scalable server. This sounds easy in practice, however, if you are considering going down this path there are a couple of considerations:

  • Amazon is not the cheapest provider of bandwidth, RAM and storage. Other virtual servers have better deals. You are paying for the ability to spawn servers on the fly
  • Persistent storage is an issue which needs to be overcome and managed if scaling out your web server.
  • There a bit of a learning curve with some of the tricks of the trade when managing the servers.

Project Mercury and EC2 is a worthy combination if you really need the ability to serve massive amounts of traffic and also have the ability to temporarily scale out during peak times.

Project Mercury Benchmarks: 2000+ Requests Per Second!
Drupal is fast with APC + Page Cache. It is very fast with PressFlow and Varnish. NB. It would have been interesting to see how Boost went against Varnish for this test.

The configuration chosen by the project is interesting because it shows how other sites might go about setting up a scalable server. in brief the setup is as follows:

  • Ubuntu 32 or 64 bit
  • Pressflow
  • APC for opcode cache
  • CacheRouter and APC/Memcached for No SQL caches
  • Varnish as reverse proxy

High Traffic, Varnish required, EC2 required: Easy setup considering.

Step-by-step: Setting up Varnish, Apache, APC and Solr Project Mercury Style
Step by step instructions for setting up Project Mercury on a Ubuntu server. Very helpful for admins wishing to install manually on their own server.

This article forms part of a series on Drupal performance and scalability. The first article in the series is Squeezing the last drop from Drupal: Performance and Scalability.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>