• Save
Staging Drupal: Change Management Strategies for Drupal
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Staging Drupal: Change Management Strategies for Drupal

  • 3,267 views
Uploaded 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.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,267
On Slideshare
3,267
From Embeds
0
Number of Embeds
0

Actions

Shares
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