Configuration Management dimensions
Key points from our configuration management sessions.
Unfortunately none of us from Nuvole are attending DrupalCon Baltimore and can’t, therefore, attend the “hallway track” and join discussions in person. We have held presentations about advanced configuration management in Drupal 8 at all Drupal events we attended in the last year including the last DrupalCon in Dublin. So I’ll try to cover some concepts here that could help the discussion about how the configuration management can be improved.
To me there are at least two important dimensions to configuration management in Drupal 8 and different contrib project have sprouted to address:
Vertical: transfer configuration between different environments of the same site.Horizontal: transfer configuration between different sites.
Following are a few contrib solutions and core issues that address the different itches. This is not meant to be an exhaustive or definitive list but highlight the different problem spaces. Many more contrib solutions address some issues in this space to accommodate various different workflows.
Vertical
Drupal 8 core only addresses this use case, however, there are some important cases not covered (yet). The management of configuration between the different environments is best taken care of by importing and exporting the whole sites configuration together.
Installing from existing configuration:
Contrib solution: Config installer
Core issues: Allow a site to be installed from existing configuration, Allow a profile to be installed from existing config
Environment specific configuration (ie devel only on develop)
Contrib solution: Config Split
Core issues: Allow exported configuration to be environment-specific, Allow development modules to opt out of config-export
Configuration with Content
Contrib solution: Default Content, Deploy
Horizontal
Due to the fact that the same tools can be used for both dimensions and the fact that in Drupal 7 features was abused for doing the vertical configuration management as well this concept may not be so clear. Ideally configuration between sites is shared from the development environment of one site to the development environment of another, and the vertical tools with drupal core are used for deployment. Moving configuration between different sites is done by moving a subset of configuration between environments.
Re-using a set of configuration in another site
Contrib Solution: Features
There are many more modules designed to deal with distributions and dealing with the paradigm that sites now own the configuration.
Inheriting installation profiles
Core issue: Allow profiles to provide a base/parent profile
Multisite with large portion of shared configuration
Contrib Solution: Config Split
While this is not the original problem it tries to solve, it is reported to be used for it..
Conclusion
I may have an obvious bias towards config split since we maintain that module but it is just one of many config related modules. I hope there is a fruitful discussion in Baltimore about configuration management in Drupal 8. BoF
Related blog posts:
- https://www.chapterthree.com/blog/installing-drupal-8-from-configuration
- https://chromatichq.com/blog/managing-complex-configuration-drupal-8
- https://blog.liip.ch/archive/2017/04/07/advanced-drupal-8-cmi-workflows....
Tags: Drupal 8Drupal PlanetDrupalConCode Driven Development