Rolling Deploys

Events happening in the community are now at Drupal community events on www.drupal.org.
jmccaffrey's picture

I am researching how we can build a rolling deploy architecture for Drupal. Here is the high level goal:

1) I begin a software deploy, users are not affected by this
2) Software deploy is complete, users are not affected by this
3) I switch my load balancer such that only certain networks are directed at the new code, my internal testers test. External normal users are not affected by this.
4) After verification, I open the site wider, allowing a small % of normal users into the site. Most normal external users are not affected by this.
5) Over the next few hours, I keep opening the site while constantly monitoring. Should a problem arise, I switch users back to the old code while we triage.
6) Deploy complete, most users did not even notice a change.

Has anyone seen or done anything like this with Drupal? This is a fairly common strategy for websites, but given the data driven nature of Drupal, I can see several problems:

1) Users posting comments or other content should not lose that content and should not be interrupted by a "read only" mode.
2) Changes should be allowed to overlap such that I can change a view, remove a module, or introduce a new default theme in my new code deploy that is not present in the old code deploy.

Comments

Subscribing. I'm generally

cookiesunshinex's picture

Subscribing.

I'm generally interested in how to handle deployment of multiple phases of development with Drupal. What are the Drupal best practices and methodologies?

Symetrik Design
Drupal Consulting
http://www.symetrkdesign.com

The main challenge with

jmccaffrey's picture

The main challenge with Drupal deploys is configuration, the best practice around this is to use Features/ctools/exportables where possible and create hook_update_N and hook_install methods for the rest. This is a non-trivial process, and often requires iteration and debugging on your install/update procedure.

One of the goals of Drupal 8 is to address this fundamental problem in the way Drupal is implemented.

Your approach sounds very

ducdebreme's picture

Your approach sounds very interesting. What Load balancer do you use?

High performance

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: