SlideShare a Scribd company logo
Nick Hepner
nick@hepnermedia.com
         @NickHepner
Deployment Strategies:
    Managing Code, Content, and
    Configurations Across Multiple
                    Environments
                        Nick Hepner
Nick Hepner
•   Web Developer since 1998
•   Drupal since 2005
•   Enterprise Architect since 2008
•   Founding and active member Baltimore meetup
•   Likes: beer
•   Dislikes: PowerPoint Presentations
Introduction
•   Standard Deployment Model
•   Code, Content, Configuration and their workflows
•   Problems
•   Scalable Solutions for Drupal 6 & 7
Standard Deployment Model

Local   Development   Staging     Production




                                Content Staging
Static Cache


  Users                                          Apache Solr



                                                 Single Sign-On


Memcache
                                                  File Share


                                                  Development/
                                                  Deployment/
                                                  Monitoring/
                                                  Internal tools


   Write Cluster   Read Cluster

                                                 Code Repository
81 Servers


Development




              Staging




                        Production
Configuration
• Consists of Drupal admin and module settings and
  presets.
• Imagecache/image styles
• Configuration workflow begins on development
  server
  o   New modules installed
  o   Existing modules configured
  o   Content types, fields, and profile structures edited
  o   Database stored stylesheets, php code
Configuration Workflow

 Local          Development   Staging     Production




Configuration




                                        Content Staging
Content
• Content workflow begins on the production server
• User Content
  o   User registrations
  o   User generated content
  o   Files and uploads
  o   Social interactions (e.g. Private Msg, Statuses, etc.)
  o   Content management
  o   Site and user administration
• Officiated Content
  o News Articles
  o Press Releases
  o Internal Announcements
Content Workflow
                                                   User
                                                  Content
                                                  Content



  Local          Development        Staging           Production




 Configuration

                               Officiated
                                Content


                                              Content Staging
Conflicts
• Servers no longer synchronized
   o Developers begin developing on different setups

• Data often gets overwritten
• Most recent/accurate data set difficult to keep
  track of
• Dogs, Cats living together
Code
• Can be versioned for easy
  deployment/management (SVN, Git)
• Does not conflict with database changes
• Does not include database stored code
Deploying Code With
Versioning
• Deploy to development through “trunk”
• Create a tag for deployment to staging
• Either reject the tag and fix bugs, or promote it to
  production.
Code Workflow
                 Code Repository


            Trunk              Tags




  Local   Development         Staging   Production




   Code
                Rejected
Non-Starters
• Migrate – Intended to be used when moving a site
  from another framework, such as Wordpress or
  Joomla.
• Rsync - *nix command line tool for synchronizing
  files. Does not allow for proper staging.
Manual Configuration
Management
• Developer manually sets configuration options on
  all servers
• Fine for really small implementations
• More than one developer causes issues
Strategies:
Backup and Migrate
• Use backup and migrate module to create backup
  profile for content and for configuration
• Use versioning to move code
• Configuration must still be entered manually on
  development
• Takes some trial and error
Strategies:
Launch Manager
• Aegir – Seems to work well for launching initial site
  rollouts. Not so much for maintenance updates
• Hudson
   o Extensive initial configuration
   o Integrates with version control
   o Can script specific updates
Strategies:
The Three Pronged Attack
•   Typically for enterprise environments
•   Features
•   Content Publication
•   File Share
    o Mount files drive
    o Network-Attached Storage (NAS)
    o Content Delivery Networks (CDN)
The Three Prong Attack:
Features
• Extracts configurations into code workflow to avoid
  database conflicts.
• Allows versioning of configuration
• Great Documentation and support
   o http://drupal.org/node/928026
   o IRC #drupal-support

• Can manage all configuration exports in this way –
  not feasible or scaleable.
The Three Prong Attack:
Services
• Publish content to lower environments
• OAuth Support
The Three Prong Attack:
Feeds
• Pull content, users, and pretty much anything
  exportable by views.
• Can use Data module to map data to where it
  needs to go.
• OAuth Support
• Use UUID module when importing to avoid
  duplicate content.
The Three Prong Attack:
Synching Environments
• For the love of FSM: BACKUP YOUR DATABASES!!!!
• Once content is synched, push dev data
• If file share, Backup & Migrate exports
  will be automatically available to all
  environments.
• Staging environment pushes will be “easy”. Use B&M
  “Restore”. Can be used with Drush.
• In production, push during off peak hours, put site in

  maintenance mode and import data.
• This slide has way too much text… sorry.
The Three Prong Attack:
A Note on the Deploy Module
•   Integrates with services.
•   Essential if a content staging environment exists.
•   Good for publishing content and approval workflow
•   Not built to handle configuration settings, or multiple
    workflows.
