Hello everybody. I have a general design question that I would like to get some input on. I am working on a fairly large JEE application that will be used by many customers that will range from small to large businesses (in terms of web traffic). This is a hosted application by the way.
Currently, the application is designed to support one customer per EAR and each customer has their own database and DataSource access. Large enterprise class customers would have there own dedicated server and would be the only EAR running on JBoss. For small to medium size customers we would like to run multiple/many EARs on one instance of JBoss thus supporting multiple/many customers on one server.
How does deploying multiple/many EARs in one instance of JBoss affect performance and system resources? For example, if 50 smaller customers produce the same amount of traffic, database access, object creation, EJB usage, and other IO as one large customer running on a dedicated server would we be able to expect the performance and system resource usage on both machines to be equivalent? Or, does the addition of each EAR running on JBoss (or any application server for that matter) require a significant amount of system resources to be used for each additional EAR? In other words, for each EAR added to a single instance of JBoss will this exponentially, linearly, or minutely affect the usage of system resources?
Also, we have the situation where we need to be able to have demo accounts running on a hosted server. There is the potential to need 100s of demo accounts (should not reach into the 1000s). Assuming there is nothing wrong w/ the code , would JBoss be able to run this many EARs all in one instance? I understand we may need to cluster JBoss on several physical servers to accomplish this if it is even possible. If this is not possible, is it a big "no no" to support many customers through one EAR? Each customer would still have their own database, but the EAR now would have to determine which DataSource to use for each individual customer. Hopefully we would only need to go this route for demo accounts.
I'm off to do testing, lots of that to do ;). Any thoughts or comments are much appreciated.