Many site admins wish to backup, create snapshots, stage and deploy sites, both on the same server as well as on external servers. Below is an attempt at listing the features of modules that support such activity.

It should be noted that there are big differences between content, code, and configuration deployment. Some of these modules are designed for a particular use only, some work for a few.

UPDATE 21 Jul 2013

Many changes have taken place in this important topic, and it is time to reflect them in this section. New promising modules have emerged, and others has expanded their capacities.

In deployment of code, the use of Features module and Drush Make (now part of Drush) seems clearly the mainstream, with the additional use of installation profiles (you can dive in the installation profiles code of distributions like Open Atrium or ERPAL to see all items working together). Features is also an almost imperative tool in the development workflow of projects that involves several simultaneous developers, and several environments (local, dev, qa, test, prod...), since it puts everything into code, making it suitable to use versioning.

If you want to deploy the entire site configuration instead of split it into case-uses, a very convenient alternative to Features is Drush CTools Export Bonus.

In deployment of (bulk) content, since this task is very related to importing data, many options are available, from strictly pure pushing deploy approach, like the Deployment module, to classical and user-friendly export/import approaches, like the well known Backup & Migrate module. In this section, we can not ignore Feeds module, more powerful each day thanks to the rising group of modules that extend its capabilities.

The big battle is taking place in the Middle-earth: Deployment of site configuration (Views, Image Styles, Permissions and Roles, Entities, Content Types, Fields, Settings... anything that is not content nor an entity nor code).

Drupal 8 will provide a new Configuration Management System.

The best source to find out the details and capabilities of the new D8 Configuration System is this recent screencast from DrupalCon Portland 2013 by Greg Dunlap (@heyrocker), the leader of the initiative. Basically the new CM system rips the site configuration data out of the database and put it in files, using an easily readable yaml format. These files will be deployable from site to site. So in D8 finally Drupal core will provide a practical solution for the site configuration management.

Several contrib modules has tried to solve this core shortage in D6 and D7. Many of them are recent initiatives and will overlap with D8 core solution. Features has been until now the most used module for deploying configurations in D6/D7, but originally it was not designed for that function. With the arrival of D8, Features will be able to return to its core purpose: to pack functionality that satisfy user-cases

Important Note:Modules with no D7 version, or currently not maintained, has not been included in this comparative.


Module
Main Aim
Code
Config
Content
Deps?
Expt/
Impt
D6 D7 Usage
D8 core Configuration Management System Manage and deploy site configuration
Not available
Backup & Migrate Backup and restore database tables
214311
Features
Saves code and configures setups that satisfy certain use-cases
133274
Feeds
Import or aggregate data

Import only
56191
Node Export
Export/Import nodes
21258
Migrate Framework for migrating content into Drupal from other sources.

Import only
18931
Bundle Copy Export/Import several entity types
10371
Apps
Download modules and all of their dependencies in one easy step
8075
UUID Features Integration
Export (non-bulk) content into a features module
2865
Drush CTools Export Bonus
Export all known Ctools exportables of a site to a module
991
Deployment
Content staging from one site to another
902
Data export import
Export/Import nodes, taxonomy terms and users using data files
818
DBTNG Migrator Replicate a database from one engine to another
611
Patterns
Manages and automates site configuration

dev only
496
Configuration Management
Manage and deploy site configuration
160
Stager Staging content and config
34
Drush Make & Make-generate Install/Export site code from/to a .info file
Not available
Drush Deploy Deploy/Rollback code with minimal downtime. Uses Git.

Import only

dev only
Not available
Hook Update Deploy Tools Make hook_update_N uses more powerful with better reporting

Import menus
100

Please update this page to reflect your knowledge of these modules

Revision Oct-2011 - Obsolete info

These tables take into consideration some D5 and D6 modules not covered in the 2013 revision.

Note, migrate modules are simply listed as "yes" for both import and export.
Module
Main Aim
content
config
code
export
import
Last row update
Deployment Content staging
yes
no
no
yes
yes
9 Oct 2011
Stager Staging content and config
yes
yes
no
yes
yes
9 Oct 2011
Snapshot Backup a whole site, code and database
yes
yes
yes
yes
no
9 Oct 2011
rel="nofollow">Backup
& Migrate
Backup the whole database, and import
yes
yes
no
yes
yes
9 Oct 2011
Drush
Make

Installs all code for a site from a .info file
no
no
yes
no
yes
9 Oct 2011
Drush
Deploy

Code deployment using drush
no
no
yes
yes
yes
9 Oct 2011
dog
(Drupal on Git)

Aims to enable site code deployment over git,
via drush
no
no
yes
yes
yes
9 Oct 2011
Staging
Sync two sites
?
?
?
?
?
9 Oct 2011
Features
Saves config setups that satisfy certain
use-cases
no
yes
yes
yes
yes
9 Oct 2011
Migrate
Migrate content from/to any source (Drupal,
wordpress, other CMS, spreadsheet, whatever)
yes
no
no
yes
yes
9 Oct 2011
Backup
back up a whole site, code and database
yes
yes
yes
yes
no
9 Oct 2011
Yet Another Migrate
Module

Mass content synchronisation
yes
?
no
yes
yes
9 Oct 2011

Development status

Module
5.x
6.x
7.x
#commits
#users
Development
Last row update
Deployment no
alpha
dev
~200
614
active
9 Oct 2011
Stager no
no
1.2
13
19
minimally
maintained
9 Oct 2011
Snapshot no
0.1
no
1
110
appears
abandoned
9 Oct 2011
rel="nofollow">Backup
& Migrate
1.3
2.4
2.2
214
100,696 active
9 Oct 2011
Drush
Make

no 2.3
no
~450
N/A
active
9 Oct 2011
Drush
Deploy

no
no
no
13
N/A
active
9 Oct 2011
dog
(Drupal on Git)

no
no
no
~110
N/A
active
9 Oct 2011
Staging
no
0.1
no
5
9
appears
abandoned
9 Oct 2011
Features
no
1.1
beta
~100
~40,000
active
9 Oct 2011
Migrate
no
2.2
2.2
~1100
2706
active
9 Oct 2011
Backup
3.0
no
no
?
212
abandoned
9 Oct 2011
Yet Another Migrate
Module

no
rc3
no
25
11
active
9 Oct 2011

Please update this page to reflect your knowledge of these modules

Comments

imclean’s picture

Feature comparison between the modules would be handy. For example, Stager can manage content at the database level as well as modules. Deployment appears to manage content at a higher level and can't update modules. There would be use cases for each.

The above was gleaned from simply reading the module pages.

coderintherye’s picture

This page should be editable to all, so would be great if you could jump in and add what you mention above.

imclean’s picture

Done. I've yet to use any of these modules so can't comment any further.

coderintherye’s picture

Nice, thanks =D

naught101’s picture

There probably should also be a page on deployment methodologies, as these module are just tools, and this page provides no comparison of ways to use them. Also, there are plenty of other tools out there that aren't modules, like Capistrano, Git, Drush rsync, etc.

Here are some links, but perhaps we should start a new page too:
http://stackoverflow.com/questions/730138/whats-best-drupal-deployment-s...
http://opc.com.au/web-development/drupal-release-management-drush-and-git
http://groups.drupal.org/packaging-deployment
http://dcycleproject.org/faq

coderintherye’s picture

Nice work on the page cleanup! Agree with your suggestion, though want to research what is already up on drupal.org first as well.