The company I work for sells a commercial desktop/server app that runs on any non dedicated Windows PC or server and uses Tomcat for all interactions with the application. Customers are asking that we host their instance of the application so they don't have to run it locally on their own servers. The app is lightweight and an average server, in theory, could handle 25-50 instances before users would notice a slowdown. However only 1 instance can run per Windows instance (because the application writes to a common registry branch) so we'd need something like VMWare to create 25-50 Windows instances.

We know we eventually need to reprogram to make it truly cloud-worthy but what would you recommend for a server farm or whatever for this? We don't have the setup to purchase our own servers so we must use a 3rd party. We have budgeted $500 - $1000 per year per customer for this service.

Thanks in advance for your suggestions, experiences and guidance.

migrated from stackoverflow.com May 2 '10 at 22:24

This question came from our site for professional and enthusiast programmers.

  • How did you arrive at 25-50 instances if you require a separate windows installation per instance? – angry person May 2 '10 at 22:23

You could use Amazon EC2 for this as long as your app will run on a Small Instance.

A small instance is:

Small Instance (Default) 1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of local instance storage, 32-bit platform

If you purchase a reserved instance, this would cost you:

1 year term: $227.50 + ($0.05 * (24 * 365)) = $665.50 / year

3 year term: ($350.00 + ($0.05 * (3 * (24 * 365)))) / 3 = $554 / year

With a reserved instance you pay a one time fee for either 1 year or 3 years and then you pay only $0.05 / hour while it is running.

You could purchase a pool of reserved instances and start/stop them as you need them.

Source: http://aws.amazon.com/ec2/#pricing


only 1 instance can run per Windows instance (because the application writes to a common registry branch)

It's probably the programmer in me, but I'd focus on this part. Update the application so that is uses a config file and suddenly you improve scalability (less overhead from multiple windows instances) as well as reduce your costs (don't need as many windows licenses).

More than that, you're using Tomcat, which will run very happily on linux. If you can lose the windows dependency you could save quite a bit on hosting costs and maybe increase scalability again (if you can find a good linux admin).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy