SlideShare a Scribd company logo
Nick Hepner
nick@SimpleInformation.com
@NickHepner
Managing
Deployments with
Git and
Install Profiles
Managing Code, Content, and
Configurations Across Multiple
Environments
…Part Deux
Nick Hepner
•Building web sites since 1998
Building Drupal sites since 2006
“Large Scale” Drupal since 2009
•Drupal Specialist
Data Migrations
Enterprise Scalability
Configuration Management
•Director Unallocated Space
Why am I here?
•Standard Deployment Model
•Code, Content, Configuration and their
workflows
•Using Install Profiles for configuration
management
•Deploying your code with Git
Standard Deployment Model
Content Staging
Developme
nt
Staging Producti
on
Local
Configuration
•Consists of Drupal admin and module
settings.
•Exportable site structures
Content Types
Contexts
Image Styles
•User Roles and Permissions
•Configuration workflow begins on the
development side of the model.
New modules installed
Existing modules configured
Configuration Workflow
Configuration
Developme
nt
Staging Producti
on
Local
Content
•User generated content
•User registration and accounts
•Content workflow begins on the production
server
User registrations
User generated content
Nodes
Entities
Files and uploads
Content management workflows.
Commerce
General site and user administration
Configuration Workflow
Developme
nt
Staging Producti
on
Configuration
Local
Content
Conflicts
•Servers no longer syncronized
Developers begin working and testing on
different setups
“Where is the most recent copy of the
database?”
•Data is at risk to be overwritten
•Forces many manual, time consuming
updates
•Most recent/accurate data set difficult to
keep track of
Code
•Code can be versioned for easy deployment and
management (Git, SVN)
•Does not conflict with database changes.
•Does not include database stored code.
•Follows same workflow as configuration –
originates from development side of model.
Exportables
•Building web sites since 1998
Building Drupal sites since 2006
“Large Scale” Drupal since 2009
•Drupal Specialist
Data Migrations
Enterprise Scalability
Configuration Management
•Director Unallocated Space
•World famous drinking buddy.
Install Profiles
•Used to package re-usable functionality
•Preconfigured Drupal distributions
Commerce Kickstart
OpenAtrium
OpenPublish
OpenPublic
Commons
•Provides convenient wrapper to store global
setup and configuration tasks.
Exportables
•Use Features and Ctools to export your configurations
into code.
This removes configurations from the
configurations workflow, and places them into the
code workflow with no database conflicts.
Content types and fields
Views
Contexts
Deltas/Panels
•The more things you can export now, the more time you will
save later.
Profile Setup
Use your .info file to set any modules or features
as requirements.
This will automatically enable them, which is useful for
especially useful for features.
In the .profile file, use the
hook_form_install_configure_form_alter() to
change the profile setup form if necessary.
The magic happens in the .install file!!
Profile Install Files
Use hook_install() can be used to set up initial configurations. This will run the
FIRST time the site is installed.
Use hook_update_N() to provide any later configurations.
Don't overwrite scripts in previous code – create an update hook with a
higher version number.
Code
De
v
Staging
Producti
on
Local
Branches Tags
Deployment
When deploying an update, use drush updb to run your update hooks
Can automate deploying git pushes using Jenkins
DevelGenerate
Use devel generate's functions to automate test data.
devel_generate_word()
devel_create_greeking()
devel_create_para()
Should be used to replace need for actual data.
Great for PII, PHI and high security sites.
Can still facilitate distributed develpoment.
Advantages
Very easy to test deployments to any environment.
Site rebuilds exactly the same way, every time, for all developers
Can manage configuration changes in Git.
No more question about the most recent data set.
Easier to project manage
The Future
Drupal 8 will use YAML to manage configurations. Configurations will be exported into
A lot of “one-touch” deployment features and setup.
D7 and D6 sites will still require maintenance.
Questions?
@NickHepner
nick@simpleinformation.com

More Related Content

What's hot (19)

PPTX
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
SPS Paris
 
PDF
From SQL to MongoDB
Nuxeo
 
PPTX
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
Evolve The Adobe Digital Marketing Community
 
PDF
Go Serverless with Java and Azure Functions
CodeOps Technologies LLP
 
PPTX
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Jeff Chu
 
PPTX
Blazor - the successor of angular/react/vue?
Robert Szachnowski
 
PDF
Introduction to Infrastructure as Code & Automation / Introduction to Chef
All Things Open
 
PPTX
I5 - Bring yourself up to speed with power shell
SPS Paris
 
PDF
DevOps for Databricks
Databricks
 
PPTX
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CodeOps Technologies LLP
 
PPTX
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
Sencha
 
PPTX
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup
 
PDF
Azure DevOps Multistage YAML Pipelines – Top 10 Features
Marc Müller
 
PPTX
Introduction to Desired State Configuration (DSC)
Jeffery Hicks
 
PDF
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
SPS Paris
 
PPTX
Serverless in Azure with Functions
Christos Matskas
 
PPTX
Powershell For Developers
Ido Flatow
 
PDF
Release 8.1 - Breakfast Paris
Nuxeo
 
PPTX
Going Serverless with Azure Functions
Christos Matskas
 
I3 - Running SharePoint 2016 in Azure the do's and dont's - Jasjit Chopra
SPS Paris
 
From SQL to MongoDB
Nuxeo
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
Evolve The Adobe Digital Marketing Community
 
Go Serverless with Java and Azure Functions
CodeOps Technologies LLP
 
Innovations of .NET and Azure (Recaps of Build 2017 selected sessions)
Jeff Chu
 
Blazor - the successor of angular/react/vue?
Robert Szachnowski
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
All Things Open
 
I5 - Bring yourself up to speed with power shell
SPS Paris
 
DevOps for Databricks
Databricks
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CodeOps Technologies LLP
 
SenchaCon 2016: A Data-Driven Application for the Embedded World - Jean-Phili...
Sencha
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup
 
Azure DevOps Multistage YAML Pipelines – Top 10 Features
Marc Müller
 
Introduction to Desired State Configuration (DSC)
Jeffery Hicks
 
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
SPS Paris
 
Serverless in Azure with Functions
Christos Matskas
 
Powershell For Developers
Ido Flatow
 
Release 8.1 - Breakfast Paris
Nuxeo
 
Going Serverless with Azure Functions
Christos Matskas
 

Similar to Manage Deployments with Install Profiles and Git (20)

PDF
Drupal 8 Configuration Management with Features
Nuvole
 
PDF
DDAY2014 - Features per Drupal 8
DrupalDay
 
PDF
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
 
ODP
Features & Installation Profiles
David Watson
 
PDF
Advanced Configuration Management with Config Split et al.
Nuvole
 
PPTX
Drupal 7 Deployment Using Features Modules
Pankaj Chauhan
 
PDF
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
PPTX
Drupal 8 deploying
Andrew Siz
 
PDF
Off the Treadmill: Building a Drupal Platform for Your Organization
Rick Vugteveen
 
PDF
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Suzanne Dergacheva
 
PDF
Drupal for Project Managers, Part 3: Launching
Acquia
 
PDF
Drupal 8 DevOps . Profile and SQL flows.
Andrii Podanenko
 
ZIP
Staging and Deployment
heyrocker
 
PDF
Drush Deployment Manager: Deployment Made Easy
Gerald Villorente
 
PPT
Deployment Strategies: Managing Code, Content, and Configurations
nyccamp
 
PDF
Staging Drupal 8 31 09 1 3
Drupalcon Paris
 
PDF
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
Development Seed
 
PDF
Yet Another Drupal Development/Deployment Presentation
digital006
 
PDF
Getting Into Drupal 8 Configuration
Philip Norton
 
PDF
Drupal 8 Configuration Management for you and your team
Luc Bézier
 
Drupal 8 Configuration Management with Features
Nuvole
 
DDAY2014 - Features per Drupal 8
DrupalDay
 
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
 
Features & Installation Profiles
David Watson
 
Advanced Configuration Management with Config Split et al.
Nuvole
 
Drupal 7 Deployment Using Features Modules
Pankaj Chauhan
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
Drupal 8 deploying
Andrew Siz
 
Off the Treadmill: Building a Drupal Platform for Your Organization
Rick Vugteveen
 
Creating a Reusable Drupal Website for Higher Education - at USG Tech Day
Suzanne Dergacheva
 
Drupal for Project Managers, Part 3: Launching
Acquia
 
