I have been "messing" with drupal for a while now, and have now taken my first job as a 100% committed Drupal developer & tech lead for a company that builds massive websites for large federal initiatives that involve dense structures, complex role management schemes, and mountains of content (often 10,000+ nodes).
So, one of my first tasks as we get started is to work with the site building team and sys admins to create a solid process for performing migrations from dev >>> staging, sometimes staging >>> dev, and, of course, the eventual staging >>> production.
I have done a bit of cursory reading on the topic, and it appears all / most of the popular solutions are a bit hack-ish (so to speak).
Can anyone tell me what sort of procedure they have for managing something like this? We use git, and I am in the process of getting the site building team comfortable with the command line, drush (w/ aliases, etc) + git, but there is that ever nagging problem of configuration vs content. It's a tough problem - and when you have 10,000 nodes or more, the "hairy-ness" seems to become near unmanageable.
Can anyone tell me about their process and whether they have had any luck with executing the process?
Some of the tools I am becoming aware of here include:
Aegir - is this effective? How can it help me compared to other solutions?
Hudson - I'm not versed on this yet, but have heard it mentioned as a solution for change management
Salt - I recently heard an interview on the FLOSS weekly podcast about this tool, and it looks pretty cool. I'm still having a bit of trouble seeing how this would really help me vs a solution using separate drush aliases for @dev @stg @prod, etc + git. Am I missing something here?
Oh, yes, and features. It has its uses, but I'm not seeing it as a rock solid solution, but more of a hack. Am I just too ignorant of its wonderful deployment uses?
Also, my company has invested in the Acquia Enterprise level suite, which I have yet to even start using. Are there options here as well?
Please feel free to offer suggestions if I am missing any useful technologies here. This is obviously an ongoing issue, but I know the real technicians out there still need a way to solve problems like this (even if they are manual).
So, what is your process - if any - for accomplishing this? Where does it work well, and where does it lack (if anything)? If the process needs to be done iteratively via some sort of automation, is there perhaps a way to use an instance of open atrium to manage the workflow between the platforms? I plan to set up OA to bring out bugtracker, git links, project documents, etc, and I'm wondering if there's a way to wrap this process up into a series of steps that follow a specific pattern.
PS this is one of my first questions to the community, so I apologize if I missed any of the posting guidelines.