I am very sad not to be at Drupalcon this week, but I am pleased to announce that I am now the proud owner of a shiny new Drupal project simply called Deployment. You can visit and download the current code at drupal.org. Please heed the note about the module's current state. I am eager to get testing started and hear people's comments, however the modules are not production-ready at this time.
A couple days after I posted my last article, I went to del.icio.us to see if anyone had bookmarked it. A user named timbaileylondon had, with this note - "We need to get on top of this. The last one in particular made me cringe." Too true on both counts.
A few weeks ago I was trying to chase down a bug in content copy, because it was causing us problems with some content types we were trying to move. I had never dealt with FAPI much before, and it was a real eye-opener discovering I could script content type exports and imports easily in a few lines of code, and then further realizing I could actually script any form the same way. I started thinking about how many Drupal objects can be scripted quickly this way - node load/save, user load/save, any form, etc. It was then that I started thinking that maybe all we need to tackle the deployment problem is a) a way to abstract each of these pieces of data and b) a way to move them from server to server. Maybe Drupal doesn't need an overarching deployment solution, it just needs some glue.
Having defined the problem in my last post, we can now look at some of the options currently available for dealing with it. None of them is a complete answer, but they can all help out with some of the pieces. As a reminder, I'm just concerned with the problem of deploying changes to live sites for the moment. This is not a complete list by any means, but it is some stuff that I've found useful. Have you got another tactic you use to manage these types of changes?
I had been hoping to get together with people at Drupalcon this year to discuss issues surrounding deployment and change management. Unfortunately I will not be able to go. So this will have to act as my contribution to that discussion, which will hopefully carry on well beyond Boston. There are three parts - The Problem, Things That Help Now, and Some Ideas For The Future.
Note: This post originally appeared on my personal website but I brought it over here so all my Drupal writings could be in one place.
On Wednesday my co-worker Gary Love and I gave a presentation to the Seattle Drupal User's Group. Drupal is an open sourcecontent management system, which I have been working with for the last year or so. It is a pretty amazing piece of software. Any one of you could, with maybe half an hour of help, have a very functional website running for your organization using Drupal. This would include blogging and news items, photo upload and galleries, forums, user profiles, custom content types, page creation, etc etc etc. I am currently in the process of setting up a Drupal site for a pinball/video game show that was fully functional in a couple hours with no custom code written. It didn't look pretty (that still takes some time and effort) but it worked. This is, in my mind, pretty fucking amazing. It is just one more step to democratizing the internet, lowering the barrier to entry for non-profits and community organizations so they can get as much done as any larger player.