SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
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 Cheney
matt@pantheon.io
PANTHEON PANTHEON.IO
PANTHEON PANTHEON.IO
In the beginning….
PANTHEON PANTHEON.IO
Configuration
● Content Types
● Image Styles
● Fields
● Views
● Settings
● Nodes
● Users
● Comments
● Menu Items
● Taxonomy Terms
Content
PANTHEON PANTHEON.IO
PANTHEON PANTHEON.IO
The Problem Is That Drupal Doesn’t Care
PANTHEON PANTHEON.IO
The World Until Yesterday
hook_update_n() features.module
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.
PANTHEON PANTHEON.IO
“Today is a good day to start putting
all of our config in code.”

– Greg Dunlap (rumoured) in March 2011
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
PANTHEON PANTHEON.IO
Now it is YAML Time!
PANTHEON PANTHEON.IO
admin/config/system/site-information
PANTHEON PANTHEON.IO
system.site.yml
PANTHEON PANTHEON.IO
node.type.blog.yml + field.instance.node.blog.body.yml
PANTHEON PANTHEON.IO
PANTHEON PANTHEON.IO
PANTHEON PANTHEON.IO
Using Configuration Management
to Import a Single Config Value
(featuring the Drupal UI)
PANTHEON PANTHEON.IO
Configuration Manager Module (Single export)
admin/config/development/configuration/single/export
Dev Site
PANTHEON PANTHEON.IO
YML File
system.site.yml
PANTHEON PANTHEON.IO
Live Site
Configuration Manager Module (Single import)
admin/config/development/configuration/single/import
PANTHEON PANTHEON.IO
Configuration Manager Module (Import confirm)
admin/config/development/configuration/single/import
Live Site
PANTHEON PANTHEON.IO
Configuration Manager Module (Import finished)
admin/config/development/configuration/single/import
Live Site
PANTHEON PANTHEON.IO
Using Configuration Management
to Import All Config Values
(featuring the Drupal UI)
PANTHEON PANTHEON.IO
Configuration Manager Module (Export)
admin/config/development/configuration/full/export
Dev Site
PANTHEON PANTHEON.IO
Downloaded File
config.tar.gz
PANTHEON PANTHEON.IO
Configuration Manager Module (Import)
admin/config/development/configuration/full/import
Live Site
PANTHEON PANTHEON.IO
Configuration Manager Module (Synchronize)
admin/config/development/configuration
Live Site
PANTHEON PANTHEON.IO
Configuration Manager Module (View differences)
admin/config/development/configuration
Live Site
PANTHEON PANTHEON.IO
Configuration Manager Module (Synchronize)
admin/config/development/configuration
Live Site
PANTHEON PANTHEON.IO
Configuration Manager Module (Import all)
admin/config/development/configuration
Live Site
PANTHEON PANTHEON.IO
Configuration Manager Module (Import finished)
admin/config/development/configuration
Live Site
PANTHEON PANTHEON.IO
Using Configuration Management
to Import a Single Config Value
(featuring the Drush CLI)
PANTHEON PANTHEON.IO
Drush Configuration Management (Single export)
drush config-get [config-name]
Dev Site
PANTHEON PANTHEON.IO
A String
(but you can also do a YAML)
‘My Even Greater Drupal 8 Site’
PANTHEON PANTHEON.IO
Drush Configuration Management (Single import)
drush config-set [config-name]
Live Site
PANTHEON PANTHEON.IO
Using Configuration Management
to Import All Config Values
(featuring the Drush CLI)
PANTHEON PANTHEON.IO
Drush Configuration Management (Full export)
drush config-export
Dev Site
PANTHEON PANTHEON.IO
Git commit
f07af82bcd69253eb214bd2dfaf490999971ca6f
PANTHEON PANTHEON.IO
Drush Configuration Management (Full import)
drush config-import
Live Site
PANTHEON PANTHEON.IO
Where is the Configuration
Management Magic?
PANTHEON PANTHEON.IO
The Magic is in the Workflow
PANTHEON PANTHEON.IO
The Magic is in the Workflow
PANTHEON PANTHEON.IO
The Magic is in the Workflow
PANTHEON PANTHEON.IO
The Magic is in the Workflow
PANTHEON PANTHEON.IO
The Magic is in the Workflow
PANTHEON PANTHEON.IO
The Magic is in the Workflow
PANTHEON PANTHEON.IO
So Let’s Try a Live Demo
with Drupal 8 Beta 10
(try it yourself at https://pantheon.io/d8)
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)
PANTHEON PANTHEON.IO
Let’s Talk about Developing
with Configuration Management
PANTHEON PANTHEON.IO
The Configuration API
This is how you get a configuration value
PANTHEON PANTHEON.IO
The Configuration API
This is how you set a configuration value
PANTHEON PANTHEON.IO
The State API
This is how you get and set configuration values
that are only useful in a particular environment
PANTHEON PANTHEON.IO
Overriding Configuration
This is how you override configuration values using
settings.php
PANTHEON PANTHEON.IO
Handling Different Languages
This is how Configuration Management handles
configuration values in different languages
PANTHEON PANTHEON.IO
The Limitations of Drupal 8
Configuration Management
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
PANTHEON PANTHEON.IO
Check out Drush’s config-merge Command
Grab Drush 7 RC2 and get started today!
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
PANTHEON PANTHEON.IO
Luckily there is Features for Drupal 8!
PANTHEON PANTHEON.IO
Learn More About it on Thursday!
ADD MIKES FACE
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
PANTHEON PANTHEON.IO
There is a Generally Functional
Version for Drupal 7
https://www.drupal.org/project/configuration
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
PANTHEON PANTHEON.IO
There is a Drupal 8 Module for that!
https://www.drupal.org/project/config_tools
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
PANTHEON PANTHEON.IO
There is a Drupal 8 Module for that!
https://www.drupal.org/project/config_readonly
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
PANTHEON PANTHEON.IO
There is a Drupal 8 Module for that!
https://www.drupal.org/project/config_update
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
PANTHEON PANTHEON.IO
There is a Drupal 8 Module for that!
https://www.drupal.org/project/config_devel
PANTHEON PANTHEON.IO
Let’s Talk Big Picture
Configuration Management Will Change How
Most of You Drupal on a Daily Basis
PANTHEON PANTHEON.IO
Thank You for Your Attention
Does anyone have any questions?
WHAT DID YOU THINK?
EVAULATE THIS SESSION - LOSANGELES2015.DRUPAL.ORG/SCHEDULE
THANK YOU!

