<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Configuration</title>
    <description>Dries Buytaert on Configuration.</description>
    <link>https://dri.es/tag/configuration</link>
    <atom:link href="https://dri.es/tag/configuration/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How we are improving Drupal&#039;s configuration management system</title>
      <link>https://dri.es/how-we-are-improving-drupal-configuration-management-system</link>
      <guid>https://dri.es/how-we-are-improving-drupal-configuration-management-system</guid>
      <pubDate>Tue, 30 Oct 2018 13:39:19 -0400</pubDate>
      <description>&lt;p&gt;Configuration management is an important feature of any modern content management system. Those following modern development best-practices use a development workflow that involves some sort of development and staging environment that is separate from the production environment.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img src=&quot;https://dri.es/files/cache/drupal/configuration-management-example-1-1280w.jpg&quot; alt=&quot;A diagram showing a configuration workflow moving from development (dev) to staging (stage) to production (prod) with arrows.&quot; width=&quot;1280&quot; height=&quot;280&quot; /&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Given such a development workflow, you need to push configuration changes from development to production (similar to how you need to push code or content between environments). Drupal&#039;s configuration management system helps you do that in a powerful yet elegant way.&lt;/p&gt;
&lt;p&gt;Since &lt;a href=&quot;https://dri.es/configuration-management-in-drupal-8&quot;&gt;I announced the original Configuration Management Initiative&lt;/a&gt; over seven years ago, we&#039;ve developed and shipped a strong configuration management API in Drupal 8. Drupal 8&#039;s configuration management system is a huge step forward from where we were in Drupal 7, and a much more robust solution than what is offered by many of our competitors.&lt;/p&gt;
&lt;p&gt;All configuration in a Drupal 8 site – from one-off settings such as site name to content types and field definitions – can be seamlessly moved between environments, allowing for quick and easy deployment between development, staging and production environments.&lt;/p&gt;
&lt;p&gt;However, now that we have a couple of years of building Drupal 8 sites behind us, various limitations have surfaced. While these limitations usually have solutions via contributed modules, it has become clear that we would benefit from extending Drupal core&#039;s built-in configuration management APIs. This way, we can establish best practices and standard approaches that work for all.&lt;/p&gt;
&lt;div class=&quot;large&quot;&gt;
  &lt;figure&gt;&lt;img src=&quot;https://dri.es/files/images/drupal/configuraton-management-initiative.jpg&quot; alt=&quot;Configuraton management initiative&quot; width=&quot;1920&quot; height=&quot;1080&quot; /&gt;
