Web sites are becoming increasingly more complicated. As the complexity increases, site owners are demanding better tools to take control of content. Drupal's "backup and migrate" and "revisioning" modules handle these jobs elegantly and give control back to site owners.
There are four key areas:
- Control of site data revisions
- Publishing and content approval
- Disaster Recovery
- Server Migration
Data Revisions
The revisioning module saves every version of a page that is ever made. When you first create a page - or a blog post or a commerce product - that is version 1. If you go back and edit that note, the new version is saved, but so too is the previous version. You now have two versions of the page, the live "published" version and a previous archived version, which is not visible on the front end of the site.
You might then decide that the new changes aren’t right and that you want the previous version - no problem, select the correct version and make it "published". There is also a very handy compare facility that shows two versions side by side and highlights the differences. All very useful - add the autosave module and you will never lose work from an old version.
Content Moderation
The next step for this system is to turn it into a content moderation system. The scenario is that a site has many content authors, but all pages must be approved by a site editor before they go live. Revisioning handles this easily by using Drupal's built in system of user roles and permissions. It's a breeze to set up different levels of admin permissions in Drupal.
Each activity on the site has independent permissions settings which can be granted to all users or just specific roles. Need another type of user? Set up a new role, check the permissions and give that role to a user, simple. When a content author is ready to publish a document, he marks it for approval which notifies site editors. It is only once the site editor has published the document that it will appear on the site.
Backup And Migrate
So that’s all your content safe; every draft and every version saved and available. But what if something happened to the server or the database? It's very rare for webservers to have serious failures, but that doesn’t mean it won't happen. Here to save the day is the very excellent "Backup and Migrate" module. This is such a useful thing that it's probably the first module I set up on a new project. What it does is it saves a snapshot of the database to a file - and lets you restore the site from a backup. It's a system that has been around for a while and they have really got it running smoothly.
Whenever we are making major changes to a site we always grab a quick snapshot and very often we have to restore the site back to this point. The best thing is that it works and can be relied upon. If that was all it did I would still love it, but it goes much further than that.
Backup to Multiple Locations
You can save backups to a variety of different locations including a directory on the server, another FTP server, an email address, download it to your desktop or an Amazon S3 Bucket.
Scheduling Backups
You can set backups to happen automatically - and save to any of the locations you set up. You can also set up multiple schedules, so every hour you save to a server directory and once a week you save to an off-site ftp or American server. You can also set the scheduling to trim the backups to save space.
Encryption Your Data
And best of all you can encrypt your backups - which makes keeping archives on another server considerably less of a worry.
We also use this system to migrate sites to new servers. To move a site, all you need to do is copy the files to the new server, install Drupal, activate the backup and migrate module, restore the site from the archive and BAM - Backed up And Migrated.
Drupal On Many Levels
Hopefully I've managed to demonstare just how beautifully Drupal handles these tricky tatsks. You can keep track of data at a very fine level, but also at the level of the entire site - and control who has access to all of these systems. Another great aspect of working with Drupal is that it is constantly being improved by a community who are continually working on new features and improvements to functionality. As people solve their own individual problems they offer these solutions back to the community and we all benefit. It's a great system and a great way of making websites, I just wish they could do something about the name!