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

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

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

What is Configuration? 4 // Configuration Management Basics Training

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

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

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

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

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

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

Configuration Manager 11 // Configuration Management Basics Training

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

View Differences 13 // Configuration Management Basics Training

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

Configuration Split 15 // Configuration Management Basics Training

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

Complete Split 17 // Configuration Management Basics Training

Conditional Split 18 // Configuration Management Basics Training

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

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

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

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

Configuration Read-only 23 // Configuration Management Basics Training

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

Config Ignore 25 // Configuration Management Basics Training

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

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