&lt;figcaption&gt;&lt;em&gt;The four different focus areas for Drupal 8.  The configuration management initiative is part of the &#039;Improve Drupal for developers&#039; track.&lt;/em&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;/div&gt;
&lt;p&gt;I first talked about this need in &lt;a href=&quot;https://dri.es/state-of-drupal-presentation-april-2018&quot;&gt;my DrupalCon Nashville keynote&lt;/a&gt;, where I announced the Configuration Management 2.0 initiative. The goal of this initiative is to extend Drupal&#039;s built-in configuration management so we can support more common workflows out-of-the-box without the need of contributed modules.&lt;/p&gt;
&lt;p&gt;What is an example workflow that is not currently supported out-of-the-box? Support for different configurations by environment. This is a valuable use case because some settings are undesirable to have enabled in all environments. For example, you most likely don&#039;t want to enable debugging tools in production.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;&lt;img src=&quot;https://dri.es/files/cache/drupal/configuration-management-example-3-1280w.jpg&quot; alt=&quot;Diagram showing bugs in development and staging phases, but removed before reaching production.&quot; width=&quot;1280&quot; height=&quot;280&quot; /&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The contributed module &lt;a href=&quot;https://www.drupal.org/project/config_filter&quot;&gt;Config Filter&lt;/a&gt; extends Drupal core&#039;s built-in configuration management capabilities by providing an API to support different workflows which filter out or transform certain configuration changes as they are being pushed to production. &lt;a href=&quot;https://www.drupal.org/project/config_split&quot;&gt;Config Split&lt;/a&gt;, another contributed module, builds on top of Config Filter to allow for differences in configuration between various environments.&lt;/p&gt;
&lt;p&gt;The Config Split module&#039;s use case is just one example of how we can improve Drupal&#039;s out-of-the-box configuration management capabilities. The community created a &lt;a href=&quot;https://www.drupal.org/project/ideas/issues/2957423&quot;&gt;longer list of pain points and advanced use cases for the configuration management system&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While the initiative team is working on executing on these long-term improvements, they are also focused on delivering incremental improvements with each new version of Drupal 8, and have distilled the most high-priority items into a &lt;a href=&quot;https://www.drupal.org/project/cmi2/issues/3008882&quot;&gt;configuration management roadmap&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In Drupal 8.6, we added support for &lt;a href=&quot;https://www.drupal.org/project/drupal/issues/2980670&quot;&gt;creating new sites from existing configuration&lt;/a&gt;. This enables developers to launch a development site that matches a production site&#039;s configuration with just a few clicks.&lt;/li&gt;
&lt;li&gt;For Drupal 8.7, we&#039;re planning on shipping an experimental module for dealing with environment specific configuration, moving the capabilities of Config Filter and the basic capabilities of Config Split to Drupal core through the &lt;a href=&quot;https://www.drupal.org/project/drupal/issues/2991683&quot;&gt;addition of a Configuration Transformer API&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For Drupal 8.8, the focus is on supporting configuration updates across different sites. We want to allow both sites and distributions to package configuration (similar to the well-known &lt;a href=&quot;https://www.drupal.org/project/features&quot;&gt;Features module&lt;/a&gt;) so they can easily be deployed across other sites.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How to get involved&lt;/h3&gt;
&lt;p&gt;There are many opportunities to contribute to this initiative and we&#039;d love your help.&lt;/p&gt;
&lt;p&gt;If you would like to get involved, check out the &lt;a href=&quot;https://www.drupal.org/project/cmi2&quot;&gt;Configuration Management 2.0 project&lt;/a&gt; and &lt;a href=&quot;https://www.drupal.org/project/issues/search?issue_tags=CMI%202.0%20candidate&quot;&gt;various Drupal core issues tagged as &amp;quot;CMI 2.0 candidate&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Special thanks to &lt;a href=&quot;https://www.drupal.org/u/bircher&quot;&gt;Fabian Bircher&lt;/a&gt; (Nuvole), &lt;a href=&quot;https://www.drupal.org/u/jrbeeman&quot;&gt;Jeff Beeman&lt;/a&gt; (Acquia), &lt;a href=&quot;https://www.drupal.org/u/webchick&quot;&gt;Angela Byron&lt;/a&gt; (Acquia), &lt;a href=&quot;https://www.drupal.org/u/burnashburn&quot;&gt;ASH&lt;/a&gt; (Acquia), and &lt;a href=&quot;https://www.drupal.org/u/alexpott&quot;&gt;Alex Pott&lt;/a&gt; (Thunder) for contributions to this blog post.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Configuration management in Drupal 8</title>
      <link>https://dri.es/configuration-management-in-drupal-8</link>
      <guid>https://dri.es/configuration-management-in-drupal-8</guid>
      <pubDate>Mon, 28 Mar 2011 08:18:25 -0400</pubDate>
      <description>&lt;p&gt;In &lt;a href=&quot;https://dri.es/state-of-drupal-presentation-march-2011&quot;&gt;my DrupalCon keynote in Chicago&lt;/a&gt;, I talked about the key initiatives that I believe we should focus on for Drupal 8 core. One of those key initiatives that I talked about was &lt;em&gt;configuration management&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For some, &lt;em&gt;configuration management&lt;/em&gt; is a bit of an abstract term. In short, it refers to a mechanism for handling configuration changes. Site owners often want to have fine-grained visibility and control over configuration changes with the purpose of maintaining integrity and traceability throughout the life-cycle of the website. For example, they might want to lock down a site&#039;s configuration so site builders can&#039;t make changes in a production environment, they might want tools to automatically apply a set of configuration changes made to site A to site B, they might want to rollback changes, or go back in time to see who made what configuration change when. It will also paves the path for better &lt;em&gt;staging&lt;/em&gt;; some site owners want to be able to merge user generated content into their development environment, and new content back to the production.&lt;/p&gt;
&lt;p&gt;To enable all of the above in a modern and elegant way, we need to make a number of changes to Drupal. These changes will be worked on as part of the &lt;em&gt;Configuration Management Initiative&lt;/em&gt; for Drupal 8 core.&lt;/p&gt;
&lt;h3&gt;Greg Dunlap (and David Strauss)&lt;/h3&gt;
&lt;p&gt;Also in my DrupalCon keynote in Chicago, I outlined changes to the Drupal development process. Each of the Drupal 8 initiatives will have an &lt;em&gt;Initiative Owner&lt;/em&gt; that reports to me, and that acts as a project manager and/or technical lead.&lt;/p&gt;
&lt;p&gt;I&#039;m excited to announce Drupal 8&#039;s first initiative owner today. After some back and forth with various people and in-person meetings, I&#039;ve decided that &lt;a href=&quot;http://heyrocker.com&quot;&gt;Greg Dunlap&lt;/a&gt; (aka &lt;a href=&quot;https://www.drupal.org/user/128537&quot;&gt;heyrocker on drupal.org&lt;/a&gt;) will be responsible for leading Drupal 8&#039;s Configuration Management initiative. Not only is Greg both passionate and knowledgeable about the about the topic of configuration management, his employer &lt;a href=&quot;http://nodeone.se&quot;&gt;NodeOne&lt;/a&gt; has generously offered that Greg can work on it half of his time.&lt;/p&gt;
&lt;p&gt;I&#039;ve also asked &lt;a href=&quot;https://www.drupal.org/user/93254&quot;&gt;David Strauss&lt;/a&gt; to be an &#039;architecture gatekeeper&#039; for the Configuration Management Initiative. He needs to sign off on the architectural choices and the API design. Like Greg, David has been an evangelist for better configuration management in core. When both Greg and David are happy with the implementation, I&#039;ll consider including it in Drupal 8 core.&lt;/p&gt;
&lt;p&gt;For more details, &lt;a href=&quot;http://nodeone.se/blogg/configuration-management-initiative&quot;&gt;read Greg&#039;s announcement blog post&lt;/a&gt;, or better yet, &lt;a href=&quot;https://groups.drupal.org/node/134569&quot;&gt;participate in the design discussions&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
