Your SlideShare is downloading. ×
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Staging Drupal: Change Management Strategies for Drupal
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Staging Drupal: Change Management Strategies for Drupal

3,178

Published on

This is a presentation I gave at DrupalCamp NH in October 2011. The presentation covered aspects of change management strategies across multiple server environments.

This is a presentation I gave at DrupalCamp NH in October 2011. The presentation covered aspects of change management strategies across multiple server environments.

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,178
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Databases are great for storing and querying data, not great for versioning and merging changes
  • Databases are great for storing and querying data, not great for versioning and merging changes
  • Databases are great for storing and querying data, not great for versioning and merging changes
  • Databases are great for storing and querying data, not great for versioning and merging changes
  • Databases are great for storing and querying data, not great for versioning and merging changes
  • Transcript

    • 1.
      • Staging Drupal
      • Change Management Strategies for Drupal
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 2.
      • http://twitter.com/ebeyrent
      • http://drupal.org/user/23897
      DrupalCamp NH 2011 Introductions
      • Permissions API
      • Permissions Superuser
      • Crowd SSO
      • LDAP Extended Groups
      • Context Local Tasks
      • Search Lucene Biblio
      • Search Lucene Attachments
      • Search Lucene OG
      • Visual Search API
      My Modules Staging Drupal – Change Management Strategies Erich Beyrent
    • 3.
      • Agenda
      • Playing well with others
      • Managing code changes
      • Managing database changes
      • Managing content changes
      • Deployment strategies
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 4. The only thing that's constant is... DrupalCamp CT 2010
    • 5.
      • Staging? What is that?
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 6.
      • Staging? What is that?
      • “ Staging” is the process of delivering changes from one environment to another.
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 7.
      • I develop on the live server.
      • I work alone.
      • Backups?
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 8.
      • The Manual Process
      • Point.
      • Click.
      • Wait.
      • Rinse and repeat.
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 9. DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 10.
      • Why it fails
      • It's tedious.
      • It's time-consuming.
      • It's error-prone.
      • It's risky.
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 11.
      • The staging process should be:
      • Reliable
      • Repeatable
      • Scalable
      • Efficient
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies Staging Goals
    • 12. Anatomy of a Drupal Site DrupalCamp NH 2011 Staging Drupal – Change Management Strategies Files Configuration Content Code
    • 13.
      • A traditional approach
      • Use source control
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 14.
      • Use source control
      • Essential to the development and staging process
      • Manages changes to the code over time
      • With SVN, use a standard repository layout consisting of “tags, branches, trunk”
      • Use multiple repositories to separate core code from project code
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 15.
      • What goes into source control
      • Code, configuration, theme-based files
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 16.
      • What goes into source control
      • Code, configuration, theme-based files
        • Use source control templates for files like settings.php
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 17.
      • What goes into source control
      • Code, configuration, theme-based files
        • Use source control templates for files like settings.php
      • What about database snapshots?
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 18.
      • What goes into source control
      • Code, configuration, theme-based files
        • Use source control templates for files like settings.php
      • What about database snapshots?
        • Databases are great at storing and retrieving data, not merging and versioning
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 19.
      • What goes into source control
      • Code, configuration, theme-based files
        • Use source control templates for files like settings.php
      • What about database snapshots?
        • Databases are great at storing and retrieving data, not merging and versioning
      • What about files?
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 20.
      • A traditional approach
      • Use source control
      • Manage changes in code
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 21.
      • Manage database changes
      • Export your views, panels, rules, and content types to code
      • Use Exportables and Ctools to export other data
      • Manage configurations with Strongarm
      • Use Permissions API for roles and permissions
      • Use Features
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 22.
      • Why should we do this?
      • Multiple environments need to be updated
      • Allows for a phased approach to change management
      • Saves time and money
      • Is fully testable and reproducible
      • Minimizes downtime and helps manage expectations
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 23. Enable modules
      • function demo_update_7001() {
      • $ret = array();
      • $modules = array(
      • 'ctools',
      • 'context',
      • 'devel',
      • );
      • module_enable($modules, TRUE);
      • return $ret;
      • }
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 24. Grant permissions
      • function demo_update_7001() {
      • $ret = array();
      • $role = user_role_load_by_name('admin');
      • $permissions = user_permission_get_modules();
      • user_role_grant_permissions($role->rid, array_keys($permissions));
      • return $ret;
      • }
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 25. Create content types
      • function demo_update_7001() {
      • $types = array(
      • array(
      • 'type' => 'article',
      • 'name' => st('Article'),
      • 'base' => 'node_content',
      • 'description' => st('Description.'),
      • 'custom' => 1,
      • 'modified' => 1,
      • 'locked' => 0,
      • )
      • );
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011 foreach ($types as $type) { $type = node_type_set_defaults($type); node_type_save($type); node_add_body_field($type); } node_types_rebuild(); }
    • 26. Create taxonomy
      • function demo_update_7001() {
      • $ret = array();
      • $vocabulary = new stdClass();
      • $vocabulary->name = st('Categories');
      • $vocabulary->machine_name = 'categories';
      • $vocabulary->description = st('Standard node categories');
      • $vocabulary->hierarchy = 1;
      • $vocabulary->module = 'demo';
      • $vocabulary->weight = 0;
      • taxonomy_vocabulary_save($vocabulary);
      • return $ret;
      • }
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 27. Create taxonomy terms
      • function demo_update_7001() {
      • $ret = array();
      • $term = new stdClass();
      • $term->name = st('Drupal');
      • $term->description = st('Category for all things Drupal');
      • $term->parent = array(0);
      • $term->vid = $vocabulary->vid;
      • taxonomy_term_save($term);
      • return $ret;
      • }
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 28.
      • A traditional approach
      • Use source control
      • Manage database changes in code
      • Use deployment tools
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 29.  
    • 30.
      • Use deployment tools
      • Source control as a deployment tool
        • SVN update, post-commit hooks
        • GIT push
      • drush, rsync, make
      • Hudson, Phing
        • http://drupal.org/project/phingdrushtask
      • Capistrano
        • https://github.com/gaspaio/Drupal-Capistrano-Deploy
    • 31. Drupal Modules
      • Deploy
      • Context
      • Features
      • Ctools
      • UUID
      • Services
      • Boxes
      • Compare various staging modules:
      • http://drupal.org/node/980186
      Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 32.
      • The process
      • Import current database snapshot into your sandbox
        • Scrub your database!
      • Update your codebase
      • Develop, commit, update
      • Promote changes to QA environment, test
      • Tag or branch and release
      • Drink beer
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 33.
      • Test the process
      • Install the Demo module
      • Take snapshot
      • Run update.php
      • Verify results, watchdog, error_log
      • Rewind
      DrupalCamp NH 2011 Staging Drupal – Change Management Strategies
    • 34.  
    • 35. What about content?? Staging Drupal – Change Management Strategies DrupalCamp NH 2011
    • 36. What about content?? Staging Drupal – Change Management Strategies DrupalCamp NH 2011
      • Staging content in Drupal sucks
        • Several options, but none are 100% reliable
          • All depend on the UUID module
          • Deploy, Node Export, Migrate, Services
          • Error-prone, authentication issues, transport errors
    • 37.  
    • 38. Drupal 8
      • Proper configuration management
      • A robust entity API and UUIDs in core
      • Join the discussion at http://groups.drupal.org/build-systems-change-management/cmi
    • 39. Questions?
    • 40. Thank You! http://twitter.com/ebeyrent http://drupal.org/user/23897

    ×