Building multiple Drupal 7 sites with 100 modules
The Wellcome Trust is a biomedical research charity based in London. It was established in 1936 to fund research to improve human and animal health. They hired us to build their new online science magazine, Mosaic, and we knew Drupal 7 was fit for purpose.
What we did
Mosaic specialises in 5,000 word, open-source articles and the site's content has views in the millions. Importantly, this project was major because Wellcome Trust was evaluating Drupal as a potential platform for other sites. We were on trial. If Drupal worked, could it work with the design model at the Trust, and could the internal team learn Drupal 8 enough to become independent?
It was key that their team be proficient in Drupal by the end of the project. As a large organisation making a strategic commitment to a specific technology, you don't want to end up relying on external agencies.
The work was mostly delivered by two CE developers. Wellcome's digital team oversaw, whilst being trained. We documented the build so the team could learn and built a demo site to play with. They've since built three more sites.
You may think building five sites in Drupal 7 was no biggie. But, these are fully responsive sites, utilising 100 modules, built by a team that was using version control in a continuous integration environment. Also, they were working on Macs for the first time. Oh, and they were routinely knocking out entities rather than relying on nodes. This was impressive a year in. In fact, we think Wellcome Trust now has one of the best in-house Drupal teams in London.
We were interested in the technical and client-relationship aspects of this project as it had a content dimension that made it stand out from a purely technical job. The mutual sharing and adoption of project management techniques were a great bonus.
We were asked to conduct performance tests on the Wellcome Trust Mosaic site after real content had been created, reporting on any shortcomings and areas of concern and comparing the results with that of the previous test conducted on dummy data.
We used the monitoring system New Relic, which was already installed on the two production servers for detailed monitoring during the tests.
We simulated anonymous traffic hitting the site, whereby the users did not log in to the site. We used the same test path as before but substituted the dummy paths with the paths to the actual data (such as stories, extras, people, etc).
- Home page
- Story - Alzheimer's Enigma
- Extra - Loose Threads
- Topics - Body
- Story - Second Coming
- User - Giles Newton
We then carried out a number of tests against the Drupal application using a JMeter script and a product called BlazeMeter, which allowed us to scale up and simulate very high traffic.
Drupal’s internal page caching mechanism was enabled, along with Memcached (for cache storage) and Varnish, a reverse proxy to store built pages.
Overall, however, the application performed well when no assets were retrieved. When the option to retrieve all embedded assets was enabled, there were tens of thousands of errors, we figured that this was likely due to some external service such as Twitter or SVGs.
Working effectively onsite isn't a given. We've heard about freelancers waiting for basics like network logins for days. At Wellcome, it worked partly because the digital team were really committed to learning Drupal, and there was project management in place.
Wellcome was interested in working according to Agile-scrum methodology. There's no doubt that having a competent scrum master at the client end makes a difference to organising a team of agency and in-house members.Chris Maiden - Senior Developer