DrupalCon Nashville 2018: Configuration Management for Humans

During the early planning stages for Drupal 8, one of the most anticipated changes was the new Configuration Management Initiative. Today it is safe to say that the hype was real, and that the new configuration system is perhaps single most important change in the Drupal 8 universe.

And yet more than two years after the release of Drupal 8, the configuration system remains somewhat of a mystery to both experienced Drupal 7 developers and new Drupal 8 developers. Best practices are still being actively developed and discussed, and hard problems are still being solved both in the contributed module space and in Drupal core proper.

This session aims to unravel the mysteries of the Drupal 8 configuration system, and to outline an evolving set of best practices explained in human terms.

Whether you are a solo consultant or part of a larger team with distributed developers, this session will leave you with a fundamental understanding of why configuration management exists, how it works, why it matters, and how to take advantage of this impressive system no matter what kind of Drupal site you are managing.

How did we get here?

Learn about the history of configuration in Drupal, the rise and fall of the Features module, the promise of a better way, and the ultimate decision to develop a new configuration system for Drupal 8.

Why is it important?

We provide real world examples that explain why the configuration system is so important, how it can cut your development time by as much as 30% or more, and how it has provided a virtually fail safe solution for deploying Drupal sites whether you are a one-person show or a large distributed team deploying mission critical websites.

How does it work?

We will cover the basic fundamentals of configuration management, the difference between “active” configuration and configuration in “code”, and why it matters. We will cover the basics of the Configuration API, the configuration UI, and the critical Drush commands you will need to effectively manage configuration.

Okay, but how does it REALLY work?

The truth is that configuration management is complicated, and even more so once you start to encounter some of the difficulties surrounding projects that are complicated by clients, content editors, and multiple developers who are all actively trying to work on a site.

This session will do a deep dive into these issues and provide solutions such as:


Managing configuration in a team environment -- learn how to do fail-safe deploys no matter who is working on a site
Configuration Split module -- learn how to use different configuration schemes depending on your environment
Configuration exclusions -- learn how clients can make configuration changes on things like Webforms without losing work
Config Devel -- learn about the Config Devel module and other contributed solutions to common problems
Gotchas -- learn what to do when things go crazy and the key_value_expire table takes over your configuration
How to recover when things go bad -- avoid configuration loss and overriding work

To infinity, and beyond!

Finally we will take a look at the future of configuration management in Drupal, and some of the more powerful ways it can help you:


What is happening in core? (e.g. configuration split, configuration installs)
Devops and continuous integration for the win
Better QA and fail safe deploys every time
Why the configuration system matters, even for a single developer

By the end of this session you should have a fundamental understanding of the Drupal 8 configuration system, a list of real world best practices and strategies, and a plan for how you can leverage the configuration system to take your Drupal 8 builds to ever greater heights.

Drupal is a registered trademark of Dries Buytaert.