Drupal VM vs. Acquia Dev Desktop for Local Development in Drupal 8

What's the right local development environment to use for you? Acquia Dev Desktop or Drupal VM for Drupal 8?

For several years, I've done all my local development with the help of Acquia's Dev Desktop. It's a specialized *AMP (MAMP, for me!) suite for Drupal that'll let you launch new projects rapidly. It's free to use and doesn't need any specific integration with Acquia. If you're working on your own independent Drupal project, it can still be a great solution. I was recently roped into testing a virtual machine for Drupal via the Drupal VM project.

Acquia Dev Desktop: An Aging Local Environment

The usefulness of Acquia Dev Desktop has started to falter with more of our development work shifting to Drupal 8. Composer integration is non-existent with Dev Desktop. Composer has become the defacto standard package manager in the world of Drupal 8. 

You use Composer for doing things like installing modules in the world of Drupal, a task that used to be handled with Drush. Acquia itself recommends dev environments other than Dev Desktop at the enterprise level. I've seen this when working with their ACSF or BLT products.

An entire Virtual Machine to run Drupal

For that reason, I've started using Drupal VM for more projects. While it doesn't have the local machine app-level interface to use, it does offer up a good browser-based dashboard. It's built on top of Vagrant so there's an existing world of command-line tools, community integrations, and help guides.

Being an entire Virtual Machine, Drupal VM naturally offers more flexibility in how you configure your local development stack. However, it's also more work than simply installing a tool like Acquia Dev Desktop. I could often kick-off a new project in Dev Desktop in ten minutes. I'd say it took me a few hours to get Drupal VM and its base requirements (Vagrant, Ansible) configured with an operating Drupal 8 environment.

Drupal VM is definitely more effort to get started but brings with it full control over an environment. I do enjoy SSH'ing into my local Drupal VM and being able to execute standard command-line tasks on the virtual machine. The integration to your local disk makes it easy to do things like export your Drupal 8 configuration (good old "drush cim"). You can do this from within an SSH session on the VM and find that the config is immediately available on your actual local disk site folder ready to commit with Git and send on its way to the repository. 

Drupal VM's Workflow and Integrations

Drupal VM Dashboard Example

Although you can of course use your own local SQL tools, Drupal VM comes with Adminer. It's a lightweight PHP-based database management tool for RDBMS. Other than MySQL, it also supports SQLite, PostgreSQL, and Oracle. It's similar to PHPMyAdmin, taking some design and functional cues from it.

One of the biggest issues I've had with Acquia Dev Desktop as of late is Composer integrations. Really, it's the lack of Composer compatibility. Drupal 8's recommend setup process and dev/test/prod environment workflow now revolves around leveraging Composer. It's used to manage much of the third-party libraries, modules, etc that a Drupal project has. Historically, I've committed nearly everything to Git. I've handled deployments almost entirely with Git.

Now, in modern Drupal 8 projects, Git is merely given the installation and update lists. With the ingredient file in Git, deployments revolve around migrating the requirements between environments and using Composer to install or update packages.

Leaving Dev Desktop for Drupal VM

Having significant freedom with how to use Composer and designing a workflow has become a vital part of managing live Drupal 8 sites with a multi-environment workflow. I've felt like Acquia Dev Desktop just doesn't jive with the modern Drupal 8 flow as it did with Drupal 7.

Daymuse has migrated more sites to Drupal 8 and has all new development in Drupal 8 (even as our last Drupal 8 getting started post is a little dated). I sadly have less of a reason to use my old standby Dev Desktop icon on my Mac's Dock. While I think Drupal VM is still working through growing pains, I'm happy to see a more modern development environment to work in day-to-day. I recommend checking out the project.

Chris's picture