Why use an installation technology

This is a question that I get asked from time to time, usually after someone who is not familiar with the deployment world encounters problems with a certain installation. “We could just write a script that extracts the files to the right place, what’s the big deal?”

Well, it’s a big deal. Generally speaking, an installation framework (compared to a script) provides a lot of benefits, such as:

  • Modelling the application deployment into sub-modules – allowing to add or remove parts of the applications, define dependencies etc.
  • Built-in support for many deployment actions – from simple things like copy files, edit text files, or run some OS command, to configuring web servers and databases
  • Ability to rollback each action – which gives you the ability to rollback changes in case of installation error, and provide an uninstaller, with (theoretically) no additional effort.
  • Built-in detection of files in use, including the ability (in some cases) to replace such files (upon reboot, or by automatically restart the interfering process)
  • Various levels of UI (from completely silent deployment to a full user-driven interface)
  • Versioning and update management (upgrades/patches)
  • Built-in logging
  • Integration with the Operating System software management tools (such as the ‘programs and features’ in Windows)
  • And more… (your comments are welcomed)

So, it’s so great, so why not everyone love it?

Continue reading