Weitere ähnliche Inhalte

Was ist angesagt?

Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3
Drupalcon Paris
 
APACHE
APACHEAPACHE
APACHE
ARJUN
 

Was ist angesagt? (20)

Gestione della configurazione in Drupal 8
Gestione della configurazione in Drupal 8Gestione della configurazione in Drupal 8
Gestione della configurazione in Drupal 8
 
Drupal 8 - Corso frontend development
Drupal 8 - Corso frontend developmentDrupal 8 - Corso frontend development
Drupal 8 - Corso frontend development
 
Taking your module from Drupal 6 to Drupal 7
Taking your module from Drupal 6 to Drupal 7Taking your module from Drupal 6 to Drupal 7
Taking your module from Drupal 6 to Drupal 7
 
Introduction to Module Development (Drupal 7)
Introduction to Module Development (Drupal 7)Introduction to Module Development (Drupal 7)
Introduction to Module Development (Drupal 7)
 
Convert modules from 6.x to 7.x
Convert modules from 6.x to 7.xConvert modules from 6.x to 7.x
Convert modules from 6.x to 7.x
 
Configuration Deployment in Drupal 8
Configuration Deployment in Drupal 8Configuration Deployment in Drupal 8
Configuration Deployment in Drupal 8
 
Introduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, TerminologiesIntroduction to Drupal - Installation, Anatomy, Terminologies
Introduction to Drupal - Installation, Anatomy, Terminologies
 
Drupal 8 Configuration Management
Drupal 8 Configuration ManagementDrupal 8 Configuration Management
Drupal 8 Configuration Management
 
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLAImproving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
 
Changelog
ChangelogChangelog
Changelog
 
Migrate in Drupal 8
Migrate in Drupal 8Migrate in Drupal 8
Migrate in Drupal 8
 
CHANGELOG.txt
CHANGELOG.txtCHANGELOG.txt
CHANGELOG.txt
 
CakePHP
CakePHPCakePHP
CakePHP
 
Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3Staging Drupal 8 31 09 1 3
Staging Drupal 8 31 09 1 3
 
APACHE
APACHEAPACHE
APACHE
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
 
