How Duke University is Using Drupal

Lately, I have heard Drupal referred to as a “framework” in addition to a content management system. After building several Drupal sites, I would have to agree. A core Drupal installation gives you very little to start with. However, with the help of widely-used contributed modules, you can build anything from a personal blog, up to https://www.grammy.com or https://www.whitehouse.gov.

Or https://www.duke.edu. Duke University’s information technology units have historically followed a decentralized model. As a result, Drupal isn’t “the” CMS at Duke, it’s one of three supported by the central web services team. WordPress and Cascade Server are the other two, and many others can be found across the university as well. That said, however, Drupal is gaining in popularity, and increasingly more division and department websites at Duke are built in Drupal. We also redesigned our institutional homepage in Drupal in the fall of 2009.

Duke’s centrally-hosted Drupal instances run in a LAMP environment (Linux, Apache, MySQL, PHP). However, Drupal can be installed on a Microsoft IIS web server, and it can use a PostgreSQL database - although these aren’t recommended. Our homepage receives around 27,000-30,000 visits per day, and it handles this with ease.

A simple Drupal installation is fairly straightforward: Download the most recent version from https://www.drupal.org, put the files on the web server, create a database, and run the install script. However, Drupal is very bare-bones out of the box; the current version does not even include a WYSIWYG editor. It is almost always necessary to supplement the Drupal core with add-on modules. And, if you do not find a contributed module that fits your needs, a developer with decent PHP chops can write a custom module, and even contribute it back to the community if desired.

This can be daunting to people who are accustomed to getting more out of the box with their CMS. However, the bare-bones core is actually a boon to developers, as it makes Drupal very easy to customize. That said, it’s tempting to go overboard with contributed modules. However, installing a large number of modules can be resource intensive and substantially slow your system down, so you have to find a happy medium.

My main caveat to anyone considering Drupal is the need for adequate development resources, preferably in-house. While it is certainly possible to get a Drupal site up and running without HTML or programming experience, it would be a very difficult task and your site will mostly likely not look very good, to be perfectly blunt. Templates are created with HTML, CSS, and some PHP. You can either build your own templates, or install an existing theme. If you want to create your own template, you don’t need to be an expert in PHP but it is necessary to have a basic idea of the syntax. PHP is not needed to install modules, but if you want to embark on creating your own, then it’s a must.

drupalscreenshot1 150x150 How Duke University is Using DrupalThe central IT unit at Duke has three developers and two systems administrators who work directly with Drupal; individual school and department units have their own IT staff and are responsible for their own Drupal installations. Our central web team is always building new websites, and maintaining Drupal is only one of our responsibilities. Once a site is up and running, our only involvement is upgrading Drupal periodically or building additional features onto an existing site if the client requests them.

Drupal is free and open source, and we host our sites in house. Therefore, all of our costs are absorbed into hosting costs and staff salaries. This, of course does not mean that Drupal has been completely free for us. As a case in point, the Duke.edu redesign consumed a large percentage of three developers’ time for over two months, which kept us from working on other projects.

Drupal has an option for multi-site installation: running multiple websites off of the same code base, with each site getting its own database (it’s also possible to run multiple sites off of the same database or to share tables; for example, a user table). Multi-site simplifies upgrades substantially. We have some websites running off a multi-site install, and some standalone instances. This is due primarily to our decentralized organizational model than a limitation of Drupal, per se.

High availability was one of our main concerns when we first started thinking about using Drupal for the Duke.edu site. Since content is stored in a database and files are PHP, the site is already more resource intensive than one comprised of flat HTML files. There are a number of caching mechanisms built into Drupal as well as additional modules that can boost the caching further. We enabled these but just to be on the safe side, we also used GNU Wget, a tool for retrieving files and outputting them as flat HTML. When site visitors go to the Duke.edu front page, they are actually viewing a flat HTML file rather than dynamic PHP output. Wget is triggered regularly by a scheduled cron job so to the content stays fresh. This cuts down on page load time substantially.

Duke uses a Google Search Appliance and a custom people directory search program. Because these systems were already in place before our redesign, we chose to wrap them in the site template, rather than build them into Drupal itself. However, we were able to incorporate data from other systems into Drupal directly. We use a module that not only pulls in items to the homepage from the news site and institutional calendar, but also allows content editors to cherry-pick which items should display. They enjoy the ease with which content is imported from these other systems, but also the editorial control the cherry-picking affords them. Drupal has a module for incorporating Shibboleth authentication, which Duke’s Division of Student Affairs has implemented on their installation.

Since Drupal is open source, there is no official support built in. That said, however, the Drupal user community is wonderfully helpful. https://drupal.org has links to tutorials and documentation as well as the user forums. I initially found the myriad resources on the internet to be sensory overload, so I actually found a book to be most helpful when getting started (, was my favorite). Lullabot provides a variety of instructional videos and training as well. I’ve also found my local Drupal users’ group to be an invaluable resource. Even though most Drupal developers I’ve met through the group work outside of higher education, they have been very helpful when troubleshooting and brainstorming.

drupalscreenshot2 150x150 How Duke University is Using DrupalDrupal is known as “developer-friendly,” in the sense that it is highly flexible. One of my favorite aspects of Drupal is that it allows you to customize the format of your data to the logic of the content, rather than squeezing your content into a predefined set of form fields in which it might not logically fit. Editors have reported to us that content entry feels more intuitive to them in Drupal than in more rigidly defined CMS’s.

The downside of this is that you get very little out of the box with Drupal, and the developer learning curve is relatively steep. There is a lot of configuration that needs to be done at the outset just to get a site off the ground. It’s crucial to have a Drupal developer (if not more!) on staff, or the resources to hire an outside firm.

However I would be remiss if I did not mention Acquia, a company that provides products, services, and technical support for Drupal, and founded by the creator of Drupal. Acquia offers various pricing models with differing levels of support and maintenance, all the way up to a fully-hosted option. I personally have never used Acquia, but have heard only good things about it. Acquia might be a good option for organizations that would like to use Drupal but do not have resources available to keep up with support and version updates.

As much as I love Drupal, I will be the first to admit that it is not the best tool for every website — which is why we support three CMS’s in our web office. A small standalone departmental site consisting of only a few informational pages and maybe a listing of news stories? I’d probably build that in WordPress or Cascade Server because the structure of the site is simple and I could build it much more quickly in either of those than in Drupal. But a website in which the clients want a blog, a database of case studies that can be searched in a variety of ways, a discussion forum… and they’ll probably want to add additional functionality later? That site would be an excellent candidate for Drupal.

Our next steps for Drupal at Duke? Build more Drupal websites, of course! All kidding aside, our major priority is investigating ways to speed up the rollout and upgrade process for our standalone instances, as well as developing a slightly more streamlined hosting model overall. We are also looking to establish a more cohesive Drupal user community at Duke. Increasingly more departments and organizational units are adopting Drupal as their CMS. But because of our decentralized IT structure, Drupal developers at Duke often operate in isolation from one another. The global user community is one of the greatest benefits of Drupal, so we need to take our cue and foster greater camaraderie among Drupal developers within our own institution.

This post was written by:

Christina Dulude

This post was contributed to .eduGuru by Christina  Dulude. She implements web-based systems as part of Duke University's central  information technology unit. Her responsibilities include building  websites with careful attention to accessibility guidelines and  cross-browser compatibility, web application development, and consulting  on university-wide web projects. Before joining Duke in 2005, Christina  served as web specialist for Indiana University School of Medicine.  Christina graduated from Indiana University with a BA in Comparative  Literature, Gender Studies and Classical Studies, and a Masters degree  in Information Science.


12 Responses to “How Duke University is Using Drupal”

  1. Says:

    There’s still a lot of optimization that could be done with duke.edu to improve page performance. Give the site a whirl at webpagetest.org.

    https://www.webpagetest.org/result/100406_6J57/1/performance_optimization/

    https://www.webpagetest.org/result/100406_6J57/1/details/

  2. Says:

    We are working on rolling out a new website for our college. We currently use Joomla, but found that the granularity that Drupal offers for both content creation and user management exceeded anything Joomla could offer.

    When I was researching ‘Joomla vs. Drupal’, there was never a clear answer. I agree with you that Drupal isn’t for every website. That was the gist of my research too. Depending on your needs, Joomla or other CMS packages would be better.

    Drupal does have a fairly high learning curve, that is why we are going with the Acquia installation and subscription service. We also have a Drupal consulting company meeting with us weekly to help guide our process.

    Thanks for sharing your insight and experience.

  3. Says:

    We just rolled out Drupal at our campus as well. I’d like to know more about how Duke manages the site hierarchy/information architecture and editing permissions with Drupal. We weren’t able to find an adequate combination of modules to handle this task with a single-site architecture. Instead, we teamed up with Amherst that solved the issue by writing their own permissions management system for Drupal. Has Duke’s multi-site system helped you manage user permissions and hierarchy?

  4. Says:

    Web Manager(McC): I’m curious to hear about your experiences with Acquia! I hope you’ll post a case study when the project is complete?

    Ian: So far, we’ve been rolling out Drupal as a combination of standalone and multi-site installations, so we haven’t needed to go too granular with permissions on any one site yet. However, maintaining separate instances can quickly become unwieldy, so we’re currently looking into solutions for streamlining our hosting model. I know know if this would help you at all, but I do know it’s possible to share user data tables between sites (although we haven’t tried this yet).

    • Says:

      Christina, I am amazed, absolutely amazed, at how closely Duke University has followed the exact same footsteps that San Francisco State University has taken in implementing Drupal on campus. We went through same concerns with flat html, and I built a module which I contributed back to the Drupal community, https://drupal.org/project/savetoftp and this way content creators can just send their drupal nodes to the web hosting server as a flat .html file. We also do shibboleth authentication. I have to say, that yes you will find having many stand alone instances becomes unwieldy very quickly and suggest that as fast as possible you implement a solution of using just one multi-site installation. Much less headaches that way. I’d be really happy if you could e-mail me and we could exchange notes about implementation.

  5. Says:

    Drupal does look good as an optimization option. But if we compare it with Jhoomla then Jhoomla is a little better in the efficient website development as it covers almost all important functionalities required in an open source Content Management System.Recently ,there have been similar developments in case of the search platforms in the open source world. Solr constituting advanced searching techniques has made a decent name in the open source market . I explored Solr’s working fundamental at https://www.lucidimagination.com/Downloads/LucidWorks-for-Solr/Reference-Guide which was quite useful.

  6. Says:

    We are currently exploring the possibility of using Drupal at our university, and the resources involved in setting up additional caching mechanisms are a prominent concern. Thanks so much Christina and Kevin for the information you’ve provided. I’ll be looking into the modules you’ve suggested.

    • Says:

      Joyce

      If you are worried about performance, the number one improvement you can do is have the system setup to install with APC for PHP. https://php.net/manual/en/book.apc.php This brought us down from about a 4s load time to 1.5s.

      If you are developing custom modules, install xdebug, kcachegrind and you can see which functions are causing the most performance issues. We cached some drupal_http_request() calls, and brought the load time down from 7s - 4s, then as mentioned above we installed APC and went from 4s to 1.5s (all our users are logged in users so we can’t cache everything).

      Cheers.

      • Says:

        I can vouch for APC for PHP. It is supposed to be included in the PHP6 release of PHP. Despite that, my preference is eAccelerator (https://eaccelerator.net/). It gets updated more often than APC and has some very nice tools to measure the acceleration engine for effectiveness. They both offer similar performance improvements, though.

  7. Says:

    Hi Kevin,

    Yes, performance is a concern. Thanks for sharing information on the solutions you’ve implemented and the results. We’re still in the early stages in our decision making process, and your insights will help address a number of concerns that have been raised during our discussions. Thank you!

  8. Says:

    - NewWebsite - wEBHOSTING with HOSTGATOR Coupon Code: HOSTGATORSAVE, DEALSAVINGS, HUGESAVINGS, SAVEHUGEMONEY - 20off - visit bit.ly-9ESukZ -

Trackbacks/Pingbacks

  1. Web Spiders’ Blog » Blog Archive » Duke Walks the Drupal Way --> says:

    [...] To get more details on how Duke University has implemented Drupal, click here. [...]