Greetings!
I would like some advice with regards to deploying a web app in a
multi-tenant scenario. A while back, we had a few cloud service
providers ask us if they could host our web app as a service. Under
pressure to come with a quick solution, we responded by implementing a
manager like application (much like the Tomcat manager app), that could
deploy additional web apps by copying the contents of our WAR file to a
new directory under webapps . For instance:
webapps\customer1
webapps\customer2
etc.
This approach works but it presents several problems:
* When there are a large number of webapps, Tomcat takes a long time
to load. This can be mitigated to a minor extent with TC7's new
parallel load feature.
* Tomcat uses alot more memory that it would otherwise since it has to
load the classes pertaining to each webapp multiple times
* The contents of one war file is duplicated several times. When there
are a large number of webapps, it becomes difficult to manage all
the files and state of the server.
The advantage of the approach is that each web app can potentially run a
different version of our software.
My question is - how does one configure TC7 such that it will:
* Have the ability to load the same webapp multiple times, while
pointing it to one WAR file webapp path
* Prevent Tomcat from loading the class files and resources of the
same WAR file multiple times
* Start up each app as fast possible
* Such as that the addition of new instances will be as scalable as
possible.
Much appreciate
Jamie