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?

  • Everything I said above it true if you use the built-in actions. Once you start customizing and adding your own actions, it’s your sole responsibility to support abilities like rollback support, logging, dependencies etc.
  • Customizing – and troubleshooting – requires a low-level understanding of the technology which can be immensely complex or just weird.
  • In some cases, getting an installer up and running could be a daunting task (but, once you got it working, updating and maintaining it is usually easier)

One last thing, with today’s trends of CD and containers, many people see installers as a thing of the past, a necessary evil which eventually would be gone. I am more skeptical. At least some of the benefits I listed above hold true for any kind of deployment – most importantly, the ability to rollback and the ability to update (which is not ‘delete and re-deploy’ – in most cases you need to keep the user’s data and configuration unmodified). So in some form or another, installation technologies are here to stay.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s