2008-04-14

Real world update deployment scenario

I'm thinking about automating updates deployment for one of the commercial applications I work on. It's hard to find good ready "out of the box" solution and below are the reasons why:
  • maximum simplifying deployment
  • it has to manage applications major updates and minor patches
  • deployment automatically should stop production server, make backups for easy revert, update application code and database, start server and make some test to check if it's started (that part is already working)
  • multiple deployment servers- independent installations
  • find out new updates on central server using pull strategy
  • it has to manage in almost unique way two platforms- windows and linux
  • it has to be scheduled to out of office work hours
  • some target servers have outstanding deploy time window- so deployment time could be set for local site
  • some target servers need patches earlier- like some quick fixes that shouldn't be spread anywhere else
  • some target servers are more "conservative"- we need additional agreements with customer to make updates- so we are making updates less frequently
  • automatically apply all needed updates and patches up to date- it could be really nice feature

The most tedious work is already automated, but rest still needs manual operation. This is at least 1.5 hour per each full deployment- it looks I can cut it down. So after looking at some commercial solutions, I decided to make custom tool using java ANT and some helpers.

Do you know any utilities that can manage most of those requirements?

No comments: