Configuration Management & Config Split Basics Training

A presentation at Drupal GovCon in September 2020 in by John Picozzi

Slide 1

Slide 1

BASICS TRAINING Configuration Management September 23rd, 2020 Presented by John E. Picozzi 1 // Configuration Management Basics Training

Slide 2

Slide 2

John E. Picozzi Account Manager 401-228-7660 [email protected] oomph.is/jpicozzi www.oomphinc.com Drupal Providence

Slide 3

Slide 3

WHAT IS CONFIGURATION? In Drupal, configuration is the collection of admin settings that determine how the site functions, as opposed to the content of the site. https://www.drupal.org/docs/8/configuration-management 3 // Configuration Management Basics Training

Slide 4

Slide 4

What is Configuration? 4 // Configuration Management Basics Training

Slide 5

Slide 5

CONFIGURATION VS. CONTENT Configuration Content Content types Nodes Taxonomy vocabulary Taxonomy terms Menus Menu links Blocks Block content Media types Media 5 // Configuration Management Basics Training

Slide 6

Slide 6

PANTHEON WORKFLOW Code Moves Up, Content Moves Down DEV https://pantheon.io/docs/pantheon-workflow/#code-moves-up-content-moves-down 6 // Configuration Management Basics Training TEST LIVE

Slide 7

Slide 7

OTHER TYPES OF CONFIGURATION

  • Fields (for entities) - Views - Display modes (for entities) - Image styles - Language settings - System settings - User roles - Module settings 7 // Configuration Management Basics Training

Slide 8

Slide 8

Where is Configuration Stored? 8 // Configuration Management Basics Training

Slide 9

Slide 9

CONFIGURATION Configuration Storage: Database ● Active configuration ● Stored in a relational database ● Changes applied immediately ● Benefits: ○ Performance ○ Security 9 // Configuration Management Basics Training

Slide 10

Slide 10

CONFIGURATION Configuration Storage: Filesystem ● Staged configuration ● Stored on the filesystem as YAML files ● Changes applied by export or import ● Benefits: ○ Portability ○ Security 10 // Configuration Management Basics Training

Slide 11

Slide 11

Configuration Manager 11 // Configuration Management Basics Training

Slide 12

Slide 12

CONFIGURATION MANAGER Configuration Manager ● Core module ● Import and export a single set of configuration to the filesystem ● ○ User Interface ○ Drush Install configuration from modules, profiles and themes ○ Required config ○ Optional config 12 // Configuration Management Basics Training

Slide 13

Slide 13

View Differences 13 // Configuration Management Basics Training

Slide 14

Slide 14

CONFIGURATION MANAGER Configuration Manager: Workflow The Configuration Management module offers a linear workflow where each environment shares the same set of configuration. LOCAL 14 // Configuration Management Basics Training DEV STAGE PROD

Slide 15

Slide 15

Configuration Split 15 // Configuration Management Basics Training

Slide 16

Slide 16

CONFIGURATION SPLIT Configuration Split ● Contributed module ● Import and export multiple sets (splits) of configuration to the filesystem ○ User Interface ○ Drush ● Enable/disable modules or themes for different environments ● Store different configuration values for different environments ○ Complete Split / Blacklist ○ Conditional Split / Graylist 16 // Configuration Management Basics Training

Slide 17

Slide 17

Complete Split 17 // Configuration Management Basics Training

Slide 18

Slide 18

Conditional Split 18 // Configuration Management Basics Training

Slide 19

Slide 19

CONFIGURATION SPLIT Configuration Split: Environment Workflow Creating configuration splits by environment allows developers to group sets of configuration that differ per environment (e.g. dev, test, prod). LOCAL 19 // Configuration Management Basics Training DEV STAGE PROD

Slide 20

Slide 20

CONFIGURATION SPLIT Configuration Split: Feature Workflow Creating configuration splits by features allows developers to turn individual features (e.g. modules) on and off no matter the context the site is running in. DEVEL 20 // Configuration Management Basics Training FASTLY SOLR REDIS

Slide 21

Slide 21

COMPARISON OF CONFIG DIRECTORIES Environment Splits 21 // Configuration Management Basics Training Feature Splits

Slide 22

Slide 22

COMPARISON OF SETTINGS FILES Environment Splits Feature Splits Note: Each config split is turned OFF by default, enabling splits are cleaner in settings.php 22 // Configuration Management Basics Training

Slide 23

Slide 23

Configuration Read-only 23 // Configuration Management Basics Training

Slide 24

Slide 24

CONFIGURATION READ-ONLY Configuration Read-only ● Contributed module ● Prevents administrators from editing active configuration through the User Interface ● Module can be enabled per environment with Configuration Split ● Warning: Have a solid continuous integration pipeline and testing procedures in place before enabling in a production environment. 24 // Configuration Management Basics Training

Slide 25

Slide 25

Config Ignore 25 // Configuration Management Basics Training

Slide 26

Slide 26

CONFIG IGNORE Config Ignore ● Contributed module ● Allows for defined config to be ignored by import and export ● Module can be enabled per environment with Configuration Split ● Compatibility with Config Read-only: You can use the Config Ignore Read-only module to automatically whitelist configuration forms that are ignored. 26 // Configuration Management Basics Training

Slide 27

Slide 27

If you have any questions feel free to contact us. /in/johnpicozzi @johnpicozzi John E. Picozzi Account Manager 401-228-7660 [email protected] oomph.is/jpicozzi www.oomphinc.com johnpicozzi