11 tools for your PHP devops stack
11 tools for your PHP devops stack11 tools for your PHP devops stack
11 tools for your PHP devops stack
 
13th Sep, Drupal 7 advanced training by TCS
13th Sep, Drupal 7 advanced training by TCS 13th Sep, Drupal 7 advanced training by TCS
13th Sep, Drupal 7 advanced training by TCS
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShell
 

Andere mochten auch

Andere mochten auch (9)

Drupal 8 update. February 2015 [Brisbane Drupal meetup]
Drupal 8 update. February 2015 [Brisbane Drupal meetup]Drupal 8 update. February 2015 [Brisbane Drupal meetup]
Drupal 8 update. February 2015 [Brisbane Drupal meetup]
 
Drupal Features Module by New Tech Fusion presentation
Drupal Features Module by New Tech Fusion presentationDrupal Features Module by New Tech Fusion presentation
Drupal Features Module by New Tech Fusion presentation
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
Agora cms - Comment Drupal Commerce innove avec Drupal 8
Agora cms - Comment Drupal Commerce innove avec Drupal 8Agora cms - Comment Drupal Commerce innove avec Drupal 8
Agora cms - Comment Drupal Commerce innove avec Drupal 8
 
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open AtriumRemote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
 
Cmi en drupal 8
Cmi en drupal 8Cmi en drupal 8
Cmi en drupal 8
 
What's New in Drupal 8: Entity Field API
What's New in Drupal 8: Entity Field APIWhat's New in Drupal 8: Entity Field API
What's New in Drupal 8: Entity Field API
 
Emailing : comment se constituer une base de données qualifiée ?
Emailing : comment se constituer une base de données qualifiée ?Emailing : comment se constituer une base de données qualifiée ?
Emailing : comment se constituer une base de données qualifiée ?
 
Etablir une stratégie d'emailing efficace
Etablir une stratégie d'emailing efficaceEtablir une stratégie d'emailing efficace
Etablir une stratégie d'emailing efficace
 

Ähnlich wie Drupal 8 CMI on a Managed Workflow

How to create a basic website with Python on Django
How to create a basic website with Python on DjangoHow to create a basic website with Python on Django
How to create a basic website with Python on Django
Armağan Ersöz
 
Automating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShellAutomating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShell
Toni Frankola
 
Open source Platforming for Pentaho Based BI Solutions
Open source Platforming for Pentaho Based BI SolutionsOpen source Platforming for Pentaho Based BI Solutions
Open source Platforming for Pentaho Based BI Solutions
InfoAxon Technologies Limited
 
Django Article V0
Django Article V0Django Article V0
Django Article V0
Udi Bauman
 

Ähnlich wie Drupal 8 CMI on a Managed Workflow (20)

Django
DjangoDjango
Django
 
Running a Plone product on Substance D
Running a Plone product on Substance DRunning a Plone product on Substance D
Running a Plone product on Substance D
 
Django
Django Django
Django
 
Django on Jython, PyCon 2009
Django on Jython, PyCon 2009Django on Jython, PyCon 2009
Django on Jython, PyCon 2009
 
Introduction to python scrapping
Introduction to python scrappingIntroduction to python scrapping
Introduction to python scrapping
 
vvvvReadme
vvvvReadmevvvvReadme
vvvvReadme
 
Plomino
Plomino Plomino
Plomino
 
How to create a basic website with Python on Django
How to create a basic website with Python on DjangoHow to create a basic website with Python on Django
How to create a basic website with Python on Django
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Django by rj
Django by rjDjango by rj
Django by rj
 
Python Web Development Tutorial | Web Development Using Django | Edureka
Python Web Development Tutorial | Web Development Using Django | EdurekaPython Web Development Tutorial | Web Development Using Django | Edureka
Python Web Development Tutorial | Web Development Using Django | Edureka
 
TTW FTW: Plone as the new wordpress
TTW FTW: Plone as the new wordpressTTW FTW: Plone as the new wordpress
TTW FTW: Plone as the new wordpress
 
Marek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with BuildoutMarek Kuziel - Deploying Django with Buildout
Marek Kuziel - Deploying Django with Buildout
 
Panels - Drupal Gov Con 2016
Panels - Drupal Gov Con 2016Panels - Drupal Gov Con 2016
Panels - Drupal Gov Con 2016
 
A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...
 
Automating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShellAutomating SharePoint 2010 administration tasks with PowerShell
Automating SharePoint 2010 administration tasks with PowerShell
 
Old Dogs and New Tricks
Old Dogs and New TricksOld Dogs and New Tricks
Old Dogs and New Tricks
 
Open source Platforming for Pentaho Based BI Solutions
Open source Platforming for Pentaho Based BI SolutionsOpen source Platforming for Pentaho Based BI Solutions
Open source Platforming for Pentaho Based BI Solutions
 
Django Article V0
Django Article V0Django Article V0
Django Article V0
 
PuppetConf 2016: Deploying Multi-Tier Windows Applications with Application O...
PuppetConf 2016: Deploying Multi-Tier Windows Applications with Application O...PuppetConf 2016: Deploying Multi-Tier Windows Applications with Application O...
PuppetConf 2016: Deploying Multi-Tier Windows Applications with Application O...
 

Mehr von Pantheon

Testing Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade WorkflowTesting Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade Workflow
Pantheon
 

Mehr von Pantheon (20)

Drupal Migrations in 2018
Drupal Migrations in 2018Drupal Migrations in 2018
Drupal Migrations in 2018
 
Architecting Million Dollar Projects
Architecting Million Dollar ProjectsArchitecting Million Dollar Projects
Architecting Million Dollar Projects
 
Streamlined Drupal 8: Site Building Strategies for Tight Deadlines
Streamlined Drupal 8: Site Building Strategies for Tight DeadlinesStreamlined Drupal 8: Site Building Strategies for Tight Deadlines
Streamlined Drupal 8: Site Building Strategies for Tight Deadlines
 
Getting Started with Drupal
Getting Started with DrupalGetting Started with Drupal
Getting Started with Drupal
 
Defense in Depth: Lessons Learned Securing 200,000 Sites
Defense in Depth: Lessons Learned Securing 200,000 SitesDefense in Depth: Lessons Learned Securing 200,000 Sites
Defense in Depth: Lessons Learned Securing 200,000 Sites
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon Vienna
 
Sub-Second Pageloads: Beat the Speed of Light with Pantheon & Fastly
Sub-Second Pageloads: Beat the Speed of Light with Pantheon & FastlySub-Second Pageloads: Beat the Speed of Light with Pantheon & Fastly
Sub-Second Pageloads: Beat the Speed of Light with Pantheon & Fastly
 
Building a Network of 195 Drupal 8 Sites
Building a Network of 195 Drupal 8 Sites Building a Network of 195 Drupal 8 Sites
Building a Network of 195 Drupal 8 Sites
 
Hacking Your Agency Workflow: Treating Your Process Like A Product
Hacking Your Agency Workflow: Treating Your Process Like A ProductHacking Your Agency Workflow: Treating Your Process Like A Product
Hacking Your Agency Workflow: Treating Your Process Like A Product
 
Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8
 
Development Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP LibrariesDevelopment Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP Libraries
 
WordPress REST API: Expert Advice & Practical Use Cases
WordPress REST API: Expert Advice & Practical Use CasesWordPress REST API: Expert Advice & Practical Use Cases
WordPress REST API: Expert Advice & Practical Use Cases
 
Continuous Integration Is for Teams: Moving past buzzword driven development
Continuous Integration Is for Teams: Moving past buzzword driven development Continuous Integration Is for Teams: Moving past buzzword driven development
Continuous Integration Is for Teams: Moving past buzzword driven development
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
 
Testing Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade WorkflowTesting Your Code as Part of an Industrial Grade Workflow
Testing Your Code as Part of an Industrial Grade Workflow
 
Test Coverage for Your WP REST API Project
Test Coverage for Your WP REST API ProjectTest Coverage for Your WP REST API Project
Test Coverage for Your WP REST API Project
 
Drupal 8 and Pantheon
Drupal 8 and PantheonDrupal 8 and Pantheon
Drupal 8 and Pantheon
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your Clients
 
Drupal Performance
Drupal Performance Drupal Performance
Drupal Performance
 
WP or Drupal (or both): A Framework for Client CMS Decisions
WP or Drupal (or both): A Framework for Client CMS Decisions WP or Drupal (or both): A Framework for Client CMS Decisions
WP or Drupal (or both): A Framework for Client CMS Decisions
 

Drupal 8 CMI on a Managed Workflow