The Three Prong Attack:
   Content Distribution

Local      Dev            Stage




                                          Production



                        Network Drive
        Content In                                        Users
        Content Out
        Config Export
                                        Content Staging
The Three Prong Attack:
Notable Modules
• Features – Export configuration into code.
   o Features Tools – Automates feature downloads, and creates versioned
     change files.
• Feeds – Import pretty much anything on the web
  into Drupal.
   o Feeds xPath Parser – Allows xPath style syntax for XML
   o Feeds OAuth – OAuth integration selection for feeds module.
   o Data – Allows customized data storage and mappings.

• Services – Publish anything in drupal
   o OAuth – contains a services integration for OAuth authentication.

• Backup and Migrate
Questions
Thank You!
Nick Hepner
nick@hepnermedia.com
@NickHepner

More Related Content

What's hot (20)

PPTX
How maven makes your development group look like a bunch of professionals.
Fazreil Amreen Abdul Jalil
 
PPTX
Drupal7 an introduction by ayushiinfotech
Mandakini Kumari
 
PPT
Sql implementations
Mallikarjuna G D
 
PDF
MariaDB Server & MySQL Security Essentials 2016
Colin Charles
 
PDF
Better encryption & security with MariaDB 10.1 & MySQL 5.7
Colin Charles
 
PDF
Cool MariaDB Plugins
Colin Charles
 
PDF
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
Colin Charles
 
PDF
Lessons from database failures
Colin Charles
 
PPTX
AdminCamp 2017 - IBM Connections Adminblast
Nico Meisenzahl
 
PDF
Chuck Sheldon's resume
Chuck Sheldon
 
PPT
Undine: Turnkey Drupal Development Environments
David Watson
 
PPT
Overview of chef ( Infrastructure as a Code )
Pravin Mishra
 
PDF
Open11 maria db the new m in lamp
Colin Charles
 
PDF
Drupal in-depth
Kathryn Carruthers
 
PDF
Tuning Linux for your database FLOSSUK 2016
Colin Charles
 
PPTX
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Manuel Garcia
 
PPT
Replacing Your Shared Drive with Alfresco - Open Source ECM
Alfresco Software
 
PDF
MariaDB: in-depth (hands on training in Seoul)
Colin Charles
 
PDF
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
Colin Charles
 
How maven makes your development group look like a bunch of professionals.
Fazreil Amreen Abdul Jalil
 
Drupal7 an introduction by ayushiinfotech
Mandakini Kumari
 
Sql implementations
Mallikarjuna G D
 
MariaDB Server & MySQL Security Essentials 2016
Colin Charles
 
Better encryption & security with MariaDB 10.1 & MySQL 5.7
Colin Charles
 
Cool MariaDB Plugins
Colin Charles
 
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
Colin Charles
 
Lessons from database failures
Colin Charles
 
AdminCamp 2017 - IBM Connections Adminblast
Nico Meisenzahl
 
Chuck Sheldon's resume
Chuck Sheldon
 
Undine: Turnkey Drupal Development Environments
David Watson
 
Overview of chef ( Infrastructure as a Code )
Pravin Mishra
 
Open11 maria db the new m in lamp
Colin Charles
 
Drupal in-depth
Kathryn Carruthers
 
Tuning Linux for your database FLOSSUK 2016
Colin Charles
 
Altoros Cloud Foundry Training: hands-on workshop for DevOps, Architects and ...
Manuel Garcia
 
Replacing Your Shared Drive with Alfresco - Open Source ECM
Alfresco Software
 
MariaDB: in-depth (hands on training in Seoul)
Colin Charles
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
Colin Charles
 

Similar to Deployment Strategies: Managing Code, Content, and Configurations (20)

PPT
Cloud Hosting for Government Agencies: Drupal Platform as a Service
Acquia
 
ZIP
Staging and Deployment
heyrocker
 
PPT
Drupal Workflow Concepts
cgmonroe
 
PPT
Open / Drupal Camp Presentation: Brent Bice
LevelTen Interactive
 
PPT
Migraine Drupal - syncing your staging and live sites
drupalindia
 
KEY
Drupal Meetup Lisbon
Paulo Gomes
 
PPT
Staging Drupal: Change Management Strategies for Drupal
Erich Beyrent
 
PPT
Staging Drupal: Change Management Strategies for Drupal
Erich Beyrent
 
PDF
Running a business in the Cloud with AWS
Conor O'Neill
 
PPTX
Git Going w/ Git
heyMP
 
PPTX
Manage Deployments with Install Profiles and Git
nhepner
 
KEY
Acquia Remote Administration
Acquia
 
KEY
Remote Admin Overview
Acquia
 
KEY
Gov features
Jeff Miccolis
 
PPTX
WordPress Development Environments
Ohad Raz
 
PDF
Facebook architecture
mysqlops
 
PDF
Qcon 090408233824-phpapp01
jgregory1234
 
PDF
Facebook的架构
yiditushe
 
PDF
Facebook architecture
drewz lin
 
PPTX
How to Migrate, Manage and Centralize your Web Infrastructure with Drupal
Acquia
 
Cloud Hosting for Government Agencies: Drupal Platform as a Service
Acquia
 
Staging and Deployment
heyrocker
 
Drupal Workflow Concepts
cgmonroe
 
Open / Drupal Camp Presentation: Brent Bice
LevelTen Interactive
 
Migraine Drupal - syncing your staging and live sites
drupalindia
 
Drupal Meetup Lisbon
Paulo Gomes
 
Staging Drupal: Change Management Strategies for Drupal
Erich Beyrent
 
Staging Drupal: Change Management Strategies for Drupal
Erich Beyrent
 
Running a business in the Cloud with AWS
Conor O'Neill
 
Git Going w/ Git
heyMP
 
Manage Deployments with Install Profiles and Git
nhepner
 
Acquia Remote Administration
Acquia
 
Remote Admin Overview
Acquia
 
Gov features
Jeff Miccolis
 
WordPress Development Environments
Ohad Raz
 
Facebook architecture
mysqlops
 
Qcon 090408233824-phpapp01
jgregory1234
 
Facebook的架构
yiditushe
 
Facebook architecture
drewz lin
 
How to Migrate, Manage and Centralize your Web Infrastructure with Drupal
Acquia
 
Ad

More from nyccamp (19)

PDF
Drupal As A Jigsaw
nyccamp
 
PDF
A/B Testing and Optimizely Module
nyccamp
 
PPTX
Behat - human-readable automated testing
nyccamp
 
PPT
ALL YOUR BASE (THEMES) ARE BELONG TO US
nyccamp
 
PDF
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
nyccamp
 
PDF
Promotions Vouchers and Offers in Drupal Commerce
nyccamp
 
PDF
Workbench: Managing Content Management
nyccamp
 
PDF
Drupal Aware Design: Good Techniques for Better Themes
nyccamp
 
PDF
Drupal and Higher Education
nyccamp
 
PDF
A New Theme Layer for Drupal 8
nyccamp
 
PDF
Mobile and Responsive Design with Sass
nyccamp
 
PDF
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
nyccamp
 
PDF
Building Social Networks
nyccamp
 
PPT
The State of Drupal 8
nyccamp
 
PDF
Building Social Networks
nyccamp
 
PDF
Move Into Drupal Using The Migrate Module
nyccamp
 
PDF
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
nyccamp
 
PDF
Drulenium - Testing Made Easy
nyccamp
 
PDF
Node Access in Drupal 7 (and Drupal 8)
nyccamp
 
Drupal As A Jigsaw
nyccamp
 
A/B Testing and Optimizely Module
nyccamp
 
Behat - human-readable automated testing
nyccamp
 
ALL YOUR BASE (THEMES) ARE BELONG TO US
nyccamp
 
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
nyccamp
 
Promotions Vouchers and Offers in Drupal Commerce
nyccamp
 
Workbench: Managing Content Management
nyccamp
 
Drupal Aware Design: Good Techniques for Better Themes
nyccamp
 
Drupal and Higher Education
nyccamp
 
A New Theme Layer for Drupal 8
nyccamp
 
Mobile and Responsive Design with Sass
nyccamp
 
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
nyccamp
 
Building Social Networks
nyccamp
 
The State of Drupal 8
nyccamp
 
Building Social Networks
nyccamp
 
Move Into Drupal Using The Migrate Module
nyccamp
 
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
nyccamp
 
Drulenium - Testing Made Easy
nyccamp
 
Node Access in Drupal 7 (and Drupal 8)
nyccamp
 
Ad

Recently uploaded (20)

PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
July Patch Tuesday
Ivanti
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Designing Production-Ready AI Agents
Kunal Rai
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
July Patch Tuesday
Ivanti
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Designing Production-Ready AI Agents
Kunal Rai
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 

