74

Drupal 8 CMI on a Managed Workflow

Embed Size (px)

Citation preview

Page 1: Drupal 8 CMI on a Managed Workflow
Page 2: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

This session is brought to you by Drupalcon LA & the Developers of the Drupal 8 CMS

Drupal 8 CMI on a Managed Workflow

Presented in Technicolor by

Matt [email protected]

Page 3: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Page 4: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

In the beginning….

Page 5: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration

● Content Types● Image Styles● Fields● Views● Settings

● Nodes● Users● Comments● Menu Items● Taxonomy Terms

Content

Page 6: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Page 7: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Problem Is That Drupal Doesn’t Care

Page 8: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The World Until Yesterday

hook_update_n() features.module

Page 9: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Sins of the Father

● Features Module is not intended to be the solution for storing your Drupal configuration in code.

● Status as a contrib project limited its ability to be a fully integrated solution for all ones Drupal development needs.

● Variety of technical limitations around support for unique identifiers, ability to deal with state, constantly changing data structures, less than comprehensive support for contrib.

Page 10: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

“Today is a good day to start putting all of our config in code.”

\

– Greg Dunlap (rumoured) in March 2011

Page 11: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drupal 8 CMI: Maximizing P.I.E.

● Proudly Invented Elsewhere (P.I.E.)○ Use what’s already implemented, tested, familiar○ We’re not any smarter than most people who

have worked on the problem before

● Pre-Symfony P.I.E.○ No custom format and parser (unlike .info files)○ Initially chose XML

■ Built-in parsing support■ Consistent UTF-8 for i18n support■ Support for comments

● Post-Symfony P.I.E.○ Switched to Symfony YAML parser○ Considered Config library, but no GUI support

Page 12: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Now it is YAML Time!

Page 13: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

admin/config/system/site-information

Page 14: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

system.site.yml

Page 15: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

node.type.blog.yml + field.instance.node.blog.body.yml

Page 16: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Page 17: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Page 18: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Using Configuration Management to Import a Single Config Value

(featuring the Drupal UI)

Page 19: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Single export)admin/config/development/configuration/single/export

Dev Site

Page 20: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

YML Filesystem.site.yml

Page 21: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Live Site

Configuration Manager Module (Single import)admin/config/development/configuration/single/import

Page 22: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Import confirm)admin/config/development/configuration/single/import

Live Site

Page 23: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Import finished)admin/config/development/configuration/single/import

Live Site

Page 24: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Using Configuration Management to Import All Config Values

(featuring the Drupal UI)

Page 25: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Export)admin/config/development/configuration/full/export

Dev Site

Page 26: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Downloaded Fileconfig.tar.gz

Page 27: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Import)admin/config/development/configuration/full/import

Live Site

Page 28: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Synchronize)admin/config/development/configuration

Live Site

Page 29: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (View differences)admin/config/development/configuration

Live Site

Page 30: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Synchronize)admin/config/development/configuration

Live Site

Page 31: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Import all)admin/config/development/configuration

Live Site

Page 32: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Manager Module (Import finished)admin/config/development/configuration

Live Site

Page 33: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Using Configuration Management to Import a Single Config Value

(featuring the Drush CLI)

Page 34: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drush Configuration Management (Single export)drush config-get [config-name]

Dev Site

Page 35: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

A String(but you can also do a YAML)

‘My Even Greater Drupal 8 Site’

Page 36: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drush Configuration Management (Single import)drush config-set [config-name]

Live Site

Page 37: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Using Configuration Management to Import All Config Values(featuring the Drush CLI)

Page 38: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drush Configuration Management (Full export)drush config-export

Dev Site

Page 39: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Git commitf07af82bcd69253eb214bd2dfaf490999971ca6f

Page 40: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drush Configuration Management (Full import)drush config-import

Live Site

Page 41: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Where is the Configuration Management Magic?

Page 42: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Magic is in the Workflow

Page 43: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Magic is in the Workflow

Page 44: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Magic is in the Workflow

Page 45: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Magic is in the Workflow

Page 46: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Magic is in the Workflow

Page 47: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Magic is in the Workflow

Page 48: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

So Let’s Try a Live Demowith Drupal 8 Beta 10

(try it yourself at https://pantheon.io/d8)

Page 49: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Hopefully the Demo was Cool(if not blame barbarian invasions, the reliance on slave and mercenary labor, militaristic overexpansion, the rise of the influence of Byzantium, and, of course, the conference wifi)

Page 50: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Let’s Talk about Developingwith Configuration Management

Page 51: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Configuration API

This is how you get a configuration value

Page 52: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Configuration API

This is how you set a configuration value

Page 53: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The State API

This is how you get and set configuration values that are only useful in a particular environment

Page 54: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Overriding Configuration

This is how you override configuration values using settings.php

Page 55: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Handling Different Languages

This is how Configuration Management handles configuration values in different languages

Page 56: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

The Limitations of Drupal 8Configuration Management

Page 57: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Dealing with Configuration Over Multiple Git Branches & Developers is Hard!

And it requires typing lots and lots of different Drush and Git commands

Page 58: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Check out Drush’s config-merge Command

Grab Drush 7 RC2 and get started today!

Page 59: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drupal 8’s Configuration Management is Designed to Manage a Full Site’s Config

Sharing configuration across multiple sites is not a support used case

Page 60: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Luckily there is Features for Drupal 8!

Page 61: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Learn More About it on Thursday!

ADD MIKES FACE

Page 62: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Drupal 8’s Configuration Management is Only for Drupal 8

And Drupal 8 is not quite ready for the kind of day to day development work we need to do

Page 63: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

There is a Generally Functional Version for Drupal 7

https://www.drupal.org/project/configuration

Page 64: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Management Doesn’t Automatically Track Changes in Git

And that is an important use case for you due to compliance issues or speed of development

Page 65: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

There is a Drupal 8 Module for that!

https://www.drupal.org/project/config_tools

Page 66: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Management Doesn’t Prevent You From Changing Config in Live

And it is important to you that all configuration be in version control and be tested before going live

Page 67: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

There is a Drupal 8 Module for that!

https://www.drupal.org/project/config_readonly

Page 68: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Management Makes it Hard to Manage All the Supplied Configuration

And you want to make sure you are using the latest and greatest configuration without trouble

Page 69: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

There is a Drupal 8 Module for that!

https://www.drupal.org/project/config_update

Page 70: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Configuration Management Makes it Hard to Export Out Specific Module Configuration

And you want to make sure your module has the most up to date packaged configuration

Page 71: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

There is a Drupal 8 Module for that!

https://www.drupal.org/project/config_devel

Page 72: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Let’s Talk Big PictureConfiguration Management Will Change How

Most of You Drupal on a Daily Basis

Page 73: Drupal 8 CMI on a Managed Workflow

PANTHEON PANTHEON.IO

Thank You for Your Attention

Does anyone have any questions?

Page 74: Drupal 8 CMI on a Managed Workflow

WHAT DID YOU THINK?EVAULATE THIS SESSION - LOSANGELES2015.DRUPAL.ORG/SCHEDULE

THANK YOU!