Drupal, the Fastest
At DrupalCon Nashville 2018, I became deeply interested in the realm of first-time Drupal experiences, specifically around technical evaluation, and how people would get their feet wet with Drupal.
There are a number of different tools people can use to run a new Drupal installation, but documentation and ease of use for beginners is all over the place. The intention of this project is to highlight the most stable, simple, and popular ways to get a Drupal site installed and running for testing or site building, and measure a few benchmarks to help determine which one(s) might be best for Drupal newcomers.
For reference, here's a spreadsheet I maintain of all the community-maintained local Drupal development environment tools I've heard of.
If the method is linked to a local build script, there is an automated build process that can be easily measured in terms of complexity, dependencies, and time required to build (basically, go from no Drupal to Drupal 8 site installed and accessible in the browser).
drupal-quick-start.sh: Download Drupal and run a local environment with PHP and SQLite using Drupal core's
composer-drupal-vm.sh: Drupal Composer Project and Drupal VM Docker Composer Plugin.
lando.sh: Download Drupal and run a local environment with Lando.
drupal-vm-composer.sh: Drupal VM, Vagrant, and VirtualBox, with Drupal Composer Project.
ddev-local.sh: Download Drupal and run a local environment with DDEV Local.
docksal.sh: Run a local environment with Docksal.
The intention here is to make as automated a build process per tool as possible, so anyone can re-verify both the build process and the complexity and time taken for each.
There is no one reliable way to measure "what is the [best|fastest|most efficient]" local development tool for Drupal. However, I define a basic set of tasks which apply universally and are consistently measurable across any of the tools available:
- Download and install dependencies (for things like VirtualBox or Docker CE, I discount the time involved downloading and installing them to be more consistent across modern environment tools).
- Download Drupal (or create codebase with Composer).
- Download the development environment tool (and install it if necessary).
- Start the local development environment.
- Install Drupal (either with
drush site-installor an inbuilt method).
- Load the home page.
The scripts included with this repository are all meant to do the above process, end-to-end, repeatably, and ideally fully automated within Travis CI so there is little variance from workstation to workstation (e.g. I have a fast 2016 MacBook Pro with high speed Internet, but maybe someone else has an older PC with really slow Internet—that greatly affects benchmarking!).
Current as of: April 12, 2018
|Tool Name||Time to build||Required Dependencies||Steps||Environment|
|Drupal quick-start||02:00||2||3||Travis CI|
|Composer with Drupal VM Docker||05:53||3||4||Travis CI|
|Drupal with Lando||03:01||1||7||Travis CI|
|Drupal VM with Vagrant and Composer||08:33||3||2||MacBook Pro|
|Drupal with DDEV Local||02:30||1||6||Travis CI|
|Drupal with Docksal||02:39||1||5||Travis CI|
This project is licensed under the MIT open source license.
About the Author
Jeff Geerling created the Drupal, the Fastest in 2018 to evaluate the Drupal evaluator experience.