Deployment Strategies: Managing Code, Content, and Configurations

  • 2. Deployment Strategies: Managing Code, Content, and Configurations Across Multiple Environments Nick Hepner
  • 3. Nick Hepner • Web Developer since 1998 • Drupal since 2005 • Enterprise Architect since 2008 • Founding and active member Baltimore meetup • Likes: beer • Dislikes: PowerPoint Presentations
  • 4. Introduction • Standard Deployment Model • Code, Content, Configuration and their workflows • Problems • Scalable Solutions for Drupal 6 & 7
  • 5. Standard Deployment Model Local Development Staging Production Content Staging
  • 6. Static Cache Users Apache Solr Single Sign-On Memcache File Share Development/ Deployment/ Monitoring/ Internal tools Write Cluster Read Cluster Code Repository
  • 7. 81 Servers Development Staging Production
  • 8. Configuration • Consists of Drupal admin and module settings and presets. • Imagecache/image styles • Configuration workflow begins on development server o New modules installed o Existing modules configured o Content types, fields, and profile structures edited o Database stored stylesheets, php code
  • 9. Configuration Workflow Local Development Staging Production Configuration Content Staging
  • 10. Content • Content workflow begins on the production server • User Content o User registrations o User generated content o Files and uploads o Social interactions (e.g. Private Msg, Statuses, etc.) o Content management o Site and user administration • Officiated Content o News Articles o Press Releases o Internal Announcements
  • 11. Content Workflow User Content Content Local Development Staging Production Configuration Officiated Content Content Staging
  • 12. Conflicts • Servers no longer synchronized o Developers begin developing on different setups • Data often gets overwritten • Most recent/accurate data set difficult to keep track of • Dogs, Cats living together
  • 13. Code • Can be versioned for easy deployment/management (SVN, Git) • Does not conflict with database changes • Does not include database stored code
  • 14. Deploying Code With Versioning • Deploy to development through “trunk” • Create a tag for deployment to staging • Either reject the tag and fix bugs, or promote it to production.
  • 15. Code Workflow Code Repository Trunk Tags Local Development Staging Production Code Rejected
  • 16. Non-Starters • Migrate – Intended to be used when moving a site from another framework, such as Wordpress or Joomla. • Rsync - *nix command line tool for synchronizing files. Does not allow for proper staging.
  • 17. Manual Configuration Management • Developer manually sets configuration options on all servers • Fine for really small implementations • More than one developer causes issues
  • 18. Strategies: Backup and Migrate • Use backup and migrate module to create backup profile for content and for configuration • Use versioning to move code • Configuration must still be entered manually on development • Takes some trial and error
  • 19. Strategies: Launch Manager • Aegir – Seems to work well for launching initial site rollouts. Not so much for maintenance updates • Hudson o Extensive initial configuration o Integrates with version control o Can script specific updates
  • 20. Strategies: The Three Pronged Attack • Typically for enterprise environments • Features • Content Publication • File Share o Mount files drive o Network-Attached Storage (NAS) o Content Delivery Networks (CDN)
  • 21. The Three Prong Attack: Features • Extracts configurations into code workflow to avoid database conflicts. • Allows versioning of configuration • Great Documentation and support o http://drupal.org/node/928026 o IRC #drupal-support • Can manage all configuration exports in this way – not feasible or scaleable.
  • 22. The Three Prong Attack: Services • Publish content to lower environments • OAuth Support
  • 23. The Three Prong Attack: Feeds • Pull content, users, and pretty much anything exportable by views. • Can use Data module to map data to where it needs to go. • OAuth Support • Use UUID module when importing to avoid duplicate content.
  • 24. The Three Prong Attack: Synching Environments • For the love of FSM: BACKUP YOUR DATABASES!!!! • Once content is synched, push dev data • If file share, Backup & Migrate exports will be automatically available to all environments. • Staging environment pushes will be “easy”. Use B&M “Restore”. Can be used with Drush. • In production, push during off peak hours, put site in maintenance mode and import data. • This slide has way too much text… sorry.
  • 25. The Three Prong Attack: A Note on the Deploy Module • Integrates with services. • Essential if a content staging environment exists. • Good for publishing content and approval workflow • Not built to handle configuration settings, or multiple workflows.
  • 26. The Three Prong Attack: Content Distribution Local Dev Stage Production Network Drive Content In Users Content Out Config Export Content Staging
  • 27. The Three Prong Attack: Notable Modules • Features – Export configuration into code. o Features Tools – Automates feature downloads, and creates versioned change files. • Feeds – Import pretty much anything on the web into Drupal. o Feeds xPath Parser – Allows xPath style syntax for XML o Feeds OAuth – OAuth integration selection for feeds module. o Data – Allows customized data storage and mappings. • Services – Publish anything in drupal o OAuth – contains a services integration for OAuth authentication. • Backup and Migrate