Posts Tagged ‘Configuration’

Deploy and upgrade like a breeze

22. August 2009

Still astonishing when working in the arena of Java based so called “Enterprise level” Web Applications for some years is the fact how little effort regularly is invested into smooth deploying and upgrading of such applications. Let’s therefore shortly consider the main requirement aspects one has to keep in mind when developing software which doesn’t cause too many headaches at deployment time.

  • There has to be some thoughtful Management of Configuration Data manipulable by the User of the Software Package in a way that makes sure that existing Configuration Data isn’t lost when deploying a new version of the software.
  • This Configuration Management therefore also has to provide a mechanism which is able to migrate the User Configuration itself into some new Configuration Structure complying to what’s needed by the new Version of the Software.
  • Of course, the Configuration Management has to work for all Configuration Data of the System including the Connection Parameters to other systems such as Databases.
  • We need a Database Upgrade Mechanism which is able to automatically detect the Software version of a Database and to applying all Migration Processes needed to upgrade to the currently needed Version.
  • In an ideal world, there would also be a Downgrade Path which allows to Downgrade to a previous Software Version without loosing the Data added to the System in the meantime. Well.
  • We need some security which makes sure that Databases with Production Data are never migrated “by accident”.
  • We have to take into account that for “Migrating a Database” we typically need more administrative database rights than for regular usage, e.g. when it comes to extending the Schema (applying DDL statements).
  • There should also be some mechanism which takes care of transition with a working Test Environment to a Production Environment.

(This post is part of my thoughts about A portfolio for Enterprise Web Applications)