how to manage deployment of 30+ different versions of my app


General J2EE: how to manage deployment of 30+ different versions of my app

  1. We will begin deploying our inhouse developed webapp (mostly jsp's, struts etc., not much ejb) to our own hosting environment, where we will have 30+ customers that each use a slightly modified version of our base web application. Modifications include languages, colors, some custom page design, simple texts that are different, etc.

    I have concerns from my design people that it is too much work for them to manage all the different versions for each customer, that they want to delegate some of their job to our sales department, etc.

    I am also worried that a simple cvs setup for the deployed application, using branches to handle the differences for each customer will not work, so I am seeking expert advice in how to manage large scale deployment of web applications.

  2. Hi,

    Looks to me that this is mainly a configuration issue, what you should do is isolate all the configurable options and implement (or use an existing) configuration framework. I would strongly advice against making changes in the actual code, since this will give you headaches that will end up to be migraine!

    If it is not possible to isolate the features you want to configure I'd say you should go back and review your design.

    What you could do is devise an xml format that you somehow process at startup which contains all the specific data (or pointers to data) and preferences for that specific customer, of course you can keep this in cvs for each different customer.

    Maybe you could create a ResourceManager factory that manages the resources specific to ech customer, on login of that customer, you load the appropriate resources.

    Hope this helps,