4 Replies Latest reply on Apr 12, 2007 7:03 AM by cyc1one

    Model/Typical deployment for hosting multiple customers

    cyc1one

      Currently we host upwards of 60 customers (all using the same application, different database) on a single large IBM box.
      We have 60 instances of jboss running, one for each customer.

      I'm pretty sure that this is not the ideal way to do this, obviously this has a large memory overhead and even on fast hardware is starting to seriously slow down, plus it's not scalable beyond the current number of customers.

      To explain a bit further. We use tomcat as a web server running on a separate machine. Each customer has an instance of tomcat as well, and each instance of tomcat is set to connect to a specific instance of jboss.

      So, what suggestions are there for the 'correct' way to manage and host this kind of setup?

        • 1. Re: Model/Typical deployment for hosting multiple customers
          dimitris

          The first step would be to just use the bundled tomcat inside jboss. It's a lot slower the other way.

          Then you may consider grouping customers on the same physical jboss instances.

          • 2. Re: Model/Typical deployment for hosting multiple customers
            cyc1one

            Using the bundled tomcat isn't an option. The decision to use seperate tomcats running on seperate boxes was made on the basis of security.
            If somehow the tomcat instance is compromised, all the attacker gains access too is that machine, which has no direct access or authority to access the EJB server.

            Grouping the customers into a single or at least less jboss instances was what I thought would be correct.
            We're currently using 3.2.5, is it possible on this version?

            I've searched the wiki and the faq documents, but can't find any information on running the same app multiple times in a single server instance.

            • 3. Re: Model/Typical deployment for hosting multiple customers
              dimitris

              Why not use an httpd to front the bundled jboss/tomcat? It's a very common and secure setup.

              Running the same app many times would be the same for every application server. You'd basically need to have somewhat different settings for every application deployment so they don't conflict with each other, (e.g. jndi bindinds, datasource config), with the option to isolate the deployment at class level, as well.

              • 4. Re: Model/Typical deployment for hosting multiple customers
                cyc1one

                Unfortunately i'm not in charge of the security setup, so it's not an option to collapse it all down to one box and using the bundled tomcat.
                That isn't really the problem though.

                It seems that the normal way of doing this would be just to run the same app multiple times in a single server.
                Maybe with 2 server instances, one for all the live and one for all the test deployments.