Drupal 8 DevOps . Profile and SQL flows.
Andrii Podanenko
 
Staging and Deployment
heyrocker
 
Drush Deployment Manager: Deployment Made Easy
Gerald Villorente
 
Deployment Strategies: Managing Code, Content, and Configurations
nyccamp
 
Staging Drupal 8 31 09 1 3
Drupalcon Paris
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
Development Seed
 
Yet Another Drupal Development/Deployment Presentation
digital006
 
Getting Into Drupal 8 Configuration
Philip Norton
 
Drupal 8 Configuration Management for you and your team
Luc Bézier
 
Ad

Recently uploaded (20)

PDF
Complete Network Protection with Real-Time Security
L4RGINDIA
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Complete Network Protection with Real-Time Security
L4RGINDIA
 
July Patch Tuesday
Ivanti
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Ad

Manage Deployments with Install Profiles and Git

  • 2. Managing Deployments with Git and Install Profiles Managing Code, Content, and Configurations Across Multiple Environments …Part Deux
  • 3. Nick Hepner •Building web sites since 1998 Building Drupal sites since 2006 “Large Scale” Drupal since 2009 •Drupal Specialist Data Migrations Enterprise Scalability Configuration Management •Director Unallocated Space
  • 4. Why am I here? •Standard Deployment Model •Code, Content, Configuration and their workflows •Using Install Profiles for configuration management •Deploying your code with Git
  • 5. Standard Deployment Model Content Staging Developme nt Staging Producti on Local
  • 6. Configuration •Consists of Drupal admin and module settings. •Exportable site structures Content Types Contexts Image Styles •User Roles and Permissions •Configuration workflow begins on the development side of the model. New modules installed Existing modules configured
  • 8. Content •User generated content •User registration and accounts •Content workflow begins on the production server User registrations User generated content Nodes Entities Files and uploads Content management workflows. Commerce General site and user administration
  • 10. Conflicts •Servers no longer syncronized Developers begin working and testing on different setups “Where is the most recent copy of the database?” •Data is at risk to be overwritten •Forces many manual, time consuming updates •Most recent/accurate data set difficult to keep track of
  • 11. Code •Code can be versioned for easy deployment and management (Git, SVN) •Does not conflict with database changes. •Does not include database stored code. •Follows same workflow as configuration – originates from development side of model.
  • 12. Exportables •Building web sites since 1998 Building Drupal sites since 2006 “Large Scale” Drupal since 2009 •Drupal Specialist Data Migrations Enterprise Scalability Configuration Management •Director Unallocated Space •World famous drinking buddy.
  • 13. Install Profiles •Used to package re-usable functionality •Preconfigured Drupal distributions Commerce Kickstart OpenAtrium OpenPublish OpenPublic Commons •Provides convenient wrapper to store global setup and configuration tasks.
  • 14. Exportables •Use Features and Ctools to export your configurations into code. This removes configurations from the configurations workflow, and places them into the code workflow with no database conflicts. Content types and fields Views Contexts Deltas/Panels •The more things you can export now, the more time you will save later.
  • 15. Profile Setup Use your .info file to set any modules or features as requirements. This will automatically enable them, which is useful for especially useful for features. In the .profile file, use the hook_form_install_configure_form_alter() to change the profile setup form if necessary. The magic happens in the .install file!!
  • 16. Profile Install Files Use hook_install() can be used to set up initial configurations. This will run the FIRST time the site is installed. Use hook_update_N() to provide any later configurations. Don't overwrite scripts in previous code – create an update hook with a higher version number.
  • 18. Deployment When deploying an update, use drush updb to run your update hooks Can automate deploying git pushes using Jenkins
  • 19. DevelGenerate Use devel generate's functions to automate test data. devel_generate_word() devel_create_greeking() devel_create_para() Should be used to replace need for actual data. Great for PII, PHI and high security sites. Can still facilitate distributed develpoment.
  • 20. Advantages Very easy to test deployments to any environment. Site rebuilds exactly the same way, every time, for all developers Can manage configuration changes in Git. No more question about the most recent data set. Easier to project manage
  • 21. The Future Drupal 8 will use YAML to manage configurations. Configurations will be exported into A lot of “one-touch” deployment features and setup. D7 and D6 sites will still require maintenance.